书籍详情

微服务即学即用

微服务即学即用

作者:[美] 罗尼·米特拉(Ronnie Mitra) 著,王岩,黄俊彬 译

出版社:中国电力出版社

出版时间:2022-03-01

ISBN:9787519864088

定价:¥98.00

购买这本书可以去
内容简介
  ·学习有效和明确的端到端微服务系统设计。 ·定义团队、他们的职责以及共同工作的指导方针。 ·了解如何将大型应用程序分割成一组微服务。 ·研究如何将数据隔离并嵌入到相应的微服务中。 ·为基础架构更改构建一个简单但功能强大的CI/CD管道。 ·为示例微服务编写代码。 ·在Amazon上部署可正常工作的微服务应用程序Web服务。
作者简介
  作者介绍 Ronnie Mitra是一位作家,战略家和顾问,拥有超过25年网络和连接技术工作经验。他是O’Reilly的《Microservice Architecture》和《Continuous API Management》的合著者。 Irakli Nadareishvili是Capital One核心创新副总裁,领导着负责构建基于微服务的核心银行平台的团队。在此之前,他是健康科技初创公司ReferWell的联合创始人兼CTO,并在CA Technologies和NPR担任技术领导职务。您可以通过@inadarei在Twitter上关注Irakli。 译者介绍 王岩,thoughtworks高级咨询师,专注于领域驱动设计的实践和推广。黄俊彬,thoughtworks高级咨询师,在智能硬件、通信、互联网、金融等领军企业提供敏捷转型、系统架构改造、大型遗留系统重构等服务。
