前言
容器技术是这几年IT界的热门话题,各行各业都在研究如何通过容器提升企业软件开发、交付和管理的效率。Docker和Kubernetes的成功使得仅凭几个人也可以轻易管理一个包含上千台机器的庞大的计算集群,并且在这个庞大的集群上部署各种各样的应用。云计算催生了容器技术,而容器技术也改变了云计算。凭借在Linux和开源社区的先天优势,这几年Red Hat在容器这一领域风光无限。我在Red Hat参与了各种类型的容器项目,见证了客户使用容器平台满足其各种各样的需求。容器技术的应用可谓百花齐放,范围涉及微服务、DevOps到最近的人工智能和深度学习。在当前容器技术如此火热之际,我突然想,容器会是云计算的终点吗?答案当然是否定的。如果容器不是终点,那么什么东西会成为容器之后的又一个技术热点呢?什么样的技术会让云计算更进一步,让IT及其所服务的各个行业的生产效率更上一层楼呢?
我带着疑问进行了思考和研究。经过一系列调研以及和业界一些朋友的讨论后,我认为Serverless将会是继容器之后又一项改变云计算的技术。回顾云计算发展的历程,从物理机到虚拟机,从虚拟机到容器,业界的关注点其实是一点一点地向上层移动的。通过各种技术手段,我们总是努力降低花费在管理基础设施上的时间和精力,以便将更多的时间放在应用和业务上。因此,过去十多年的云计算的历程,其实是一个“去基础架构”的过程。这个过程让用户可以更快速、更简单、更高效地将想法变成应用,变成在线的服务。
Serverless符合云计算发展的方向,让用户可以将关注点放到具体的业务功能上,而不是底层的计算资源上。Serverless特有的模式存在着潜在的巨大价值。那么,Serverless会取代容器吗?我相信不会。虽然Serverless架构在一些特定的领域会大放异彩,但是容器在未来仍然会是一种重要的应用分发和部署格式。此外容器也将成为许多Serverless平台的基础技术,成为Serverless实现的基石。在未来,Serverless与容器将会有许多结合点。
Serverless还是一个相对较新的技术领域,各种新的观点、技术和开源项目还在不断酝酿和涌现。作为一名架构师,除了要解决企业当下和近期可能面对的问题外,还需要有一定的前瞻性,掌握未来架构可能的选项,才能对未来的架构做出合理决策。作为一名工程师,必须要紧跟技术的脚步,让自己在不断变化的IT洪流中屹立不倒。本书写作的初衷正是为希望了解Serverless领域现状的架构师和技术人员提供指南和参考。
本书主要内容
本书是一本介绍Serverless技术的书籍,可以让想了解Serverless的读者快速了解Serverless的概念和原理。此外,书中还用大量的篇幅介绍了当前业界最新的Serverless平台、框架和工具的原理、架构和使用细节,内容涵盖了公有云和私有云的Serverless平台。
全书共分为11章,循序渐进、深入浅出地讲解Serverless相关的知识和技术。
前三章重点介绍Serverless的概念和原理,为读者构建Serverless知识体系打下理论基础。第1章介绍了Serverless的基础知识,让读者了解Serverless的概念及其特点。Serverless的存在不能脱离这个时代,所以第2章详细讨论了Serverless涉及的云计算的各种技术,如微服务、容器和DevOps等,让读者对Serverless的理解更加深入。在理解Serverless的基础上,第3章介绍了业界目前的Serverless的各类平台、工具和框架的实现,让读者对该技术领域的现状有更清晰的认识。
第4章和第5章详细介绍了公有云Serverless平台的技术细节。以AWS Lambda和微软的Azure Functions为例,向读者介绍了当前主流的公有云厂商在Serverless领域的实现。
第6章是容器技术的速成教程。容器技术是当下云计算重要的基础技术,也是许多Serverless平台的实现基础。通过本章读者可以快速了解当下热门的容器技术(Docker和Kubernetes)的原理和基本使用技巧。
第7~10章针对私有云的Serverless计算平台,分别详细介绍了OpenWhisk、Kubeless、Fission及OpenFaaS的系统架构、核心概念以及使用技巧,帮助读者了解各类Serverless平台的技术特点。
第11章针对Serverless技术的落地给出了具体建议,总结了本书对Serverless技术的观点,并对Serverless技术的未来进行了展望。
本书亮点
本书是关于Serverless与容器的原创著作。Serverless是当前的一个热门话题,但是大家对Serverless概念并不了解。本书整理了业界当前对Serverless的主流观点,梳理了Serverless技术发展的现状,是一个系统的Serverless指南。
❑ 最新资讯。原创的Serverless著作,为读者呈现业界最新的观点和知识。
❑ 纵览大局。对Serverless的介绍结合了当下云计算的背景,也结合了容器技术。
❑ 细致入微。在介绍原理和观点的同时也讲解了大量Serverless平台的技术细节。
❑ 互动实操。提供了大量可操作的实验步骤,让读者可以动手体验,加深理解。
本书读者对象
本书介绍了Serverless架构的概念、原理以及当前公有云和私有云领域的众多Serverless平台的实现,能帮助云计算、容器等领域的软件架构师和技术人员快速了解Serverless这一领域的发展现状,为企业和组织的Serverless技术选型、转型和落地提供参考。此外,本书涵盖了大量关于当前云计算、容器和Serverless领域的观点和话题,因此,也适合作为技术爱好者开阔眼界、增长见闻的指南。
如何阅读本书
如果读者是初次接触Serverless的相关知识,推荐按顺序阅读本书的各个章节。通过本书既定的章节顺序,可以循序渐进地了解Serverless的相关原理和实现。如果读者对Serverless领域已有一定的研究,则可以按需直接阅读感兴趣的章节。
本书引入了大量与Serverless、云计算、容器和开源软件相关的话题,并针对相关话题给出了相应的参考资料。笔者希望本书是读者研究Serverless和云计算相关技术的一张地图,希望通过本书帮助读者找到更多对自身有价值的开源项目和技术。
关于勘误
本书花费了编辑和笔者大量的时间和精力,书中的文字和图表都经过细心斟酌和校对,所有示例的命令和代码都经过笔者亲自验证。但是由于水平有限,且时间仓促,书中难免存在一些瑕疵和需要改进的地方,欢迎读者将对本书的意见和建议发送至笔者的邮箱(nicosoftware@msn.com)进行交流讨论。读者也可以关注笔者的微信公众号“云来有道”,获取关于本书最新的信息和勘误。
致谢
本书的出版得到了许多朋友的帮助。衷心感谢机械工业出版社华章公司的杨福川老师和李艺老师对本书的策划和编审。两位编辑老师为本书的出版花费了大量心血。此外,也感谢我的妻子丽金。她是本书的第一位读者,为本书提供了许多有益的建议,并帮助审校了书中的所有文字。本书的创作占用了我大量的业余时间,感谢她的支持和包容。
谨以此书献给我的妻子和两个宝贝。