微服务架构与实践

出版日期:2015-11-1
ISBN:9787121275910
作者:王磊
页数:236页

内容概要

ThoughtWorks的首席咨询师王磊是国内较早倡导和实践微服务的先行者。王磊是开源软件的爱好者和贡献者,社区活动的参与者,《Ruby Gems开发实战》(Practical RubyGems)一书的译者,GDCR西安的组织者。他于2012年加入ThoughtWorks,为国内外诸多客户提供项目交付和咨询服务;在加入ThoughtWorks之前,曾就职过多家知名外企,具有丰富的敏捷项目实战经验。目前致力于微服务架构、高可用的Web应用以及DevOps的研究与实践。

书籍目录

第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章 微服务与轻量级通信机制 145
12.1 同步通信与异步通信 145
12.1.1 概述 145
12.1.2 同步通信与异步通信的选择 146
12.2 远程调用 RPC 147
12.2.1 远程过程调用的核心 147
12.2.2 远程方法调用 148
12.2.3 远程过程调用的弊端 148
12.3 REST 149
12.3.1 概述 149
12.3.2 REST的核心 150
12.3.3 REST的优势 152
12.3.4 REST的不足 152
12.3.5 本节小结 155
12.4 HAL 155
12.4.1 概述 155
12.4.2 HAL的核心 156
12.4.3 HAL浏览器 160
12.5 消息队列 161
12.5.1 核心部分 162
12.5.2 访问方式 163
12.5.3 消息队列的优缺点 164
12.6 后台任务处理系统 165
12.6.1 核心部分 165
12.6.2 服务回调 166
12.6.3 一个例子 167
12.6.4 后台任务与微服务 169
12.7 小结 170
第13章 微服务与测试 171
13.1 微服务的结构 171
13.2 微服务的测试策略 173
13.3 微服务的单元测试 175
13.3.1 单元测试综述 175
13.3.2 单元测试的内容 176
13.4 微服务的集成测试 179
13.4.1 集成测试综述 179
13.4.2 集成测试的实施方法 179
13.4.3 集成测试的内容 180
13.5 基于消费者驱动的契约测试 181
13.5.1 集成测试存在的弊端 181
13.5.2 什么是契约 183
13.5.3 什么是契约测试 184
13.5.4 契约测试的方法 185
13.5.5 Pact实现契约测试 187
13.5.6 一个例子 192
13.5.7 本节小结 205
13.6 微服务的组件测试 205
13.6.1 组件测试概述 205
13.6.2 组件测试的方法 206
13.6.3 本节小结 207
13.7 微服务的端到端测试 208
13.7.1 端到端测试概述 208
13.7.2 端到端测试的内容 208
13.7.3 本节小结 209
13.8 小结 210
第14章 使用微服务架构改造遗留系统 211
14.1 背景与挑战 211
14.2 改造策略 212
14.2.1 昀小修改 212
14.2.2 功能剥离 212
14.2.3 数据解耦 213
14.2.4 数据同步 213
14.2.5 迭代替换 214
14.3 快速开发实践 215
14.3.1 快速开发模板 215
14.3.2 代码生成工具 217
14.3.3 持续集成模板 217
14.3.4 一键部署工具 217
14.4 微服务架构下的新系统 218
14.5 小结 220

作者简介

