前言
第1章 Serverless基础 1
1.1 什么是Serverless 1
1.2 Serverless带来的价值 3
1.3 Serverless的技术实现 4
1.3.1 理念与实现 4
1.3.2 FaaS与BaaS 5
1.4 Serverless应用架构 7
1.4.1 传统应用架构 7
1.4.2 Serverless应用架构 7
1.4.3 两种架构的比较 8
1.5 Serverless的技术特点 9
1.6 Serverless的应用场景 11
1.7 Serverless的局限 12
1.8 本章小结 13
第2章 Serverless与相关技术 15
2.1 云计算 15
2.1.1 从私有数据中心到云 15
2.1.2 IaaS、PaaS与SaaS 16
2.1.3 Serverless与云计算 17
2.2 微服务 18
2.2.1 从SOA到微服务 18
2.2.2 微服务的价值与挑战 19
2.2.3 Serverless与微服务 19
2.3 容器 20
2.3.1 容器技术的兴起 20
2.3.2 Serverless与容器 21
2.4 PaaS 22
2.4.1 以应用为中心 22
2.4.2 Serverless与PaaS 23
2.5 FaaS 24
2.5.1 Serverless实现的基础 24
2.5.2 FaaS的架构 24
2.5.3 函数的生命周期 25
2.5.4 函数工作流 26
2.6 BaaS 26
2.6.1 BaaS的价值 26
2.6.2 广义的Serverless 27
2.7 NoOps 27
2.7.1 无人运维吗 27
2.7.2 “无服务器”与“无人运维” 28
2.8 DevOps 28
2.9 云原生应用 29
2.9.1 因云而生 29
2.9.2 Serverless与Cloud Native 29
2.10 本章小结 30
第3章 Serverless的实现 31
3.1 Serverless技术的发展 31
3.2 Serverless与公有云 33
3.2.1 Amazon Web Services 34
3.2.2 Microsoft Azure 36
3.2.3 Google Cloud Platform 38
3.2.4 Webtask 39
3.2.5 Hyper.sh 39
3.2.6 阿里云 40
3.2.7 腾讯云 42
3.2.8 小结 43
3.3 Serverless与私有化部署 43
3.3.1 OpenWhisk 43
3.3.2 Fission 44
3.3.3 Kubeless 45
3.3.4 OpenFaaS 45
3.3.5 Fn 47
3.3.6 小结 48
3.4 Serverless框架和工具 49
3.4.1 Serverless Framework 49
3.4.2 Chalice 50
3.4.3 Claudia.js 50
3.4.4 Apex 51
3.4.5 Spring Cloud Function 51
3.4.6 AWS SAM 52
3.4.7 小结 53
3.5 Serverless后台服务 53
3.6 本章小结 54
第4章 AWS Lambda 55
4.1 AWS 55
4.2 AWS Serverless 56
4.3 AWS Lambda概述 57
4.4 第一个Serverless应用 58
4.4.1 获取AWS账号 58
4.4.2 AWS Lambda控制面板 59
4.4.3 创建函数 61
4.4.4 编辑函数 62
4.4.5 测试函数 63
4.4.6 外部访问 63
4.4.7 运维监控 66
4.4.8 回顾 66
4.5 权限控制 66
4.5.1 IAM 67
4.5.2 策略 68
4.5.3 角色 68
4.6 编程模型 69
4.6.1 代码开发 69
4.6.2 Handler 70
4.6.3 执行上下文 70
4.6.4 日志输出 71
4.6.5 异常处理 72
4.6.6 无状态 72
4.7 事件驱动 73
4.7.1 事件源 73
4.7.2 触发模式 74
4.8 日志监控 75
4.9 开发辅助 77
4.9.1 环境变量 77
4.9.2 标签 77
4.9.3 版本控制 78
4.10 运行限制 78
4.10.1 资源限制 79
4.10.2 并发控制 79
4.11 配置与部署 79
4.12 本章小结 81
第5章 Azure Functions 83
5.1 Microsoft Azure 83
5.2 Azure Functions概述 85
5.3 创建Azure Serverless应用 86
5.3.1 注册Azure账号 86
5.3.2 Azure控制台 87
5.3.3 函数应用 88
5.3.4 创建函数 90
5.3.5 调用函数 92
5.3.6 日志与监控 93
5.4 Azure Functions命令行 95
5.4.1 安装命令行 95
5.4.2 创建本地函数 96
5.4.3 测试本地函数 97
5.4.4 发布至公有云 98
5.5 深入了解Azure Functions 99
5.5.1 函数应用设置 99
5.5.2 Trigger与Bindings 101
5.5.3 函数代理 103
5.5.4 Slot 104
5.6 私有云部署 105
5.7 本章小结 107
第6章 容器技术基础 108
6.1 什么是容器 108
6.1.1 容器 109
6.1.2 容器镜像 110
6.1.3 镜像仓库 110
6.1.4 容器编排 111
6.1.5 容器与Serverless 111
6.2 Docker 111
6.2.1 Vagrant 111
6.2.2 VirtualBox 112
6.2.3 安装Docker 113
6.2.4 运行容器 114
6.2.5 构建容器镜像 116
6.2.6 分享镜像 117
6.3 Kubernetes基础 118
6.3.1 命名空间 120
6.3.2 Pod 120
6.3.3 Service 120
6.3.4 Deployment 120
6.3.5 ReplicaSet 121
6.3.6 网络 121
6.3.7 Ingress 121
6.3.8 交互工具 122
6.4 构建Kubernetes环境 122
6.4.1 启动Vagrant Box 123
6.4.2 修改默认域 124
6.5 Kubernetes实战 124
6.5.1 部署容器 124
6.5.2 弹性扩展 126
6.5.3 服务发现 127
6.5.4 资源组织 128
6.5.5 容器调度 129
6.6 本章小结 131
第7章 OpenWhisk 132
7.1 OpenWhisk项目 132
7.2 Hello Whisk 133
7.3 逻辑架构 135
7.3.1 Namespace 136
7.3.2 Package 136
7.3.3 Action 137
7.3.4 Feed 141
7.3.5 Trigger 141
7.3.6 Rule 142
7.4 系统架构 143
7.5 Kubernetes部署 146
7.5.1 准备Kubernetes集群 146
7.5.2 集群基础设置 146
7.5.3 创建访问入口 149
7.5.4 部署组件 149
7.5.5 加载系统配置 153
7.5.6 测试集群 153
7.5.7 删除集群 154
7.6 Helm部署 155
7.6.1 安装Helm 155
7.6.2 环境配置 155
7.6.3 部署Chart 156
7.6.4 管理应用 156
7.7 蛋糕管理服务 156
7.7.1 开发环境 157
7.7.2 准备数据库 157
7.7.3 定义Action 157
7.7.4 创建Package 159
7.7.5 部署Action 160
7.7.6 发布API 161
7.8 本章小结 162
第8章 Kubeless 163
8.1 Kubeless项目 163
8.1.1 系统架构 164
8.1.2 运行时 165
8.2 Kubeless概述 165
8.2.1 部署Kubeless 165
8.2.2 配置客户端 166
8.2.3 部署函数 167
8.2.4 Kubeless UI 168
8.3 Function 169
8.3.1 函数部署 170
8.3.2 函数调用 172
8.3.3 资源限制 172
8.3.4 自动扩展 173
8.4 Trigger 173
8.4.1 HTTP Trigger 173
8.4.2 Cronjob Trigger 175
8.4.3 Kafka Trigger 175
8.4.4 NATS Trigger 178
8.5 本章小结 179
第9章 Fission 180
9.1 Fission项目 180
9.1.1 逻辑架构 180
9.1.2 系统架构 181
9.2 部署Fission 182
9.2.1 安装Helm 182
9.2.2 部署Fission Chart 182
9.2.3 命令行工具 183
9.2.4 Hello Fission 183
9.3 深入探讨Fission 184
9.3.1 Environment 185
9.3.2 Function 187
9.3.3 Package 188
9.3.4 Trigger 191
9.4 执行模式 192
9.4.1 Pool-based模式 192
9.4.2 New Deploy模式 193
9.5 Workflows 194
9.5.1 Workflows定义 194
9.5.2 配置Workflows 195
9.5.3 Fortune Whale 195
9.6 本章小结 197
第10章 OpenFaaS 199
10.1 OpenFaaS项目 199
10.1.1 OpenFaaS社区 200
10.1.2 系统架构 200
10.2 初识OpenFaaS 200
10.2.1 部署组件 201
10.2.2 命令行工具 202
10.2.3 创建函数 202
10.2.4 图形界面 203
10.3 OpenFaaS函数 203
10.3.1 抽象方式 203
10.3.2 函数模板 204
10.3.3 创建函数 205
10.3.4 构建函数 206
10.3.5 推送镜像 207
10.3.6 部署函数 207
10.4 Watchdog 208
10.4.1 工作原理 208
10.4.2 配置Watchdog 209
10.4.3 of-watchdog 210
10.5 监控 210
10.5.1 监控指标 210
10.5.2 监控面板 210
10.5.3 监控预警 213
10.6 弹性扩展 214
10.6.1 基于Alertmanager扩展 214
10.6.2 基于HPA扩展 215
10.7 函数应用市场 215
10.8 本章小结 217
第11章 Serverless的落地与展望 218
11.1 Serverless的落地 218
11.2 Serverless平台建设 219
11.2.1 公有云 219
11.2.2 私有云 220
11.2.3 混合云 220
11.3 Serverless应用架构转型 223
11.3.1 开发模式 223
11.3.2 设计原则 225
11.3.3 迁移与重构 226
11.4 Serverless的未来 227
11.4.1 建立行业规范 228
11.4.2 完善工具链 229
11.4.3 深入结合容器 229
11.5 本章小结 230
后记232
· · · · · · (
收起)