书籍详情

Serverless架构:无服务器应用与AWS Lambda

Serverless架构:无服务器应用与AWS Lambda

作者:[英] Peter Sbarski·(彼得-萨巴斯基),[澳] Sam Kroonenburg(萨姆-克鲁内伯格) 著,覃宇 译

出版社:电子工业出版社

出版时间:2018-08-01

ISBN:9787121342684

定价:¥108.00

购买这本书可以去
内容简介
  无服务器是软件架构世界中的热门新话题,它充分利用大量的云平台服务,让开发者只需关注核心业务逻辑的实现。同时,它按需分配和使用资源的运行方式,在降低基础设施成本的同时还能获得强大的弹性。本书的作者 Peter Sbarski 是完全拥抱无服务器架构的早期开发者之一,他将自己在应用无服务器架构中获得的宝贵经验总结成本书,呈现给广大的读者。更难能可贵的是,全书贯穿了 AWS Lambda 实例和大量相关的练习。读者一边阅读,一边动手完成练习,就可以循序渐进地掌握无服务器架构的核心技术。无论你是软件开发新手,还是架构师老兵,本书都是不可多得的了解无服务器架构的**读物。
作者简介
  Peter Sbarski 是 A Cloud Guru 的工程副总裁,也是 Serverlessconf 的组织者,Serverlessconf 是全球 个专门针对无服务器架构和技术的会议。他喜欢举办面对面的工作坊,时常撰写一些关于无服务器架构的博客。Peter 拥有丰富的 IT工作经验,领导过专注于 Web 和 AWS 云技术的?型企业解决?案团队。他的专?包括后端架构、微服务和系统编排。 Peter 拥有澳大利亚莫纳什?学计算机科学博?学位,读者可以在Twitter(@sbarski)和 GitHub(https://github.com/sbarski)上关注他。 覃宇,ThoughtWorks高级咨询师,10余年移动应用开发经验,Android技术专家,曾为AOSP贡献过测试用例;目前专注于移动应用的架构设计、自动化测试以及持续交付。译有《Kotlin实战》一书。 李源,在华为技术有限公司工作8年,从事研发、系统架构设计、项目管理等工作,华为优秀讲师,美国质量协会注册质量工程师(CQE),2012年加入途牛,先后负责途牛CRM系统、供应商管理系统、零售平台、分销平台等公司级项目,现任供应链研发中心副总经理,全面主持途牛供应链相关系统的设计、开发工作,覆盖采购、资源、库存、组装、确认、N-BOOKING等多个核心系统。译有《Java性能调优指南》《函数响应式领域建模 》等书。罗丽,高级软件工程师,移动技术开发顾问,拥有丰富的软件开发经验,熟悉ReactNative,Android,iOS等多种开发技术。目前任职于ThoughtWorks海外事业部,曾在多个大型移动应用项目中担任技术顾问。译有《Kotlin实战》一书。
目录
序一.........................................................................................XIII
序二..........................................................................................XV
前言........................................................................................XVII
致谢.........................................................................................XIX
关于本书...................................................................................XXI
关于作者................................................................................XXIII
关于封面................................................................................XXIV
第 1 部分..踏上征途 ......................................................................................... 1
1 ..无服务器初探 ........................................................................................................... 3
1.1 来龙去脉 ..........................................................................................................4
1.1.1 面向服务的架构与微服务 ..................................................................5
1.1.2 软件设计 ..............................................................................................6
1.2 无服务器架构原则 ..........................................................................................9
1.2.1 根据需要使用计算服务执行代码 ......................................................9
1.2.2 编写单一用途的无状态函数 ............................................................10
1.2.3 设计基于推送的、事件驱动的管道 ................................................10
1.2.4 创建更厚、更强大的前端 ................................................................ 11
1.2.5 拥抱第三方服务 ................................................................................12
1.3 从服务器过渡到服务 ....................................................................................12
1.4 无服务器的利与弊 ........................................................................................13
1.4.1 决策驱动因素 ....................................................................................13
1.4.2 什么时候使用无服务器 ....................................................................14
1.5 本章小结 ........................................................................................................15
2 ...架构与模式 ........................................................................................................... 17
2.1 使用场景 ........................................................................................................17
2.1.1 应用程序后端 ....................................................................................18
2.1.2 数据处理与操作 ................................................................................18
2.1.3 实时分析 ............................................................................................19
2.1.4 遗留 API 代理 ....................................................................................19
2.1.5 计划服务 ............................................................................................19
2.1.6 机器人(Bot)和技能(Skill) .........................................................20
2.2 架构 ................................................................................................................20
2.2.1 计算即后端 ........................................................................................20
2.2.2 遗留 API 代理 ....................................................................................25
2.2.3 混合 ....................................................................................................26
2.2.4 GraphQL .............................................................................................28
2.2.5 计算即胶水 ........................................................................................29
2.2.6 实时处理 ............................................................................................31
2.3 模式 ................................................................................................................32
2.3.1 命令模式 ............................................................................................32
2.3.2 消息传输模式 ....................................................................................33
2.3.3 优先级队列模式 ................................................................................35
2.3.4 扇出模式 ............................................................................................36
2.3.5 管道和过滤器模式 ............................................................................37
2.4 本章小结 ........................................................................................................38
3 ..建立无服务器应用程序 ...................................................................................... 39
3.1 24 小时视频 ...................................................................................................40
3.1.1 总体需求 ............................................................................................41
3.1.2 Amazon Web Services(AWS) .........................................................42
3.1.3 创建第一个 Lambda 函数 .................................................................44
3.1.4 命名你的 Lambda ..............................................................................46
3.1.5 本地测试 ............................................................................................47
3.1.6 部署到 AWS.......................................................................................48
3.1.7 连接 S3 和 Lambda ............................................................................50
3.1.8 在 AWS 中测试..................................................................................51
3.1.9 观察日志 ............................................................................................53
3.2 配置 Simple Notification Service ...................................................................54
3.2.1 连接 SNS 和 S3..................................................................................55
3.2.2 从 SNS 接收电子邮件 .......................................................................58
3.2.3 测试 SNS ............................................................................................58
3.3 设置视频权限 ................................................................................................58
3.3.1 创建第二个函数 ................................................................................58
3.3.2 配置与安全 ........................................................................................59
3.3.3 测试第二个函数 ................................................................................60
3.4 生成元数据 ....................................................................................................61
创建第三个函数和 FFprobe ..........................................................................61
3.5 收尾 ................................................................................................................64
3.6 练习 ................................................................................................................66
3.7 本章小结 ........................................................................................................67
4 ..设置你的云服务 ................................................................................................... 69
4.1 安全模型和身份管理 ....................................................................................70
4.1.1 创建和管理 IAM 用户 ......................................................................70
4.1.2 创建 IAM 组 ......................................................................................73
4.1.3 创建角色 ............................................................................................76
4.1.4 资源 ....................................................................................................77
4.1.5 权限和策略 ........................................................................................77
4.2 日志与警报 ....................................................................................................79
4.2.1 设置日志 ............................................................................................80
4.2.2 日志保留期 ........................................................................................81
4.2.3 筛选器、指标和警报 ........................................................................81
4.2.4 搜索日志数据 ....................................................................................83
4.2.5 S3 和日志 ...........................................................................................83
4.2.6 关于警报的更多操作 ........................................................................84
4.2.7 CloudTrail ...........................................................................................88
4.3 成本 ................................................................................................................90
4.3.1 创建账单提醒 ....................................................................................91
4.3.2 监控和优化成本 ................................................................................92
4.3.3 使用 Simple Monthly Calculator .......................................................93
4.3.4 计算 Lambda 和 API Gateway 的成本 .............................................94
4.4 练习 ................................................................................................................96
4.5 本章小结 ........................................................................................................97
第 2 部分..深入核心 ...................................................................................... 99
5 ..身份认证和授权 ................................................................................................ 101
5.1 无服务器环境中的身份认证 ......................................................................101
5.1.1 无服务器方法 ..................................................................................102
5.1.2 Amazon Cognito ...............................................................................104
5.1.3 Auth0 ................................................................................................105
5.2 为 24 小时视频增加身份认证 ....................................................................106
5.2.1 计划 ..................................................................................................106
5.2.2 直接调用 Lambda ............................................................................107
5.2.3 24 小时视频网站 .............................................................................108
5.2.4 Auth0 配置 ....................................................................................... 110
5.2.5 在网站中加入 Auth0 ....................................................................... 113
5.2.6 测试 Auth0 的集成 .......................................................................... 118
5.3 与 AWS 集成 ................................................................................................ 119
5.3.1 用户信息 Lambda ............................................................................120
5.3.2 API Gateway ....................................................................................124
5.3.3 映射 ..................................................................................................126
5.3.4 通过 API Gateway 调用 Lambda ....................................................130
5.3.5 自定义授权方 ..................................................................................130
5.4 委托令牌 ......................................................................................................135
5.4.1 真实案例 ..........................................................................................136
5.4.2 开通委托令牌 ..................................................................................136
5.5 练习 ..............................................................................................................137
5.6 本章小结 ......................................................................................................137
6 ..编排者 Lambda ................................................................................................. 139
6.1 Lambda 内幕 ................................................................................................139
6.1.1 事件模型和源 ..................................................................................140
6.1.2 推送和拉取事件模型 ......................................................................141
6.1.3 并发执行 ..........................................................................................142
6.1.4 容器重用 ..........................................................................................143
6.1.5 冷 Lambda 和暖 Lambda .................................................................143
6.2 编程模型 ......................................................................................................145
6.2.1 函数处理程序 ..................................................................................145
6.2.2 事件对象 ..........................................................................................145
6.2.3 上下文对象 ......................................................................................147
6.2.4 回调函数 ..........................................................................................147
6.2.5 日志 ..................................................................................................148
6.3 版本管理、别名和环境变量 ......................................................................148
6.3.1 版本管理 ..........................................................................................148
6.3.2 别名 ..................................................................................................150
6.3.3 环境变量 ..........................................................................................152
6.4 使用命令行界面(CLI) ..............................................................................154
6.4.1 调用命令 ..........................................................................................155
6.4.2 创建和部署函数 ..............................................................................155
6.5 Lambda 模式 ................................................................................................157
6.5.1 异步瀑布 ..........................................................................................158
6.5.2 序列与并行 ......................................................................................163
6.5.3 使用库 ..............................................................................................164
6.5.4 把逻辑移到另一个文件中 ..............................................................167
6.6 测试 Lambda 函数 .......................................................................................167
6.6.1 在本地测试 ......................................................................................167
6.6.2 编写测试 ..........................................................................................168
6.6.3 在 AWS 中测试................................................................................171
6.7 练习 ..............................................................................................................173
6.8 本章小结 ......................................................................................................173
7 ..API.Gateway ..................................................................................................... 175
7.1 作为接口的 API Gateway ............................................................................176
7.1.1 和 AWS 服务集成............................................................................177
7.1.2 缓存、限制与日志 ..........................................................................177
7.1.3 阶段和版本管理 ..............................................................................178
7.1.4 脚本 ..................................................................................................178
7.2 使用 API Gateway ........................................................................................178
7.2.1 计划 ..................................................................................................180
7.2.2 创建资源和方法 ..............................................................................181
7.2.3 配置方法执行 ..................................................................................185
7.2.4 Lambda 函数 ....................................................................................187
7.2.5 更新网站 ..........................................................................................191
7.3 优化网关 ......................................................................................................194
7.3.1 限制 ..................................................................................................194
7.3.2 日志 ..................................................................................................197
7.3.3 缓存 ..................................................................................................199
7.4 阶段和版本管理 ..........................................................................................202
7.4.1 创建阶段变量 ..................................................................................202
7.4.2 使用阶段变量 ..................................................................................203
7.4.3 版本管理 ..........................................................................................205
7.5 练习 ..............................................................................................................205
7.6 本章小结 ......................................................................................................206
第 3 部分..拓展架构 ................................................................................... 207
8 ..存储 ....................................................................................................................... 209
8.1 更智能的存储 ..............................................................................................209
8.1.1 版本控制 ..........................................................................................210
8.1.2 托管静态网站 ..................................................................................212
8.1.3 存储类别 ..........................................................................................214
8.1.4 对象生命周期管理 ..........................................................................216
8.1.5 转移加速 ..........................................................................................217
8.1.6 事件通知 ..........................................................................................219
8.2 安全上传 ......................................................................................................220
8.2.1 架构 ..................................................................................................221
8.2.2 上传策略 Lambda ............................................................................222
8.2.3 S3 CORS 配置 .................................................................................228
8.2.4 在网站中上传 ..................................................................................228
8.3 限制对文件的访问 ......................................................................................233
8.3.1 禁止公开访问 ..................................................................................233
8.3.2 生成预签名 URL .............................................................................233
8.4 练习 ..............................................................................................................234
8.5 本章小结 ......................................................................................................235
9 ..数据库 ................................................................................................................... 237
9.1 Firebase 简介 ................................................................................................238
9.1.1 数据结构 ..........................................................................................238
9.1.2 安全规则 ..........................................................................................240
9.2 为 24 小时视频添加 Firebase ......................................................................241
9.2.1 架构 ..................................................................................................242
9.2.2 设置 Firebase ....................................................................................243
9.2.3 修改转码视频 Lambda ....................................................................245
9.2.4 Transcode Video Firebase Update 函数 ...........................................250
9.2.5 连接 Lambda ....................................................................................251
9.2.6 网站 ..................................................................................................253
9.2.7 端到端测试 ......................................................................................258
9.3 安全访问文件 ..............................................................................................259
9.3.1 签名 URL Lambda ...........................................................................260
9.3.2 API Gateway 设置 ...........................................................................261
9.3.3 再次更新网站 ..................................................................................262
9.3.4 提升性能 ..........................................................................................262
9.3.5 提升 Firebase 安全性 .......................................................................265
9.4 练习 ..............................................................................................................270
9.5 本章小结 ......................................................................................................270
10 ..最后一英里 ..................................................................................................... 271
10.1 部署与框架 ................................................................................................271
10.2 迈向更好的微服务 ....................................................................................272
10.3 Step Functions ............................................................................................277
10.4 AWS Marketplace .......................................................................................283
10.5 未来之路 ....................................................................................................285
A ..为无服务器架构而生的服务 ........................................................................ 287
B ..安装和设置 ........................................................................................................ 293
C ..身份认证和授权的更多信息 ......................................................................... 305
D ..再探 Lambda 内幕 .......................................................................................... 311
E ..模型和映射 ........................................................................................................ 317
F ..S3 事件消息结构 .............................................................................................. 335
G ..Serverless.Framework 和 SAM ................................................................. 337
猜您喜欢

读书导航