书籍详情

微服务体系建设和实践

微服务体系建设和实践

作者:任钢

出版社:电子工业出版社

出版时间:2019-08-01

ISBN:9787121368721

定价:¥99.00

购买这本书可以去
内容简介
  本书采用体系化的思维来诠释和构建微服务体系,从整体上讲述微服务体系的技术、架构、框架、管理整合和规划实施等内容。本书不针对某个微服务技术或框架用法进行细节说明,而是对微服务的整体领域进行概述,同时说明如何实践、如何验证、如何落地。本书脉络清晰,内容翔实,引导读者不仅“知其然”,而且还“知其所以然”。本书适合希望从初级技能水平提升到高级技能水平的读者阅读。阅读本书后,读者会对微服务有一个整体的、深层次的、体系化的认识。
作者简介
  任钢,教授级高工,较早一批国家认证架构设计师,同时也是国家认证系统分析师和信息项目管理师,拥有20余年的软件开发和架构经验,承担过上百个软件项目的规划、设计、开发和交付,对软件工程和架构设计有一定的研究,现于某互联科技公司担任首席架构师。
目录

第1部分 微服务体系概述 1

第1章 微服务概述 2

1.1 微服务史话 2

1.1.1 微服务史话总述 2

1.1.2 第一个时代是单体应用的C/S客户服务器时代 4

1.1.3 第二个时代是分布式组件化应用时代 5

1.1.4 第三个时代是SOA(面向服务架构)时代 6

1.1.5 第四个时代是微服务架构时代 8

1.2 现阶段微服务的基本概念 10

1.2.1 微服务的基本概念 10

1.2.2 微服务的内涵和外延 12

1.2.3 微服务架构(MSA)的定义 13

1.2.4 MSA和SOA的比较 14

1.3 关于微服务的一些辩证关系 16

1.3.1 选择单体应用系统和微服务应用系统的辩证关系 16

1.3.2 微服务颗粒度大小的辩证关系 17

1.3.3 微服务进程内外之间的辩证关系 17

1.3.4 组件独立性和共享性之间的辩证关系 17

1.3.5 关于去中心化和管理规范化之间的辩证关系 17

1.3.6 松耦合和敏捷性要求之间的辩证关系 17

1.3.7 投入成本和复杂度之间的辩证关系 18

1.3.8 微服务灵活性与性能的辩证关系 18

1.3.9 微服务安全性与无状态性之间的辩证关系 18

1.4 微服务是未来方向吗 18

1.5 本章小结 19

第2章 微服务体系概况 20

2.1 关于体系化 20

2.1.1 体系化的整体性 20

2.1.2 体系化的结构性 21

2.1.3 体系化的综合性 21

2.1.4 体系化的动态性 21

2.2 采用微服务的愿景 22

2.3 微服务体系的概念 23

2.3.1 关于微服务体系的特征 24

2.3.2 微服务体系的整体性 25

2.3.3 微服务体系的结构性 26

2.3.4 微服务体系的综合性 27

2.3.5 微服务体系的动态性 28

2.4 微服务体系建设方法论 29

2.5 微服务体系与云原生架构的区别 30

2.5.1 云原生架构简介 30

2.5.2 微服务体系与云原生架构的不同之处 32

2.6 微服务体系与API开放框架平台的关系 33

2.7 微服务体系生态系统 35

2.8 本章小结 36

第2部分 微服务技术体系 37

第3章 微服务技术体系及实现技术 39

3.1 微服务技术体系的体系化 39

3.1.1 基本概念澄清 39

3.1.2 微服务技术体系的整体性 41

3.1.3 微服务技术体系的结构性 42

3.2 微服务技术体系的层次及其关系 42

3.2.1 总体层次结构 42

3.2.2 微服务技术体系的实现技术体系 45

3.2.3 微服务技术体系的技术架构体系 46

3.2.4 微服务技术体系的技术框架体系 46

3.2.5 微服务技术体系的集成环境平台 47

3.2.6 微服务技术体系的基础设施环境 47

3.3 微服务的实现技术 48

3.3.1 总体说明 48

3.3.2 通信技术 48

3.3.3 分布式架构 57

3.3.4 容器技术 75

3.3.5 安全协议 80

3.4 实现微服务的集成平台自动化工具 84

3.4.1 集成平台自动化工具综述 84

3.4.2 研发自动化工具 85

3.4.3 CI/CD自动化工具 86

3.4.4 运维自动化工具 88

3.5 微服务的基础设施环境 92

3.5.1 IaaS平台 92

3.5.2 云管理平台 93

3.6 本章小结 96

第4章 微服务技术架构体系 98

4.1 微服务技术架构体系概述 98

4.1.1 微服务技术架构的概念 98

4.1.2 微服务技术架构的整体性 100

4.1.3 微服务技术架构的优势和挑战 101

4.2 微服务运行时服务架构的组成部分 103

4.2.1 微服务组件的形式和特征 103

