Serverless 开发速查手册.pdf
《Serverless 开发速查手册.pdf》由会员分享,可在线阅读,更多相关《Serverless 开发速查手册.pdf(170页珍藏版)》请在咨信网上搜索。
1、前言随着云计算的不断发展,Serverless 架构逐渐成为了近些年来备受关注的焦点,作为被认为将会引领云计算下一个十年的技术架构,Serverless 架构一方面继承云计算优点的同时,另一方面也为业务带来了极致弹性、按量付费、低运维等优势;在 Serverless 架构逐渐成为诸多业务的技术选型之时,其也暴露出了包括调试困难,厂商锁定严重,资源琐碎管理难度大等在内一些列的问题,Serverless Devs 作为开源建设的 Serverless 工具链生态,一方面从开源开放的角度出发,为开发者们提供更安全、可靠、自主的工具;另一方面也通过 Serverless 应用全生命周期角度出发,为开发
2、者提供一款可以“像玩手机一样玩转 Serverless 架构”的应用生态。为什么写作本书随着时间的发展,Serverless 架构在最近几年变得越发的火热,其凭借着极致弹性、按量付费、低运维等特性,在很多领域发挥着越来越重要的作用;而伴随着 Serverless 架构越发火热,Serverless 架构在工具链层面的匮乏逐渐显露;以提高研发效能为核心优势之一的 Serverless架构,因为没有完善的工具链体系,导致开发困难、调试困难、管理困难、运维困难;此时Serverless Devs 应运而生,在 Serverless 架构持续赋能传统应用整体效能提升的同时,Serverless Dev
3、s 提供了 Serverless 应用全生命周期管理工具,助力 Serverless 应用综合效能的提升,让应用开发效率更上一层楼。本书希望通过更简单明了的语言,真实的案例,以及开放的源代码,为读者介绍 Serverless 架构工具链 Serverless Devs 相关的基础知识,希望读者可以通过本书真正意义上理解Serverless Devs的重要价值,以及可以顺利在Serverless架构下开发,并上线 Serverless 应用项目,更加直接地获得云计算带来的时代技术红利。关于本书作者刘宇:国防科技大学电子信息专业博士;阿里云 Serverless 产品经理,开源项目 Serverl
4、essDevs 发起人;Serverless 架构:从原理、设计到项目实战、Serverless 工程实践:从入门到进阶、架构师特刊:人人都能学会的 Serverless 实践等热门图书作者;阿里云麒麟布道师。本书主要内容本书是一本关于 Serverless 开发者工具助力 Serverless 应用研发效能提升的书,本书一共有 5个章节,通过这 5 个章节读者可以从 Serverless 架构以及 Serverless Devs 开发者工具的基础入门,通过快速入门案例,在 AI 领域下的应用,在 CI/CD 中的实战案例,等多个维度进行学习和了解 Serverless Devs 开发者工具。
5、第一章:介绍什么是 Serverless 以及 Serverless Devs,并且为读者分享 Serverless 工具链的必然性和重要性;第二章:帮助读者快速入门 Serverless 以及 Serverless Devs 开发者工具;包括不限于工具的下载,部署,调试,以及相关规范等内容;第三章:通过一些常见的,有趣的 AI 案例,帮助读者可以更为深入的学习和了解 ServerlessDevs 开发者工具;第四章:通过在 CI/CD 工具/平台下的实战,为读者介绍 Serverless Devs 的集成性与被集成性;第五章节:是 Serverless 应用的开发经验和常见的应用思路,包括传
6、统框架的迁移案例,应用调试调优的方法等;如何阅读本书在阅读此书前,读者应当具有一定的编程技术,例如掌握 Node.js、Python 等语言的编程能力或具备这方面的知识,同时也需要对云计算有初步的了解,有使用过阿里云的经验,另外也需要读者对 Serverless 架构相关的基础有一定的了解。这本书将会通过循序渐进的方法,从云计算的发展历史,什么是 Serverless 架构,Serverless 架构下的工具链体系重要性说起,通过快速上手案例,不同领域的实战案例,以及对 Serverless Devs 的开发者模型的介绍等几个部分为读者介绍 Serverless Devs 助力 Serverl
7、ess 架构带来的研发效能变革,我建议读者分几遍阅读本书。第一遍先将书通读,主要弄清楚概念,再完成 Serverless Devs 的基础入门,并对基于Serverless Devs 哲学思想,使用流程等有一个较为基础的了解;第二遍通过对本书在不同领域的实践案例,进行进一步的学习和探索,了解 ServerlessDevs 如何助力 Serverless 架构在不同行业的发力,助力业务综合效能的提升;第三遍可以针对本书的开发经验分享等部分,对 Serverless 架构有更为深入的了解,帮助开发者可以更好的了解 Serverless 架构,上手 Serverless 应用开发;阅读是一个反复又枯
8、燥的过程,读者只有在反复的研读中,才能使自己在 Serverless 架构的学习不断深入,通过 Serverless Devs 工具链的加持,实现更多的应用案例,本书的案例代码可能会存在失效的情况,但是笔者会尽快在每个案例的代码仓库中更新代码,希望读者可以切实利用好每个案例提供的仓库地址,帮助自己更加高效的了解、学习 Serverless 架构下如何更简单、更方便、更科学地开发、部署、运维机器学习项目。致谢本书是一本 Serverless 工具链相关的书籍,在进行本书编写的时候,曾遇到过很多的困难,在此特别感谢阿里云云原生团队给予的大力支持。感谢杨秋弟(曼红)、杨浩然(不瞋)等前辈,是你们在这
9、本书从开始到结束的过程中,不断给予鼓励和支持,才得以让本书在预期的时间内顺利完成;感谢阿里云云原生开发者运营姜曦(筱姜),在本书对外宣传过程中给予的帮助和支持;感谢、罗松(西流)、张千风(千风)等人在本书编写过程中,指导部分代码的完成,功能、案例的实现。同时,也要感谢我的家人对我工作的鼓励和支持,对我每走一步的信任和鼓舞;感谢身边的小伙伴,对我的关心和帮助;感谢身边每一个人,谢谢你们。由于作者水平有限,书中不足及错误之处在所难免,敬请专家和读者给予批评指正。江昱(刘宇)2022 年 2 月目录前言3为什么写作本书3关于本书作者3本书主要内容4如何阅读本书4致谢51.引言101.1 从云计算到
10、Serverless101.2 Serverless 架构简介181.3 Serverless 架构应用场景211.3.1 Web 应用/移动应用后端221.3.2 实时文件/数据处理231.3.3 离线数据处理241.3.4 人工智能领域241.3.5 IoT 等物联网领域251.3.6 监控与自动化运维251.4 Serverless Devs 简介271.4.1 工具链建设的必要性271.4.2 六大优势281.4.5 设计哲学291.5 阿里云函数计算(FC)组件简介331.5.1 Serverless Devs 和 FC 组件的关系331.5.2 五大亮点341.5.3 功能支持34
11、2.快速入门与功能案例362.1 Serverless Devs 基础入门362.1.1 工具安装362.1.2 密钥配置362.1.3 Yaml 的使用规范422.1.4 多种操作模式下的工具体系512.2 案例与体验552.2.1 项目上手体验552.2.2 功能上手体验632.3 让发布更安全的:线上异动感知712.3.1 部署前检测722.3.2 部署异动感知742.3.3 在自动化流程中的策略742.4 性能心中有数:一键压测函数计算752.4.1 实现原理752.4.2 操作案例752.5 从工具看函数资源评估782.5.1 内存探测模式782.5.2 并发度探测模式802.6 S
12、erverless Devs 与 Funcraft/Fcli 的对比822.6.1 形式对比822.6.2 功能对比822.6.3 场景对比832.6.4 迁移案例843.Serverless 架构下 AI 最佳实践873.1 PaddleOCR 项目开发与部署873.1.1 本地开发873.1.2 部署到 Serverless 架构903.1.3 项目优化933.2 Tensorflow 与目标检测系统953.2.1 本地开发953.2.2 部署到 Serverless 架构973.2.3 项目优化1034.Serverless Devs 与 CI/CD 实战1044.1 与 CI/CD 平
13、台/工具集成1044.1.1 与 Github Action 的集成1054.1.2 与 Gitee Go 的集成1074.1.3 与 Jenkins 的集成1104.1.4 与云效的集成1134.2 Custom Container 的 CI/CD 最佳实践案例1154.2.1 实验准备1154.2.2 流程1164.2.3 项目测试1184.2.4 案例总结与注意事项1194.3 基于 Gitee Go 的函数代码更新与版本发布1234.3.1 实验准备1234.3.2 基于 Gitee 的 CD 能力建设1254.3.3 案例总结1325.Serverless 应用开发经验/常见思路13
14、35.1 如何上传文件1335.2 文件读写与持久化方法1355.3 慎用部分 Web 框架的特性1365.3.1 异步1365.3.2 定时任务1365.4 要注意应用组成结构1375.4.1 静态资源与业务逻辑1375.4.2 业务逻辑的进一步拆分1375.5 善于利用函数的厂商特性1395.6 传统框架迁移方案与策略1415.6.1 传统框架迁移案例1415.6.2 通过开发者工具快速迁移/部署1435.7 可观测性1495.7.1 通过工具进行 Metrics 查看1515.7.2 通过工具进行 Logs 查看1525.8 如何对应用进行调试1545.8.1 在线调试1545.8.2
15、端云联调1555.8.3 本地调试1625.8.4 其他调试方案164附录1671.引言1.引言自“云计算”被提出之后,其可谓是如同雨后春笋般,蓬勃发展:2003 年到 2006 年间,谷歌发表了 The Google File System、MapReduce:Simplified Data Processing on LargeClusters、Bigtable:A Distributed Storage System for Structured Data 等文章,这些文章指明了 HDFS(分布式文件系统),MapReduce(并行计算)和 Hbase(分布式数据库)的技术基础以及未来机
16、会,至此奠定了云计算的发展方向;2006 年,Google 首席执行官埃里克施密特(Eric Schmidt)在搜索引擎大会(SESSanJose2006)首次公开正式地提出“云计算”(Cloud Computing)的概念,同年亚马逊第一次将其弹性计算能力作为云服务进行售卖,这也标志着云计算这种新的商业模式正式诞生。两年后,即 2008 年,微软发布云计算战略和平台Windows Azure Platform,尝试将技术和服务托管化、线上化。到了 2009 年,UC Berkeley发表了:Above the Clouds:A Berkeley View of Cloud Computing
17、,在该文章中,明确指出:云计算是一个即将实现的古老梦想,是计算作为基础设施这一长久以来梦想的新称谓,它在最近正快速变为商业现实。在该文章中,明确的为云计算做了定义:云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施。同时在该文章中,也提出了云计算所面临的挑战和机遇:问题机会服务的可用性选用多个云计算提供商;利用弹性来防范 DDOS 攻击数据丢失标准化的 API;使用兼容的软硬件以进行波动计算数据安全性和可审计性采用加密技术,VLANs 和防火墙;跨地域的数据存储数据传输瓶颈快递硬盘;数据备份/获取;更加低的广域网路由开销;更高带宽的 LAN 交换机性能不可预知性改进虚拟机支持;闪
18、存;支持 HPC 应用的虚拟集群可伸缩的存储发明可伸缩的存储大规模分布式系统中的错误发明基于分布式虚拟机的调试工具快速伸缩基于机器学习的计算自动伸缩;使用快照以节约资源声誉和法律危机采用特定的服务进行保护软件许可使用即付许可;批量销售1.引言1.引言如上图所示,而截至 2017 年,各大云厂商基本上都已经在 Serverless 进行了基础的布局,尤其是国内的几大云厂商,也都先后在这一年迈入“Serverless 时代”。从 IaaS 到 PaaS 再到 SaaS的过程中,如图所示,云计算所表现出的去服务器化越来越明显,那么 Ken Form 所提出来的Serverless 又是什么,它在云计
19、算发展的过程中,又在扮演什么角色呢,它的去服务器化又到了什么程度呢?Serverless 翻译成中文是无服务器,所谓的无服务器并非是说不需要依靠服务器等资源,而是说开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上,同时计算资源也开始作为服务出现,而不是作为服务器的概念出现,Serverless 是一种构建和管理基于微服务架构的完整流程,允许用户在服务部署级别而不是服务器部署级别来管理用户的应用部署。与传统架构的不同之处在于,它完全由第三方管理,由事件触发,存在于无状态(Stateless),暂存(可能只存在于一次调用的过程中)在计算容器内,Serverless 部署应用无需涉及更多的
20、基础设施建设,就可以基本实现自动构建、部署和启动服务。近些年来,微服务(Micro Service)是软件架构领域另一个热门的话题,如果说微服务是以专注于单一责任与功能的小型功能块为基础,利用模组化的方式组合出复杂的大型应用程序,那么可以进一步认为 Serverless 架构可以提供一种更加“代码碎片化”的软件架构范式,而这一部分称之为 Function as a Services(FaaS)。而所谓的“函数”提供的是相比微服务更加细1.引言1.引言Accelerite 首席执行官 Nara Rajagopalan:Serverless 将改变开发模式。而到了 2018 年,Serverles
21、s 的发展速度要比想象中的更加快速,在这一年,Google 发布了Knative,一个基于 Kubernetes 的开源 Serverless 框架,具备构建容器、流量调配、弹性伸缩、零实例、函数事件等能力。AWS 发布了 Firecracker,一个开源的虚拟化技术,面向基于函数的服务,创建和管控安全的、多租户的容器。Firecracker 的目标是把传统虚拟机安全性和隔离性,和容器的诉求,资源效率结合起来。在这一年,CNCF 也正式发布了 Serverless 领域的白皮书:CNCF Serverless Whitepaper V1.0,阐明 Serverless 技术概况、生态系统状态,
22、为CNCF 的下一步动作做指导,同时 CloudEvnent 规范,进入 CNCF Sandbox;在这一年,UCBerkeley 发文 Serverless Computing:One Step Forward,Two Steps Back,表达了对Serverless 的担忧和挑战,在这篇文章中,作者认为 Serverless 会对开源服务创新有所阻塞,作者认为 Serverless 是:One Step Forward,Two Steps Back,关于这个部分内容的描述如下:One Step Forward通过提供自动缩放功能,今天的 FaaS 产品在云编程方面迈出了一大步,它提供了一
23、种实际上可管理的,看似无限的计算平台。Two Steps Back首先,他们忽略了高效数据处理的重要性;其次,它们阻碍了分布式系统的开发。任何一个新的技术、概念出现都会遇到一定的挑战和担忧,就如同当年云计算出现时,也被一些人(如 Oracle 公司总裁 Larry Ellison、GNU 发起人 Richard Stallman)认为只是又一个商业炒作的概念,毫无新意,甚至蠢不可及。当然,事实也证明,任何一个新的事物,都只有在经历各种挑战和质疑之后,才能更茁壮地成长,Serverless 也不例外,从 2019 年开始,Serverless 进入到了一个真正意义上的生产应用,最佳实践快速发展阶
24、段而 2019 年对 Serverless 而言是非常关键的一年,也是 Serverless 具有里程碑式发展的一年,被很多人定义为“Serverless 正式发展的元年”。在这一年不仅有 KubeCon 在中国上海的 CloudNativeCon 中关于 Serverless 的“海量主题演讲”,这些演讲包括来自 Captial One 银行的 Kevin Hoffman1.引言1.引言如上图所示,从 2012 年,Serverless 概念被正式提出之后,2014 年 AWS 带领 Lambda 开启了Serverless 的商业化,再到 2017 年各大厂商纷纷布局 Serverless
25、 领域,再到 2019 年,Serverless 成为热点议题在 KubeCon 中被众多人参与探讨,UC Berkeley 发文断言 Serverless 将引领云计算的下一个十年,Serverless 随着时间的不断推进,各种技术的不断进步,正在逐渐地朝着更完整,更清晰的方向发展,随着 5G 时代的到来,Serverless 将会在更多领域发挥至关重要的作用。从 IaaS 到 FaaS 再到 SaaS,再到如今的 Serverless,云计算的发展在近十余年中发生了翻天覆地的变化,从虚拟空间到云主机,从自建数据库等业务,到云数据库等服务,云计算的发展是迅速地,未来的方向和形态却是模糊的,没
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Serverless 开发速查手册 开发 手册
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Stan****Shan】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Stan****Shan】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。