目录
目录
前言 .1
第1 章 迈向微服务架构 7
1.1 微服务是什么? .8
1.2 降低协作成本 10
1.2.1 协作成本问题 11
1.2.2 艰难部分. 13
1.3 从实践中学习 14
1.4 决策,决策…… 17
1.5 小结 21
第2 章 微服务运作模式的设计 22
2.1 为什么团队和人员很重要 23
2.1.1 团队规模. 24
2.1.2 团队技能. 26
2.1.3 团队间协作 27
2.2 引入团队拓扑 29
2.2.1 团队类型. 29
2.2.2 交互模式. 31
2.3 设计一个微服务团队拓扑 32
2.3.1 建立系统设计团队 . 33
2.3.2 构建微服务团队模板 35
2.3.3 平台团队. 38
2.3.4 赋能和复杂的子系统团队 . 39
2.3.5 消费者团队 41
2.3.6 小结 43
第3 章 设计微服务:SEED(S)流程 44
3.1 介绍服务设计的七个基本演变:SEED(S)方法 . 45
3.2 确定参与者 . 46
3.3 确定参与者必须做的工作 49
3.3.1 使用工作故事描述格式来完成待完成工作(JTBDs) 51
3.3.2 我们的示例项目中的示例JTBD 52
3.4 用序列图发现交互模式 53
3.5 从JTBD 派生操作和查询 56
3.6 将每个查询和操作描述为具有开放标准的规范 59
3.7 获得关于API 规范的反馈 64
3.8 实现微服务 . 65
3.9 微服务与API . 65
3.10 小结 . 68
第4 章 调整微服务的大小:寻找服务边界 69
4.1 为什么边界很重要,什么时候重要,以及如何找到它们 69
4.2 领域驱动设计和微服务边界 71
4.2.1 上下文映射 75
4.2.2 同步集成与异步集成 78
4.2.3 DDD 聚合 79
4.3 事件风暴简介 79
4.4 介绍通用规模计算公式 86
4.5 小结 87
第5 章 处理数据 89
5.1 独立部署和数据共享 . 89
5.2 微服务嵌入他们的数据 91
5.2.1 嵌入数据不应导致数据库集群数量激增 92
5.2.2 数据嵌入和数据委托模式 . 93
5.2.3 使用数据复制解决独立性 . 95
5.2.4 分布式事务和失败补偿 96
5.3 事件源和CQRS 99
5.3.1 事件源 100
5.3.2 通过滚动快照提高性能 106
5.3.3 事件存储 107
5.3.4 命令查询职责分离 108
5.4 微服务之外的事件源和CQRS 109
5.5 小结 . 111
第6 章 构建基础设施流水线 . 112
6.1 DevOps 原则和实践 113
6.1.1 不可变的基础设施 114
6.1.2 基础设施即代码 116
6.1.3 持续集成和持续交付 . 118
6.2 建立基础设施即代码的环境 120
6.2.1 设置GitHub 120
6.2.2 安装Terraform 121
6.3 配置Amazon Web Services 122
6.3.1 设置一个AWS Operations 账户 123
6.3.2 配置AWS CLI 127
6.3.3 设置AWS 权限 . 128
6.3.4 为Terraform 创建S3 存储 132
6.4 建立基础设施即代码流水线 134
6.4.1 创建沙箱代码库 135
6.4.2 使用Terraform 137
6.4.3 编写沙盒环境代码 138
6.4.4 构建流水线 . 142
6.4.5 测试流水线 . 152
6.5 小结 . 154
第7 章 构建微服务基础设施 . 156
7.1 基础设施组件 . 156
7.1.1 网络 157
7.1.2 Kubernetes 服务 158
7.1.3 GitOps 部署服务器 . 160
7.2 实现基础设施 . 162
7.2.1 安装kubectl 162
7.2.2 设置模块代码库 163
7.2.3 网络模块 166
7.2.4 Kubernetes 模块 182
7.2.5 设置Argo CD 195
7.2.6 测试环境 200
7.2.7 清理基础设施 201
7.3 小结 . 203
第8 章 开发者空间 205
8.1 编码标准和开发者的配置 . 206
8.2 在本地设置一个容器化的环境 214
8.2.1 安装Multipass 215
8.2.2 输入容器和映射文件夹 217
8.3 安装Docker . 218
8.4 本地Docker 的高级用法:安装Cassandra 220
8.5 安装Kubernetes . 221
8.6 小结 . 223
第9 章 开发微服务 225
9.1 设计微服务端点 225
9.1.1 航班管理微服务 229
9.1.2 预留管理微服务 230
9.1.3 设计OpenAPI 规范 230
9.2 为微服务实现数据 238
9.2.1 预订微服务的Redis 数据模型 238
9.2.2 航班微服务的MySQL 数据模型 . 241
9.3 微服务的实现代码 243
9.3.1 航班微服务背后的代码 244
9.3.2 健康检查 250
9.4 向项目引入第二种微服务 . 252
9.5 通过伞式项目关联微服务 . 259
9.6 小结 . 262
第10 章 发布微服务 264
10.1 设置Staging 环境 265
10.1.1 Ingress 模块 . 266
10.1.2 数据库模块 267
10.1.3 Forking Staging 基础设施项目 268
10.1.4 配置Staging 工作流 269
10.1.5 编辑Staging 基础设施代码 . 271
10.2 传输航班信息容器 . 275
10.2.1 介绍Docker Hub 276
10.2.2 配置Docker Hub 277
10.2.3 配置流水线 278
10.3 部署航班服务容器 . 282
10.3.1 了解Kubernetes 部署 . 283
10.3.2 创建 Helm Chart 284
10.3.3 创建微服务部署代码库 . 286
10.3.4 使用Argo CD 进行GitOps 式的部署 . 292
10.4 清理 299
10.5 小结 299
第11 章 变更管理 . 300
11.1 微服务系统中的变更 301
11.1.1 以数据为导向 . 301
11.1.2 变更的影响 302
11.1.3 三种部署模型 . 304
11.2 基于我们的架构的考量 306
11.2.1 基础设施的变更 . 307
11.2.2 微服务变更 311
11.2.3 数据的变更 316
11.3 小结 318
第12 章 旅程的终点(和新的起点) . 320
12.1 微服务的复杂性与简化 321
12.2 衡量微服务转型的进展 325
12.3 小结 328
猜您喜欢

读书导航