随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。本书首先从理论出发,介绍了微服务架构的概念、诞生背景、本质特征以及优缺点;然后基于实践,探讨了如何从零开始构建第一个微服务,包括Hello World API、Docker 映像构建与部署、日志聚合、监控告警、持续交付流水线等;最后,在进阶部分讨论了微服务的轻量级通信、消费者驱动的契约测试,并通过一个真实的案例描述了如何使用微服务架构改造遗留系统。全书内容丰富,条理清晰,通俗易懂,是一本理论结合实践的微服务架构的实用书籍。 本书不仅适合架构师、开发人员、测试人员以及运维人员阅读,也适合正在尝试使用微服务架构解耦历史遗留系统的团队或者个人参考,希望本书能在实际工作中对读者有所帮助。


 微服务架构与实践下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     这本书借着微服务的热潮而出版,兴冲冲的买来看了,但是比较失望。很短时间就完成了阅读,总体说有点意思,但是干货严重不足。这本书主要是介绍了一种微服务的实践过程,包括分析、设计、开发、测试、集成、发布一整套流程,但借助的实践只有一个hello world程序,实践过程描述的更多是流程细节以及过程中使用到的工具介绍,对于如何切分服务,原理性、概括性的东西基本没有提到,所以看得也很快。
  •     应邀来评价一下这本书~对于曾经在TW呆过一阵的人来说,看到这本书的目录很是心喜。因为几乎概括了TW现阶段推行的所有东西。从章节设计上还是十分用心的,涵盖了一种很‘时尚’的开发模式中的方方面面,ruby开发中的api框架grape,异步队列框架sidekiq,tdd(或者说准bdd--rspec),pact测试;虚拟化的docker,aws;devops要知道的splunk,nagios等;敏捷开发中的snapci;restful api设计中的hal等。但是这意味这一件事,要么这本书巨厚无比,要么只是泛泛而谈。而实际上,这本书的页码大概是两百多页,所以是相对宽泛型的介绍型的。读者在看之前最好已经具备了一定的ruby技能,aws技能,另外对tdd至少也要有一定认识,并且认为其是必要的才行。否则,读起来意义就不大了。整体来说,读后的感觉是标题太小,内容太大,页数太少,略显跳跃。如果你在tw呆过,你会知道这里的内容实际真的是源于真实项目中的实践,但是如果你不整ruby,也用不起/了aws,那么这本书中的实践一词可能就略显苍白了。或许这本书更适合改成《ruby云端微服务敏捷开发实践》之类的名字,然后把内容增至600页左右,让每个读者都能相对容易的实践其中的例子而不是只是想读软工的书那般草草略过,同时对于每个章节也更加深入的谈一些,才更有推广性。考虑到中国国情,最好把aws改成aliyun,splunk换成elk套件。还有就是书中的代码排版和贴图真心一般般了,能不能把aws的模板和snapci的回显示压缩或略去呢?本身页数少,章节多,不够深入了,这两部分的代码又占据了一些页码实在让人于心不忍了。愿下一版能改善这些问题。