4.2.2 微服务组件的调用方式 103

4.2.3 微服务组件的契约驱动模式 104

4.3 微服务运行时基础架构的组成部分 105

4.3.1 微服务运行时基础架构概述 105

4.3.2 微服务的服务发现和注册组件 107

4.3.3 微服务的API网关组件 116

4.3.4 微服务的服务容错组件及其模式 122

4.3.5 监控告警日志组件 146

4.3.6 认证授权组件 158

4.3.7 统一配置管理组件 165

4.4 微服务运行时后端架构的组成部分 169

4.4.1 消息队列中间件 169

4.4.2 关系存储及其相关管理工具 169

4.4.3 分布式NoSQL数据库 169

4.4.4 NewSQL数据存储区 170

4.4.5 文件数据存储区 170

4.4.6 数据流平台 170

4.5 微服务技术架构设计模式 170

4.5.1 微服务技术架构设计模式概述 171

4.5.2 常用的微服务技术架构设计模式 171

4.5.3 微服务技术架构设计模式及其特性 172

4.6 本章小结 179

第5章 微服务技术框架体系 181

5.1 微服务技术框架概述 181

5.1.1 微服务技术框架的基本概念 181

5.1.2 微服务技术框架实现的功能 181

5.1.3 微服务技术框架分类 183

5.1.4 选择微服务技术框架需要考虑的因素 185

5.2 开发型微服务基础框架平台 186

5.2.1 Netflix微服务框架 186

5.2.2 Spring Cloud微服务框架 188

5.2.3 Microsoft Azure Service Fabric微服务框架 191

5.2.4 Lightbend的Lagom框架 194

5.2.5 Microdot Framework微服务框架 196

5.2.6 Dubbo分布式服务框架 197

5.2.7 Spotify的Apollo框架 199

5.2.8 Steeltoe微服务框架 200

5.2.9 其他的微服务框架 202

5.3 运维型微服务基础框架平台 204

5.3.1 Kubernetes微服务框架 204

5.3.2 Docker Swarm微服务框架 212

5.3.3 ZeroC IceGrid微服务框架 215

5.3.4 Istio微服务框架 217

5.4 Serverless型微服务基础框架平台 219

5.4.1 Serverless型微服务基础框架平台架构 219

5.4.2 AWS Lambda框架 222

5.4.3 其他的Serverless框架平台 224

5.5 微服务开发框架平台 225

5.5.1 总体说明 225

5.5.2 基于Java的微服务开发框架 226

5.5.3 基于Microsoft.NET Framework的微服务开发框架 232

5.5.4 基于JavaScript的微服务开发框架 233

5.5.5 基于PHP的微服务开发框架 233

5.5.6 基于Go语言的微服务开发框架 234

5.5.7 基于Python语言的微服务开发框架 234

5.6 本章小结 234

第3部分 微服务业务体系 237

第6章 微服务业务体系概述 238

6.1 微服务业务体系的定义 238

6.2 与微服务业务体系相关的一些基本概念 242

6.2.1 技术微服务和业务微服务 242

6.2.2 业务服务和业务微服务 242

6.2.3 业务微服务设计层和业务微服务实现层 243

6.2.4 微服务技术架构和微服务业务架构 243

6.3 业务微服务解决的核心问题 244

6.3.1 业务微服务的边界 244

6.3.2 业务微服务的颗粒度大小 247

6.4 业务微服务的组织和集成 249

6.4.1 业务微服务的内部构成 249

6.4.2 业务微服务的内部设计模式 250

6.4.3 业务微服务的外部关系集成 259

6.5 实现业务微服务的相关架构 260

6.6 本章小结 261

第7章 业务微服务分析设计方法论 263

7.1 总体说明和业务场景描述 263

7.1.1 业务微服务的组成部分 263

7.1.2 业务逻辑的架构模式及实现 264

7.1.3 业务场景描述 265

7.2 普通服务分析和设计 270

7.2.1 资产管理微服务分析和定义 270

7.2.2 普通服务分析和设计概述 271

7.2.3 具体应用场景的普通服务分析和设计 273

7.3 领域驱动设计和微服务 279

7.3.1 领域驱动设计概述 279

7.3.2 基于领域驱动设计的业务微服务架构 282

7.3.3 基于领域驱动设计的业务微服务架构设计和实现 284

7.4 六边形架构分析和设计 292

7.4.1 六边形架构概述 292

7.4.2 基于六边形架构的业务微服务架构 295

7.4.3 基于六边形架构的业务微服务设计和实现 297

7.5 Clean架构分析和设计 304

7.5.1 Clean架构概述 304

7.5.2 基于Clean架构的业务微服务架构 307

7.5.3 基于Clean架构案例的设计和实现 308

7.6 DCI架构分析和设计 311

7.6.1 DCI架构概述 311

7.6.2 基于DCI架构的业务微服务架构 314

7.6.3 基于DCI架构的业务微服务架构设计和实现 315

