简介
随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。本书首先从理论出发,介绍了微服务架构的概念、诞生背景、本质特征以及优缺点;然后基于实践,探讨了如何从零开始构建**个微服务,包括Hello World API、Docker 映像构建与部署、日志聚合、监控告警、持续交付流水线等;*后,在进阶部分讨论了微服务的轻量级通信、消费者驱动的契约测试,并通过一个真实的案例描述了如何使用微服务架构改造遗留系统。全书内容丰富,条理清晰,通俗易懂,是一本理论结合实践的微服务架构的实用书籍。本书不仅适合架构师、开发人员、测试人员以及运维人员阅读,也适合正在尝试使用微服务架构解耦历史遗留系统的团队或者个人参考,希望本书能在实际工作中对读者有所帮助。
目录
第 1部分 基础篇
第 1章 单块架构及其面临的挑战 ............................................. 3
1.1三层应用架构 ..... 4
1.1.1三层应用架构的发展 .................. 4
1.1.2什么是三层架构 ......................... 5
1.1.3三层架构的优势 ......................... 6
1.2单块架构 ............. 6
1.2.1什么是单块架构 ......................... 6
1.2.2单块架构的优势 ......................... 7
1.2.3单块架构面临的挑战 .................. 8
1.3 小结 ................... 12
第 2章 微服务架构综述 .................... 13
2.1什么是微服务架构 ................................. 13
2.1.1多微才够微 ............................... 14
2.1.2 单一职责 ................................... 17
2.1.3 轻量级通信 ............................... 17
2.1.4 独立性 . 19
2.1.5 进程隔离 ................................... 20
2.2 微服务的诞生背景 ................................. 22
2.2.1 互联网行业的快速发展 ............ 23
2.2.2 敏捷、精益方法论的深入人心 23
2.2.3 单块架构系统面临的挑战 ........ 23
2.2.4 容器虚拟化技术 ....................... 23
2.3 微服务架构与 SOA ................................ 24
2.3.1 SOA概述 .................................. 24
2.3.2 微服务与 SOA .......................... 25
2.4 微服务的本质 ... 26
2.4.1服务作为组件 ........................... 27
2.4.2 围绕业务组织团队 ................... 28
2.4.3 关注产品而非项目 ................... 29
2.4.4 技术多样性 ............................... 31
2.4.5 业务数据独立 ........................... 32
2.4.6 基础设施自动化 ....................... 33
2.4.7 演进式架构 ............................... 33
2.5 微服务不是银弹 ..................................... 34
2.5.1 分布式系统的复杂度 ................ 35
2.5.2 运维成本 ................................... 36
2.5.3 部署自动化 ............................... 36
2.5.4 DevOps与组织架构 ................. 37
2.5.5 服务间的依赖测试 ................... 37
2.5.6 服务间的依赖管理 ................... 37
2.6 小结 ................... 38
第 2部分 实践篇
第 3章 构建**个服务 .................... 41
3.1场景分析 ........... 41
3.2任务拆分 ........... 43
第 4章 Hello World API .................... 45
4.1 API实现 ............ 45
4.1.1 开发语言 ——Ruby ................... 45
4.1.2 Web框架——Grape ................. 46
4.1.3 API的具体实现 ........................ 47
4.2代码测试与静态检查 ............................. 50
4.2.1代码测试 ................................... 50
4.2.2测试覆盖率统计 ....................... 53
4.2.3静态检查 ................................... 54
4.2.4代码复杂度检查 ....................... 57
第 5章 构建 Docker映像 ................. 61
5.1 定义 Dockerfile . 61
5.2 配置 Docker主机 .................................... 63
5.3 构建 Docker映像 .................................... 64
5.4 运行 Docker容器 .................................... 64
5.5 发布 Docker映像 .................................... 65
5.6 小结 ................... 69
第 6章 部署 Docker映像 ................. 71
6.1基础设施 AWS .. 71
6.2基础设施自动化 ..................................... 73
6.3 部署 Docker映像 .................................... 80
6.4自动化部署 ....... 81
6.5 小结 ................... 84
第 7章 持续交付流水线 .................... 85
7.1持续集成环境 ... 85
7.2提交阶段 ........... 87
7.3验证阶段 ........... 91
7.4构建阶段 ........... 91
7.5发布阶段 ........... 94
7.6 小结 ................... 96
第 8章 日志聚合 .............................. 97
8.1 日志聚合工具简介 ................................. 97
8.2 Splunk的核心 ... 99
8.3 安装 Splunk索引器 .............................. 100
8.4 安装 Splunk转发器 .............................. 101
8.5日志查找 ......... 102
8.6告警设置 ......... 103
8.7 小结 ................. 104
第 9章 监控与告警 ......................... 105
9.1 Nagios简介..... 105
9.2 Nagios的工作原理 ............................... 107
9.3 Nagios安装..... 108
9.4 Nagios的配置 . 109
9.5 监控 products-service ............................ 111
9.6 告警 ................. 113
9.7 小结 ................. 114
第 10章 功能迭代 .......................... 115
10.1定义模型 ....... 116
10.2持久化模型 ... 117
10.3定义表现形式 ..................................... 119
10.4 实现 API ........ 122
10.5服务描述文件 ..................................... 125
10.6 小结 ............... 127
第 3部分 进阶篇
第 11章 微服务与持续交付 ............ 131
11.1持续交付的核心 .................................. 132
11.2微服务架构与持续交付 ...................... 133
11.2.1 开发 . 133
11.2.2 测试 . 137
11.2.3持续集成 ................................ 139
11.2.4 构建 . 139
11.2.5 部署 . 140
11.2.6 运维 . 143
11.3 小结 ............... 144
第 12章 微
第 1章 单块架构及其面临的挑战 ............................................. 3
1.1三层应用架构 ..... 4
1.1.1三层应用架构的发展 .................. 4
1.1.2什么是三层架构 ......................... 5
1.1.3三层架构的优势 ......................... 6
1.2单块架构 ............. 6
1.2.1什么是单块架构 ......................... 6
1.2.2单块架构的优势 ......................... 7
1.2.3单块架构面临的挑战 .................. 8
1.3 小结 ................... 12
第 2章 微服务架构综述 .................... 13
2.1什么是微服务架构 ................................. 13
2.1.1多微才够微 ............................... 14
2.1.2 单一职责 ................................... 17
2.1.3 轻量级通信 ............................... 17
2.1.4 独立性 . 19
2.1.5 进程隔离 ................................... 20
2.2 微服务的诞生背景 ................................. 22
2.2.1 互联网行业的快速发展 ............ 23
2.2.2 敏捷、精益方法论的深入人心 23
2.2.3 单块架构系统面临的挑战 ........ 23
2.2.4 容器虚拟化技术 ....................... 23
2.3 微服务架构与 SOA ................................ 24
2.3.1 SOA概述 .................................. 24
2.3.2 微服务与 SOA .......................... 25
2.4 微服务的本质 ... 26
2.4.1服务作为组件 ........................... 27
2.4.2 围绕业务组织团队 ................... 28
2.4.3 关注产品而非项目 ................... 29
2.4.4 技术多样性 ............................... 31
2.4.5 业务数据独立 ........................... 32
2.4.6 基础设施自动化 ....................... 33
2.4.7 演进式架构 ............................... 33
2.5 微服务不是银弹 ..................................... 34
2.5.1 分布式系统的复杂度 ................ 35
2.5.2 运维成本 ................................... 36
2.5.3 部署自动化 ............................... 36
2.5.4 DevOps与组织架构 ................. 37
2.5.5 服务间的依赖测试 ................... 37
2.5.6 服务间的依赖管理 ................... 37
2.6 小结 ................... 38
第 2部分 实践篇
第 3章 构建**个服务 .................... 41
3.1场景分析 ........... 41
3.2任务拆分 ........... 43
第 4章 Hello World API .................... 45
4.1 API实现 ............ 45
4.1.1 开发语言 ——Ruby ................... 45
4.1.2 Web框架——Grape ................. 46
4.1.3 API的具体实现 ........................ 47
4.2代码测试与静态检查 ............................. 50
4.2.1代码测试 ................................... 50
4.2.2测试覆盖率统计 ....................... 53
4.2.3静态检查 ................................... 54
4.2.4代码复杂度检查 ....................... 57
第 5章 构建 Docker映像 ................. 61
5.1 定义 Dockerfile . 61
5.2 配置 Docker主机 .................................... 63
5.3 构建 Docker映像 .................................... 64
5.4 运行 Docker容器 .................................... 64
5.5 发布 Docker映像 .................................... 65
5.6 小结 ................... 69
第 6章 部署 Docker映像 ................. 71
6.1基础设施 AWS .. 71
6.2基础设施自动化 ..................................... 73
6.3 部署 Docker映像 .................................... 80
6.4自动化部署 ....... 81
6.5 小结 ................... 84
第 7章 持续交付流水线 .................... 85
7.1持续集成环境 ... 85
7.2提交阶段 ........... 87
7.3验证阶段 ........... 91
7.4构建阶段 ........... 91
7.5发布阶段 ........... 94
7.6 小结 ................... 96
第 8章 日志聚合 .............................. 97
8.1 日志聚合工具简介 ................................. 97
8.2 Splunk的核心 ... 99
8.3 安装 Splunk索引器 .............................. 100
8.4 安装 Splunk转发器 .............................. 101
8.5日志查找 ......... 102
8.6告警设置 ......... 103
8.7 小结 ................. 104
第 9章 监控与告警 ......................... 105
9.1 Nagios简介..... 105
9.2 Nagios的工作原理 ............................... 107
9.3 Nagios安装..... 108
9.4 Nagios的配置 . 109
9.5 监控 products-service ............................ 111
9.6 告警 ................. 113
9.7 小结 ................. 114
第 10章 功能迭代 .......................... 115
10.1定义模型 ....... 116
10.2持久化模型 ... 117
10.3定义表现形式 ..................................... 119
10.4 实现 API ........ 122
10.5服务描述文件 ..................................... 125
10.6 小结 ............... 127
第 3部分 进阶篇
第 11章 微服务与持续交付 ............ 131
11.1持续交付的核心 .................................. 132
11.2微服务架构与持续交付 ...................... 133
11.2.1 开发 . 133
11.2.2 测试 . 137
11.2.3持续集成 ................................ 139
11.2.4 构建 . 139
11.2.5 部署 . 140
11.2.6 运维 . 143
11.3 小结 ............... 144
第 12章 微
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×