精彩短评 (总计41条)

  •     本着 TW 的牌子想看学习一下,结果发现里面内容真是水的可怕…真心不如耐下心来看 docker weekly 邮件
  •     这本书的内容很基础,看完之后对微服务有了大致的了解。
  •     这么写书第二次见,人品有问题,推荐的人也是。
  •     Ruby的技术栈与我现在项目的技术不太同,不过基本上了解了微服务架构以及其开发流程。将一个系统进行分解成多个独立服务,以产品的形式进行维护开发。
  •     可作为了解微服务的入门参考
  •     读完稍微理清了SOA与微服务的区别,以及微服务与devops的关系
  •     微服务是将整个系统拆分成为相对独立的业务模块; 知道这句话,就了解了本书微服务的所有东西; 用单块架构和微服务做比较,没有可比较性,目前项目基本是SOA,用SOA比较,更适合些。 书中介绍的持续交付,不是微服务独有的,适用于搜有项目。 想了解微服务,不建议购买; 想了解软件工程,可以看看
  •     老实说,实在有些失望。这本书对微服务讲解的过于简单,上升到架构层面上实在有些勉强,至少服务发现这块基本就没有。基础篇还行,实践篇过于鸡肋。如果你对微服务一无所知,估计你看了还是会不甚了解,如果你本身已经对微服务已经稍微了解,那看了基本没有帮助,还不如将书后的案例篇充实一下,将遇到的问题以及解决方案讲解清楚,反而会好些。
  •     很长的篇幅在讲软件工程,而不是微服务架构本身的设计思想。
  •     如果想了解微服务,或者想用微服务架构替换现有遗留系统,这本书会让你有所启发。
  •     配置文件一贴就是8页,“微服务” 不是 “微服务 in AWS”,很多概念反反复复在三个部分讲了多次,作者你凑页数的动作也太明显了。
  •     这本一般
  •     讲得比较全面,但也很粗浅
  •     基础篇很强调微服务SOA单块架构之间的区别以及优劣,感觉还可以,后面的几篇对ruby无感,其他的因为没有实践过也不好评论
  •     贵。失望。
  •     有点泛泛而谈。不过对于我这样的新手来说还是很实用的,算作科普,简单介绍了一些工作流程,技术架构,貌似挺符合猿题库这边的情况的。书中提到的许多名词,之后再详细了解。
  •     基本的概念吧。感觉能讲的也并不多,所以讲的比较泛泛
  •     整体的结构组织并不合理,想看的东西一笔带过,基础知识不断复述。最后用了比较大的篇幅将自己的契约测试框架,给人一种推销的感觉。
  •     过于简单基础,真正涉及微服务的部分反而不多,反而在一些软件工程的基础知识上啰嗦了太久。
  •     Thoughtworks 的基本架构
  •     这一颗星给前两章,后面就是各种花式凑篇幅,软件安装、程序粘贴、命令help,以及每页出现很多遍的“开发、测试、构建、部署、运维”…
  •     思路清晰,通俗易懂,对微服务的诞生背景分析的还不错。作为入门书籍还行。
  •     前同事的作品,前面的对微服务的总结还不错,后面的实践部分比较粗。
  •     比较失望的一本书
  •     作为一本在国内首本系统化描述微服务的著作,这本书成功的完成了他的使命。不仅系统化的介绍了微服务技术的思想、架构、适用场景,而且对其中的关键技术和实践也进行了介绍,甚至包括一些经过检验的成熟工具。特别适合想要全面了解微服务的管理者、开发者和架构师。其实微服务所涉及到的技术的都不是新技术,它是一种将现有成熟技术组合而成的一种架构思想。这本书很好的拿捏了宏观与微观,架构与具体技术之间的分寸。既有宏观思想的高屋建瓴,又有细节技术简单介绍。推荐!
  •     架构且不说,实践是真的很多,不过比起微服务本身更重视周边(CI,监控,部署)设施的建设。代码很多,重视工具,如果是刚接触微服务,按照步骤实操应该还是不错的。但如果想了解构架或者思路方面的,这本书就不是很适合了
  •     基础篇还行,实践篇粗浅,进阶篇与前文有不少重复,有凑字数嫌疑。对于新手会有所获,实践的话不建议入(书中实践基于Ruby)。
  •     干货太少 囫囵吞枣读 堆砌清谈 同类书较少 勉强四星 下次花两小时读下
  •     写的什么玩意儿,压缩成ppt看还差不多,又一个骗稿费的
  •     写序的那帮人,你们从头到尾翻过么,就这能落个毛地,业务如何编排?跟踪链如何追踪?各微服务间的数据如何关联?业务调用的事务性如何解决?怎么确定微服务边界?划分原则是什么?什么可操作的实践都没说,就是维基百科的描述堆砌。这也能出书,不是能力问题,完全是态度问题,一段话反复说,一段代码反复贴,坑货,浪费了我不少时间!
  •     这本书真的是不敢恭维,除了前面几页讲了一下概念,后面的内容,excuse me?
  •     微服务内容不足
  •     对微服务分布式系统架构做了全面的介绍,各方面都介绍到了,做了系统性的分类整理,可以做一本索引参考书,对我来说有启发。个人觉得适合项目经理,产品经理等偏技术管理的,或者缺乏分布式系统开发经验的开发人员。
  •     给个3星吧,看了聊聊架构之后 推荐公司图书馆 购买的,买来看了目录之后,觉得书名 改为 《docker 入门》更合适,不推荐购买。
  •     适合对微服务没怎么接触过的人,作为微服务的入门材料还不错吧
  •     很大篇幅在叙述SOA+某些文字反反复复, 对微服务架构本身反而不多
  •     一本流水账
  •     请问这本书到底说了什么以至于可以卖到65元,鄙视出版社,鄙视作者!
  •     首尾不错,中间的实战没多少意义。
  •     微服务入门读物
  •     有一次感觉被骗了
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024