7.7 CQRS架构分析和设计 318

7.7.1 CQRS架构概述 318

7.7.2 基于CQRS架构的业务微服务架构 319

7.7.3 基于CQRS架构的业务微服务架构设计和实现 320

7.8 本章小结 321

第4部分 微服务管理体系 323

第8章 微服务管理体系概述 324

8.1 微服务管理体系的定义 324

8.2 微服务管理体系的内容 325

8.3 微服务应用成熟度级别 327

8.3.1 定义微服务应用成熟度级别的缘由 327

8.3.2 微服务应用成熟度级别及其特征 327

8.3.3 产品级微服务应用成熟度特征描述 329

8.4 微服务应用的“12要素”原则 333

8.4.1 “12要素”原则简介 334

8.4.2 微服务应用的“12要素”原则 334

8.5 微服务规范 339

8.5.1 微服务规范和工具概述 339

8.5.2 微服务基础规范 340

8.5.3 微服务技术规范 340

8.5.4 微服务管理规范 340

8.6 微服务度量指标 342

8.6.1 度量指标概述 342

8.6.2 微服务的8个度量指标 343

8.7 本章小结 349

第9章 微服务应用的组织、人员和文化 350

9.1 单体架构应用的团队问题 350

9.2 微服务对组织、人员和文化的影响 351

9.2.1 围绕业务功能的组织 352

9.2.2 开发团队和运维团队不能分离 352

9.2.3 微服务团队的决策机制 352

9.2.4 微服务团队的规模 353

9.2.5 微服务对运维方式的影响 353

9.3 根据微服务的需要调整组织、人员和文化 354

9.3.1 组织团队的调整 354

9.3.2 倡导新文化和新行为 357

9.3.3 培养必要的新技能和新能力 358

9.3.4 微服务化小团队的组织和管理 359

9.3.5 组织结构的INVEST原则 360

9.4 本章小结 361

第10章 微服务的开发和运维流程 362

10.1 软件开发流程的演化历史 362

10.1.1 瀑布开发模式 362

10.1.2 快速原型模式 363

10.1.3 迭代模式 364

10.1.4 敏捷开发模式 366

10.1.5 微服务开发模式 367

10.1.6 DevOps模式 367

10.2 DevOps概述 368

10.2.1 DevOps的定义及其内容 368

10.2.2 企业实施DevOps的方式 369

10.2.3 微服务架构对DevOps的影响 370

10.3 在微服务下DevOps的实现 371

10.3.1 微服务的开发和运维流程概述 371

10.3.2 更多、更快地响应业务需求 373

10.3.3 开发和运维过程管理的敏捷性 374

10.3.4 优化质量保证流程 375

10.3.5 加强安全和治理管理 376

10.3.6 整合工具链构建DevOps平台 377

10.4 本章小结 378

第5部分 微服务体系建设实践 379

第11章 传统架构迁徙到微服务架构 380

11.1 迁徙的必要性 380

11.1.1 外部环境的挑战 380

11.1.2 业务方面的原因 381

11.1.3 技术方面的原因 382

11.1.4 管理方面的原因 383

11.2 需要考虑的问题 383

11.2.1 业务方面的问题 383

11.2.2 技术方面的问题 383

11.2.3 管理方面的问题 384

11.2.4 支撑方面的问题 384

11.3 传统架构迁徙到微服务架构的原则 385

11.4 传统架构迁徙到微服务架构的策略 385

11.4.1 整体改造,一步到位策略 386

11.4.2 试点入手,逐步推进策略 386

11.4.3 新功能、新服务策略 386

11.4.4 胶水层策略 387

11.4.5 绞杀策略 388

11.5 传统架构迁徙到微服务架构的实施流程 389

11.5.1 当前系统梳理和需求整理 389

11.5.2 确定目标、原则和策略 390

11.5.3 规划和计划 391

11.5.4 技术选型和确定 392

11.5.5 业务分析和拆分 395

11.5.6 团队、流程和人员改进 397

11.5.7 实施管理 398

11.5.8 演化和改进 399

11.6 本章小结 400

第12章 新建系统的业务微服务全生命周期过程 402

12.1 业务微服务全生命周期过程概述 402

12.2 产品或平台微服务化需要考虑的问题 402

12.2.1 是否一定要采用微服务架构 403

12.2.2 平台微服务架构设计的思考维度 403

12.2.3 产品或平台微服务的基本原则 404

12.3 产品或平台业务微服务的建设步骤 404

12.3.1 平台业务微服务的架构愿景 405

12.3.2 平台业务微服务的规划、原则和策略 406

12.3.3 业务微服务的识别和分析 407

12.3.4 业务微服务的应用场景分析(服务建模) 408

12.3.5 业务微服务的设计 409

12.3.6 业务微服务的实现 410

12.3.7 业务微服务的应用 410

12.3.8 业务微服务的改进和退出 411

12.4 本章小结 412

猜您喜欢

读书导航