
前言
为什么要写这本书
2009年,加州大学伯克利分校发表了一篇论文,预言云计算将是未来重要的技术趋势。十年后的2019年,该校对Serverless技术再次进行预测,认为Serverless技术是未来十年的技术趋势。Serverless计算被认为是云主机、容器之后的第三代计算形态,而Serverless和云平台的结合,也让该技术得到了前所未有的延伸和迅速发展。那么,为什么业界对这项技术如此看好?Serverless究竟有什么魔力,能同时获得工业界和学术界的青睐呢?
笔者身为云计算行业的从业者,初识Serverless是由于工作原因。Serverless相关产品是云平台服务的一部分,能够以解决方案的形式供客户使用,笔者也因此很荣幸地接触到了不同行业、不同需求的客户。在深入了解Serverless的过程中,笔者进一步感受到了Serverless概念之宏大,覆盖范围之广泛,便对这项技术产生了热情,并真正爱上了它。就如同所有改变世界的技术一样,这项技术在一定程度上实现了范式转变(paradigm shift)。就像在200年前,人们畅想出行未来的时候只能想到一匹跑得更快的马,而汽车横空出世,彻底改变了人们的出行方式。Serverless技术在一定程度上通过弹性伸缩、按需付费等特性,赋能开发者和企业,通过降低成本、提升效率的方式,实现了云计算的革命和企业数字化的范式转变。
在2019年10月,全球最受欢迎的开源框架Serverless在国内率先支持了腾讯云的部署。作为第一批测试验收该能力的人之一,笔者犹记得使用Serverless命令行工具几秒钟就部署完了一个对象存储桶时那种奇妙的心情。通过用户友好的交互式页面和大量的默认配置,Serverless框架结合云基础服务,真正实现了自顶向下的服务构建,改变了传统自底向上的思路,让开发者和企业可以更关注业务逻辑的实现,无须管理、配置和运维底层资源。这正是Serverless的迷人之处。
当然,Serverless技术也并不是“银弹”,在上下游生态中,在开发到发布的整个生命周期中还有许多能力需要补齐,因此企业在技术选型的过程中往往要考虑优劣,选择适合自身场景的方案。但在技术选型时,选择一个面向未来、持续受到关注和发展的技术则是对企业非常有利的。笔者可以自信地说,长期来看,Serverless技术绝对值得企业拥抱,值得开发者学习。
国内目前关于Serverless技术的参考材料和实战案例依然有限,因此,本书将结合云计算及Serverless,通过阐述Serverless的技术原理、优势和特点,和读者一起探索为什么说Serverless技术是未来的趋势。此外,通过介绍Serverless架构包含的内容,让读者对该架构及上下游依赖有更加清晰的认识,并全面了解构建一个企业级完整Serverless架构所需的能力。最后,本书结合Serverless典型场景,带领读者基于Serverless架构实现具体的应用案例,从而在实践中感受这项技术的强大、便捷和易用。
读者对象
根据不同的场景和需求,推荐以下人群阅读此书。
- 大公司的开发、运维人员,ToB方向产品经理和运营人员等。
- 前端工程师、全栈工程师。
- 云计算、SaaS行业从业人员,如架构师、商务经理、售后支持人员等。
- 相关专业的高校学生和教师。
- IT行业咨询师、分析师。
- 对Serverless感兴趣,希望独立开发应用的爱好者。
本书特色
- 完整介绍Serverless架构,内容涵盖腾讯、阿里巴巴、亚马逊等多个云厂商的产品,并对它们进行横向对比和分析。
- 知名云平台提供商腾讯云Serverless高级产品经理和高级研发工程师联合撰写,包含丰富的客户场景和最佳实践,可以为有相似需求的企业提供实战参考。
- 深入浅出地讲解Serverless技术的发展、原理和特性,针对Serverless中的FaaS和BaaS概念进行分析和介绍。
- 提供丰富的实战案例,覆盖Serverless典型应用场景,包括SSR、AI、物联网等。
- 结合Serverless开源工具、上下游生态,打造完整的Serverless开发流程。不仅介绍了最受欢迎的开发平台Serverless框架,还提供了多种CI/CD解决方案,包含Travis CI、GitHub Actions、Jenkins、Coding DevOps等。
如何阅读本书
本书内容从逻辑上分为四个部分。
第一部分(第1章)Serverless基础,主要介绍了Serverless的概念、发展历程、基本特点、应用场景、框架和生态,以及它为开发者、企业和云计算带来的作用和优势。
第二部分(第2~4章)Serverless架构和原理,首先介绍了Serverless的整体架构,然后深入分析了FaaS层和BaaS层的底层原理。
第三部分(第5~9章)Serverless开发流程,从上下游生态的视角讲解了如何开发和部署一个完整的Serverless应用,包括开发、调试、测试、部署、CI/CD、运维等,全生命周期的各个环节。
第四部分(第10~15章)Serverless实战案例,涵盖了Serverless的典型应用场景并提供丰富的实战案例和最佳实践,包括如何将传统的Web服务迁移到Serverless架构、Serverless SSR应用场景、全栈后台管理系统和基于热门语言TypeScript开发的短链接服务等。
第五部分(第15章)Serverless趋势预测,首先介绍了当前学术界在Serverless领域的研究方向、重点以及取得的成果,然后介绍了伯克利大学对Serverless未来10年发展趋势的预测。
勘误和支持
由于作者的水平有限,编写时间仓促,书中难免会有一些错误或者表述不准确的地方,恳请读者批评指正。为此,我们创建了一个GitHub项目https://github.com/yugasun/serverless-book/issues,读者可以将书中的错误或者遇到的任何问题创建为GitHub issue,我们将在线上为读者提供解答。书中的全部源文件除可以从华章网站(hzbook.com)下载外,还可以从GitHub下载。本书涉及的所有源码均在GitHub开源组织Serverless Plus中(https://github.com/serverless-plus),我们也会将对应的功能更新及时发布到GitHub上。如果你希望和作者进一步交流,可以发送邮件到邮箱tinafangkd@qq.com以及yuga_sun@163.com。期待能够得到读者的真挚反馈,并在交流中与大家共同进步。
致谢
感谢肖雨浓、罗茂政、张浩、黄文俊、卢萌凯、李啸川、王俊杰、刘传、蔡卫峰等腾讯云的同事对我们提供的支持和指导,本书的内容和许多案例都源自腾讯云团队的经验积累。作为直面客户的平台提供方和一线开发者,腾讯云团队更能深切感受到行业发展之快,需求之强烈,腾讯云的存在也让Serverless行业更加繁荣,未来可期。
感谢机械工业出版社华章公司的编辑杨福川和韩蕊在这段时间对我们的支持,他们的帮助和指导让我们能够顺利完成书稿。
最后感谢所有在我们创作过程中提供支持和鼓励的亲人和朋友。
谨以此书献给广大Serverless的开发者和爱好者。相信我们每个人贡献出的微小力量,能够照亮Serverless的前路。