本书的内容组织

本书共11章,着眼于Serverless方向,重点介绍FaaS的架构和实现原理。我们建议读者先阅读前两章,了解相关背景,再开始学习FaaS的工作原理和系统实现。

第1章简要介绍Serverless基础概念和理念,列举Serverless技术特点、技术能力和应用场景。在阅读第1章时,读者可以结合日常的开发工作进行联想,形成对Serverless应用的初步认知。

第2章首先列举几个具备代表性的业界产品和开源项目,帮助读者感受不同产品的发展历程和侧重点;然后进一步引出字节跳动函数计算产品ByteFaaS,并针对其架构和应用规模等做整体介绍,帮助读者具象地理解Serverless在实际场景中的落地形式。

第3章详细介绍FaaS控制面,包含多地区统一控制面、容灾设计、发布上线体系、可观测性以及开发体验等方面的内容。

第4章详细介绍FaaS数据面,从数据面整体架构出发,对函数实例管理、函数流量调度、函数冷启动优化、函数代码分发等方面展开介绍。

第5章详细介绍FaaS运行时,包括平台提供的函数运行时、函数运行时隔离技术以及函数运行时性能优化等方面的内容。

第6章详细介绍FaaS触发器,包括HTTP触发器、服务发现触发器、定时触发器等,并针对字节跳动应用规模非常大的MQ触发器场景进行重点介绍。

第7章详细介绍FaaS弹性伸缩,包括其策略设计、指标系统设计、系统的分片架构等内容。

第8章详细介绍FaaS助推PaaS演进,包括利用FaaS开发原生应用的解决方案、多协议支持、融入字节跳动微服务治理体系ByteMesh以及异步长任务支持等内容。

第9章详细介绍FaaS轻量级函数与云边一体,包括轻量级函数、WebAssembly轻量级函数运行时、JavaScript轻量级函数运行时、精简架构、云边架构、存储服务以及开发者工具方面的内容。

第10章介绍Serverless在字节跳动的落地实践,包括解决Serverless资源和性能的瓶颈、基于Kubernetes的云原生体系、利用高可用的触发器和自动扩缩容承载大规模消费场景、利用通用Serverless多协议支持PaaS演进、利用轻量级函数打造云边一体架构等方面的内容。第10章是对第3章到第9章所介绍的技术的具体实现的呼应。

第11章对Serverless进行展望,包括对规范标准、通用型Serverless、云边一体等方面的畅想。希望读者在阅读第11章时会感到意犹未尽,因为Serverless体系的演进还在继续,我们期待与读者一起见证Serverless未来的发展。