《云计算与虚拟化技术丛书 深入浅出Serverless:技术原理与应用实践》—3Serverless的实现

举报
华章计算机 发表于 2019/06/06 15:59:22 2019/06/06
【摘要】 本书摘自《云计算与虚拟化技术丛书 深入浅出Serverless:技术原理与应用实践》一文中的第3章,第3.1节,作者是陈耿。

第3章

Serverless的实现

       在了解Serverless所能带来的巨大价值后,许多企业和组织都在其IT转型的蓝图中对Serverless进行布局。希望通过Serverless提升应用交付的效率,降低应用运营的成本。所谓“工欲善其事,必先利其器”。Serverless的落地与实践需要实实在在的平台、工具以及框架作为技术支撑。这些平台、工具和框架是Serverless理念的具体实现。通过这些Serverless的实现,用户才能进行Serverless应用的架构设计、部署及运维。

3.1 Serverless技术的发展

       虽然Serverless的发展所经历的时间并不长,但是因为有着很高的关注度,因此这几年陆续涌现了各种类型的Serverless平台和工具。有社区的贡献者对现存的Serverless各类平台和工具进行了梳理,形成了一个列表,列表中所收录的项目达100余项。

       Serverless相关资源列表:https://github.com/anaibol/awesome-serverless。

       第2章中介绍过,Serverless也是云原生(Cloud Native)应用的一种形态。因此,云原生计算的标准化组织云原生计算基金会(CNCF)也将Serverless纳入其工作关注的范畴,并成立了专门的工作小组,Serverless WG。CNCF的Serverless工作小组也对目前业界存在的Serverless资源做了一次梳理。基于其中比较成熟的平台和方案,CNCF发布了一份Serverless资源的导览图(Serverless Cloud Native Landscape),如图3-1所示。

image.png

图3-1 Serverless实现导览图

       Serverless导览图的参考地址:https://github.com/cncf/wg-serverless。值得一提的是,CNCF基金会还维护了一些关于构建、设计和运行云原生应用的资源导览图,可以在如下GitHub仓库中查阅:https://github.com/cncf/landscape。

       在CNCF的Serverless导览图(图3-1)中,Serverless相关的资源分为如下几大类。

       Serverless平台。提供Serverless应用开发和运维的公有云和私有云平台,如AWS Lambda、Azure Functions、Google Cloud Functions等公有云平台;OpenWhisk、Fission、Kubeless、Fn、OpenFaaS等都可以被部署在私有数据中心的开源Serverless平台。

       Serverless框架。Serverless平台为用户提供了开发和运行Serverless的基础,但是许多Serverless平台应用开发的用户体验还不是很完善。而且,不同Serverless平台的规范和开发、部署方式都不尽相同。为了方便用户同时在多个不同平台上开发和部署应用,业界出现了一批Serverless框架,以帮助用户降低Serverless应用开发、部署和管理的复杂度,提高效率。比如,一款名为Serverless Framework的框架同时支持AWS、Azure、Google及OpenWhisk等众多平台。通过Serverless Framework,用户可以屏蔽底层不同平台的差异,通过一个统一的接口部署、测试和管理在不同平台上的Serverless应用。除了降低复杂度、提高工作效率外,有的Serverless框架还增强了Serverless平台的能力,比如Apex。Apex是一款针对AWS Lambda的Serverless增强框架,可以让用户使用非AWS Lambda官方原生支持的编程语言开发应用函数,并将其发布至AWS Lambda平台上。

       Serverless工具。各类Serverless应用的辅助工具,简化Serverless应用设计和部署的.architect。如,帮助用户监控管理Serverless应用的日志和性能的Dashbird和IO Pipe,帮助用户对Serverless应用进行持续集成的LambCI。

       编程语言库。针对某种编程语言的Serverless类库。python-λ是一款基于Python语言的Serverless工具,可以简化基于Python的AWS Lambda应用的开发和部署。

       后台服务。完整的Serverless应用往往还依赖于第三方的后台服务,以解决安全、数据持久化、消息传递等需求。如安全服务Puresec,为Serverless应用提供安全运行环境(Serverless Security Runtime Environment,SSRE);Snyk提供Serverless应用的安全漏洞扫描服务。传统的云服务如AWS云存储服务S3、AWS云数据库DynamoDB、AWS的负载均衡ELB等其实也属于设计和构建Serverless应用时可以利用的后台服务。

       关于Serverless的平台和工具有很多。由于篇幅所限,本书不可能对每一种平台和工具都进行详尽介绍。下面我们将针对一些关注程度较高、用户基数比较大的Serverless资源进行介绍。对于其中比较典型的平台和工具,本书将会以专门的章节展开讨论。希望读者在对这些Serverless平台和工具了解的基础上进一步理解Serverless应用构建、部署和运行的生命周期,了解Serverless的生态,以便日后能更高效地深入探索Serverless世界。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。