主编推荐语
腾讯云Serverless项目早期参与者撰写,涵盖产品和技术两个维度,架构、技术、开发流程、实战四个主题。
内容简介
这是一本从产品和技术两个维度全讲解Serverless的著作,涵盖Serverless的架构设计、技术原理、开发流程、实战案例等4大核心主题。作者是腾讯云Serverless的高级产品经理和高级研发工程师,从零开始参与了腾讯云Serverless项目的建设。
全书共15章,内容从逻辑上可分为五个部分:
第1部分(第1章)Serverless基础:主要介绍了Serverless的概念、发展历程、基本特点、应用场景、框架和生态,以及它为开发者、企业和云计算带来的作用和优势。
第二部分(第2~4章)Serverless架构和原理:首先介绍了Serverless的整体架构,以及其中的FaaS架构和BaaS架构,然后深入分析了FaaS层和BaaS层的底层原理。
第三部分(第5~9章) Serverless开发流程:从上下游生态的视角讲解了如何开发和部署一个完整的Serverless应用,包括开发、调试、测试、部署、CI/CD、运维等全生命周期的各个环节。
第四部分(第10~14章)Serverless实战案例:涵盖了Serverless的典型应用场景并提供丰富的实战案例和Z佳实践,包括如何将传统的Web服务迁移到Serverless架构、Serverless SSR应用场景、全栈后台管理系统和基于热门语言TypeScript开发的短链接服务等。
第五部分(第15章)Serverless趋势预测:首先介绍了当前学术界在Serverless领域的研究方向、重点以及取得的成果,然后介绍了伯克利大学对Serverless未来10年发展趋势的预测。
目录
- 版权信息
- 前言
- 第1章 全面了解Serverless
- 1.1 什么是Serverless
- 1.1.1 初识Serverless
- 1.1.2 Serverless特性举例
- 1.2 Serverless的发展历程
- 1.2.1 Serverless的产生
- 1.2.2 Serverless发展里程碑
- 1.3 Serverless的优缺点
- 1.4 Serverless的应用场景
- 1.5 Serverless框架和生态
- 1.6 本章小结
- 第2章 Serverless架构
- 2.1 Serverless架构概述
- 2.1.1 Serverless = FaaS + BaaS
- 2.1.2 传统应用架构分析
- 2.1.3 典型Serverless应用架构
- 2.1.4 Serverless架构与传统架构
- 2.2 FaaS架构介绍
- 2.2.1 FaaS架构组成
- 2.2.2 FaaS架构执行流程
- 2.3 BaaS服务介绍
- 2.3.1 BaaS服务的产生背景
- 2.3.2 BaaS服务的分类
- 2.4 Serverless服务构建的思维方式
- 2.5 本章小结
- 第3章 Serverless原理详解:FaaS层
- 3.1 事件模型
- 3.1.1 FaaS事件模型
- 3.1.2 常见触发器介绍
- 3.2 错误处理和重试机制
- 3.3 生命周期
- 3.4 冷启动优化
- 3.4.1 冷启动的产生
- 3.4.2 平台侧冷启动的优化
- 3.4.3 用户侧冷启动的规避
- 3.5 部署第一个Serverless实例
- 3.5.1 部署Hello World函数示例
- 3.5.2 参数定义
- 3.6 运行时和自定义运行时
- 3.6.1 运行时和自定义运行时的概念
- 3.6.2 自定义运行时示例
- 3.7 本章小结
- 第4章 Serverless原理详解:BaaS层
- 4.1 Serverless接入层:API网关
- 4.1.1 基本概念
- 4.1.2 网关和FaaS的联动
- 4.2 Serverless和存储
- 4.2.1 基本概念
- 4.2.2 对象存储
- 4.2.3 文件存储
- 4.2.4 存储和FaaS的联动
- 4.3 Serverless和数据库
- 4.3.1 基本概念
- 4.3.2 数据库和FaaS的联动
- 4.4 Serverless和消息队列
- 4.4.1 基本概念
- 4.4.2 消息队列和FaaS的联动
- 4.5 Serverless和日志服务
- 4.5.1 基本概念
- 4.5.2 日志服务和FaaS的联动
- 4.6 其他扩展能力
- 4.7 本章小结
- 第5章 Serverless开发工具及调试能力
- 5.1 Serverless Framework
- 5.1.1 YAML配置文件
- 5.1.2 什么是Serverless Plugin
- 5.1.3 什么是Serverless Component
- 5.1.4 Serverless Plugin与Serverless Component
- 5.1.5 安装和使用
- 5.1.6 Serverless Component部署原理
- 5.1.7 版本对比
- 5.2 Apex
- 5.2.1 安装使用
- 5.2.2 实时日志
- 5.2.3 监控数据
- 5.3 Serverless云端调试
- 5.4 本章小结
- 第6章 Serverless排障
- 6.1 Serverless监控及告警
- 6.1.1 基础指标监控
- 6.1.2 应用级别监控
- 6.1.3 Serverless告警
- 6.2 Serverless日志
- 6.3 本章小结
- 第7章 Serverless CI/CD
- 7.1 CI/CD概念和介绍
- 7.1.1 持续集成
- 7.1.2 持续交付
- 7.1.3 持续部署
- 7.1.4 CI/CD的优点
- 7.2 Serverless CI/CD介绍
- 7.3 CI/CD工具介绍
- 7.4 GitHub Actions
- 7.4.1 基本概念
- 7.4.2 创建第一个工作流
- 7.4.3 Workflow文件
- 7.4.4 Serverless结合GitHub Actions示例
- 7.5 Coding DevOps服务
- 7.6 AWS CodePipeline服务
- 7.7 本章小结
- 第8章 Serverless工作流
- 8.1 Serverless应用内的状态管理
- 8.2 Serverless状态机
- 8.2.1 状态机简介
- 8.2.2 AWS Step Function
- 8.2.3 典型场景
- 8.3 本章小结
- 第9章 Serverless资源管理和编排
- 9.1 AWS资源编排工具
- 9.1.1 AWS Cloud Formation
- 9.1.2 AWS SAM
- 9.2 Terraform
- 9.2.1 Terraform简介
- 9.2.2 使用Terraform管理云资源
- 9.3 Serverless Component
- 9.4 本章小结
- 第10章 开发Serverless Web服务:RESTful API
- 10.1 Serverless Web服务
- 10.1.1 传统的Web服务
- 10.1.2 Web框架迁移到Serverless的原理
- 10.1.3 Express.js框架开发转化层
- 10.1.4 Node.js HTTP服务监听方式的选择
- 10.1.5 转化层代码编写
- 10.2 理解RESTful架构
- 10.3 RESTful API的开发
- 10.3.1 初始化项目
- 10.3.2 Express路由的使用
- 10.3.3 改造成可执行的云函数
- 10.3.4 编写RESTful风格的服务
- 10.3.5 如何操作云数据库
- 10.4 部署应用
- 10.4.1 手动打包部署
- 10.4.2 通过Serverless Framework工具部署
- 10.5 本章小结
- 第11章 Serverless后台管理系统
- 11.1 Egg.js框架简介
- 11.2 系统框架设计
- 11.3 数据库设计
- 11.4 创建数据库
- 11.5 开发准备
- 11.6 开发后端服务
- 11.7 后端服务部署
- 11.7.1 准备工作
- 11.7.2 配置schmerverless.yml
- 11.7.3 开始部署
- 11.7.4 账号配置(可选)
- 11.8 前端开发
- 11.8.1 删除接口模拟
- 11.8.2 修改接口函数
- 11.8.3 修改接口工具函数
- 11.8.4 修改UI界面
- 11.9 前端部署
- 11.9.1 创建schmerverless.yml配置文件
- 11.9.2 执行部署
- 11.10 部署优化
- 11.10.1 改造后端YML配置
- 11.10.2 新增层配置
- 11.10.3 部署层
- 11.10.4 管理系统项目模板
- 11.11 本章小结
- 第12章 Serverless和前端的天作之合:服务端渲染SSR
- 12.1 SSR与Serverless
- 12.2 快速将SSR应用Serverless化
- 12.3 性能分析
- 12.4 方案对比分析
- 12.5 Serverless部署方案的优化
- 12.5.1 通过COS托管静态资源
- 12.5.2 静态资源配置CDN
- 12.5.3 静态资源优化前后对比
- 12.5.4 基于层部署node_modules
- 12.6 本章小结
- 第13章 基于Serverless的短链接服务
- 13.1 什么是短链接
- 13.2 短链接基本原理
- 13.3 创建数据库
- 13.3.1 表结构
- 13.3.2 创建PostgreSQL数据库
- 13.4 服务开发
- 13.4.1 TypeScript简介
- 13.4.2 基于Express服务开发
- 13.4.3 前端页面
- 13.4.4 服务Serverless化
- 13.5 本章小结
- 第14章 Serverless消息实时推送:结合WebSocket实现外卖点单系统
- 14.1 消息实时推送
- 14.2 基于Serverless实现WebSocket外卖点单系统
- 14.2.1 基于Serverless实现WebSocket协议
- 14.2.2 系统架构说明
- 14.3 应用开发及部署
- 14.4 本章小结
- 第15章 Serverless展望:云计算的下个十年
- 15.1 Serverless研究趋势
- 15.2 Serverless研究成果和亮点
- 15.2.1 Serverless和机器学习
- 15.2.2 Serverless文件系统
- 15.2.3 Serverless数据中心
- 15.3 Serverless未来的发展趋势
- 15.4 本章小结
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。