猜你喜欢
微服务体系建设和实践

微服务体系建设和实践

书籍作者:任钢 ISBN:9787121368721
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2580
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书采用体系化的思维来诠释和构建微服务体系,从整体上讲述微服务体系的技术、架构、框架、管理整合和规划实施等内容。本书不针对某个微服务技术或框架用法进行细节说明,而是对微服务的整体领域进行概述,同时说明如何实践、如何验证、如何落地。本书脉络清晰,内容翔实,引导读者不仅“知其然”,而且还“知其所以然”。

作者简介

任钢,教授级高工,较早一批国家认证架构设计师,同时也是国家认证系统分析师和信息项目管理师,拥有20余年的软件开发和架构经验,承担过上百个软件项目的规划、设计、开发和交付,对软件工程和架构设计有一定的研究,现于某互联科技公司担任首席架构师。

编辑推荐
适读人群 :本书适合希望从初级技能水平提升到高级技能水平的读者阅读。阅读本书后,读者会对微服务有一个整体的、深层次的、体系化的认识。

1 业内专家车宏原和蔡林山倾情作序。

2 本书采用体系化的思维诠释和构建微服务体系,从整体上讲述微服务体系的技术、架构、框架、管理整合和规划实施等内容。

3 本书适合希望从初级技能水平提升到高级技能水平的读者阅读,帮助读者对微服务形成一个整体的、深层次的、体系化的认识。


前言

自序



为什么要写这本书?这可能与我的经历和接触到的一些事情有关。

2014年算是微服务元年,我接触微服务晚一些,大概是在2015年。因为以前从事过架构工作,对SOA也有一定的研究,所以刚接触微服务时,同很多架构师一样,第一反应就是——这不就是SOA的一个变种吗?无非就是把服务的颗粒度放小而已。后来在具体了解和应用微服务技术的过程中,才知道其实两者还是有非常大的区别的。

虽然接触微服务晚一些,但是在实际工作中,我却无意间利用微服务原理解决了一些实际问题。2012年,我工作的单位有一个多服务的产品系统,这个产品系统是一个实时7×24小时系统,对于稳定性、可靠性、实时性和可追溯性的要求非常高,而且在某段特定的时间内还会出现类似“秒杀”的业务场景。可是该产品系统内多种服务混杂,业务逻辑代码和技术代码互相渗透,这导致调试、测试、实施都非常困难,尤其是一旦出现了Bug,非常难以定位,以及新增一个需求,比“登天”还难。于是我把这些业务按照组件化模式进行了拆分,当时主要是从技术层面上解决问题,首先把消息服务器、业务服务器、接口服务器、应用系统分开,实现了几个服务器的物理隔离,应用之间通过消息机制进行交互,从理论上杜绝了各个程序代码的交叉渗透,实际上这可以看作抽象地拆分服务的行为。通过这种处理,各个服务应用各司其职,而且当时这项技术还被授予了一项发明专利(授权编号为CN103731479B)。除此之外,在具体的工作中还存在着一个业务场景,当时单位的产品要外接其他厂商的多种接口业务,而外部多变的接口协议与内部稳定、可靠的逻辑实现之间存在矛盾。为了解决这对矛盾,我设计了一个网关,其主要作用是隔离外部与内部接口,松耦合内部与外部关系,通过插件机制进行扩展,网关的功能是实现协议的转换以适配操作行为、代理路由、异步缓存等,这项技术也被授予了一项发明专利(授权编号为CN103944814B),其实这就是微服务的API网关内容。

微服务刚出现时资料非常少。后来微服务发展起来了,各种名词和概念也“横空出世”,一方面让人感到眼花缭乱,另一方面也使很多用户手足无措,不知从何入手。截至目前,市面上已经有很多微服务相关的书籍,都非常不错。其中大部分书籍都是从一个方向或者一个技术点去描述微服务的,从某个方向或某个技术点来说,它们都非常有价值。可是我们不仅应该了解微服务的这些内容,还应该从整体上了解和把握微服务,知其然更要知其所以然。这正是我写这本书的初衷。

本书主要是从整体系统的角度介绍微服务体系结构的,对于每个组成部分的具体实现,没有进行深入的说明和解释,因为每个具体模块的资料和书籍都很多,这些也不是本书重点讨论的内容。另外,本书中也针对某个具体关注点进行了一些深层次的描述和说明,但这主要是为了更好地诠释整体的概念和结构。

通过阅读大量的资料,我学习了很多知识,结合自己20多年的工作经验,经过多轮的反思和总结,最终形成了本书。从事IT工作多年,我经历了一个又一个技术时代,从一个平台看到了另一个平台。在这个过程中很多同行都脱离了这支队伍,而我还在努力坚持着。

在此,我要感谢家人对我的理解和支持,感谢我的妻子多年来对家庭的付出,同时也要感谢我的两个女儿在我撰写书稿的时候没有影响我,以及感谢我的父母,我把这里的一切都献给他们。我还要感谢本书的编辑们,没有她们耐心的指导和完善本书内容,这本书也许只是一个读书笔记。最后,我要感谢那些在我编写本书的过程中帮助过我的所有人,他们都是默默无闻的后台工作者。


任 钢

2018年12月于广东深圳







前言



读者对象

本书适合希望从初级技能水平提升到高级技能水平的读者阅读。只要是对微服务感兴趣,并且想在这方面获得更多知识或者有更多想法的人们均可使用本书。

初级读者,是指接触或使用过微服务框架,有微服务应用经验的软件开发工程师、需求分析师、运维工程师等,同时也包括一些对微服务感兴趣的学生。本书可以作为大学、培训中心微服务方面的教材或课外读物。

中级读者,是指有丰富开发经验的软件开发工程师、需求分析师、运维工程师等。这些读者可以在本书中获得更全面的认识,全面地、整体地、辩证地、系统化地认识微服务。

高级读者,是指有丰富经验的架构师和分析师。这些读者可以通过本书从更深层次去理解微服务的本质和核心,以及如何游刃有余地解决实际工作中的架构问题。

本书也适合IT行业管理者,如CTO、CIO、技术总裁、技术总监、研发总监、信息总监等。通过了解微服务的整个蓝图,IT管理者可以在企业或组织微服务体系建设中做出高质量的决策。

本书尤其适合那些在微服务领域有一定经验的工程师,可满足其需要进一步拓宽视野、提高层级的要求。

本书定位

本书采用理论结合实际的方式,针对具体问题进行分析,并进一步解决问题。因此,本书是一本实践和操作性很强的书籍。本书既可以作为学习微服务的教材,也可以作为架构师的参考手册。

本书从整体上讲述微服务的技术、架构、框架、业务整合、管理整合和规划实施。书中存在对某个领域的细节描述,但只是为了论述整体结构范畴而提供的具体案例论据。因此,看完本书后,读者会对微服务有一个整体、深层次、体系化的认识。对于市面上大部分的微服务框架的资料或书籍,读者可以分门别类,根据自己具体要解决的细节问题,有的放矢地去寻找相关的资料和书籍来进行学习。

本书不是一本入门书籍,阅读本书需要具备一定的基础知识,否则,有些术语和解释还是比较难理解的。读者最好具有一定的计算机基础知识,例如,分布式、容器技术、软件工程、项目管理、软件架构知识等,这样才能有更大的收获。

如何使用本书

本书可以为不同层次的微服务使用者提供指导和帮助。

初次采用微服务框架的读者,可以从整体上了解整个微服务的大致轮廓和状况,然后选择自己比较感兴趣的内容进行阅读。初步了解微服务的总体概况后,针对自己的专业和实际工作要求,有的放矢地进行“专攻”。

中级层次的读者,也许有非常丰富的微服务应用经验,也许在应用某个微服务框架方面娴熟无比。在本书中,这些读者可以拓展自己的知识面、开阔自己的视野,在思维上进行整合并融会贯通,抽象出自己的概念和体系。中级层次的读者通过对本书的学习,可以在归纳和总结方面上一个新的台阶,达到更高的抽象层次,从工具使用者转变为方法的传播者。

高层次的读者,也许在微服务方面有深度的思考,也许在技术层面上不存在任何问题,那就在微服务整体规划上、在业务分析上、在实践落地上或者几个体系的完美整合上,进行一些深层次的提高。

同时,现阶段在微服务领域中还存在很多课题属于真空区,本书也给出了一些线索,期待着资深专家去深入研究和实践印证。

IT行业的领导,主要是指技术公司的CTO、信息化公司的CIO等,这些管理者由于已经不在一线工作,对于一线工作中出现的各种名词概念,可能在细节上还是有点模糊,而本书提纲挈领地阐述了微服务的体系架构,这就可以使IT行业的领导从一个新高度迅速地了解和掌握整个微服务的状况,然后在战略层面上做出适合公司或组织的微服务体系建设的决策。

本书结构

本书主要包括5个部分:第1部分微服务体系概述、第2部分微服务技术体系、第3部分微服务业务体系、第4部分微服务管理体系和第5部分微服务体系建设实践,共12章。

本书的讲解顺序:首先介绍了微服务体系的基础知识,使读者了解微服务体系不是一门技术,不是一个项目,也不是一种管理手段,而是一套体系,一个覆盖了技术层面、业务层面和管理层面的综合体;其次介绍了微服务的技术体系,这是技术话题,也是技术架构师或开发工程师比较喜欢的领域,主要讲述了微服务的实现技术、微服务的技术架构和可供选择的微服务技术框架;然后介绍了微服务的业务体系,主要从业务角度分析了微服务的架构,提出了业务微服务的概念并采用了一些架构来实现这一概念,包括领域驱动设计、六边形架构、DCI架构等;接着介绍了微服务的管理体系,分别从组织、研发流程、规范、度量等管理方面说明如何支持微服务;最后的内容是针对产品或平台进行微服务的规划、设计、实施和运维活动及实践等。

第1部分,微服务体系概述。这一部分是本书的纲要,包含两个章节,分别是第1章和第2章。

√ 第1章,微服务概述。首先从微服务的演化历史开始描述;其次简单介绍了微服务和微服务架构(MSA)的基本概念,以及MSA和SOA的比较;然后阐述了关于微服务的一些辩证关系;最后对微服务未来的方向做了一个探讨性的论述。

√ 第2章,微服务体系概况。首先介绍什么是体系化;其次是采用微服务所期望达到的愿景;然后从整体性、结构性、综合性和动态性等体系化角度分析并形成微服务的体系化结构;接着阐述了微服务体系与云原生架构的区别,以及微服务体系与API开放平台的关系;最后简述了微服务体系的生态系统。

第2部分,微服务技术体系。这一部分主要从技术角度来介绍微服务,包含3个章节,分别是第3~5章。

√ 第3章,微服务技术体系及实现技术。主要从4个方面来讲解,分别是微服务技术体系概述、微服务体系中的实现技术、集成平台自动化工具和基础设施环境。

√ 第4章,微服务技术架构体系。首先介绍微服务技术架构体系概念,微服务技术架构体系包括微服务运行时的服务架构、基础架构、后端架构等组成部分;其次分别介绍了不同架构的组成部分,重点介绍了微服务运行时的基础架构,分别是服务发现和注册组件、API网关组件、服务容错组件、服务监控告警日志组件、认证授权组件、统一配置管理组件等,详细说明了这些组件的内容、原理、构成及其相关的解决方案;最后简单分析了微服务技术架构的设计模式。

√ 第5章,微服务技术框架体系。微服务技术框架的数量可以用车载斗量来形容。为了更好地区分这些框架,首先对技术框架进行了分类,主要包括开发型微服务基础框架平台、运维型微服务基础框架平台、Serverless型微服务基础框架平台、微服务开发框架平台四大类型;然后把现阶段一些常用的技术框架分门别类地适配上去,其中重点介绍了Netflix微服务框架、Spring Cloud微服务框架、Kubernetes微服务框架、AWS Lambda无服务基础框架和Spring Boot开发框架。

第3部分,微服务业务体系。这一部分主要从业务角度来描述微服务,包含两个章节,分别是第6章和第7章。

√ 第6章,微服务业务体系概述。首先介绍微服务业务体系的概念、业务微服务的5个特征,以及微服务业务架构体系的定义;其次说明业务微服务的核心问题—边界和颗粒度大小;最后诠释业务微服务的内部构成、内部设计模式和外部关系集成。

√ 第7章,业务微服务分析设计方法论。首先从总体说明业务逻辑概念,描绘业务场景;然后分别从普通服务模式、领域驱动设计模式、六边形架构模式、Clean架构模式、DCI架构模式、CQRS架构模式对业务微服务架构进行分析和设计。

第4部分,微服务管理体系。这一部分主要从管理角度描述微服务,包含3个章节,分别是第8~10章。

√ 第8章,微服务管理体系概述。主要内容包括微服务应用的成熟度级别、微服务标准规范、微服务工具、微服务文化和度量指标、微服务的组织机构和开发/运维流程等。重点介绍了微服务应用的成熟度级别、微服务应用的“12要素”原则、微服务标准规范和微服务的8个主要度量指标。

√ 第9章,微服务应用的组织、人员和文化。主要讲述在微服务的影响下,对组织、人员和文化应进行适当调整。

√ 第10章,微服务的开发和运维流程。围绕着DevOps来描述基于微服务架构下的开发和运维流程的变化和支撑。

第5部分,微服务体系建设实践。这一部分的内容是主要针对产品或平台进行微服务改造的规划、设计、实施和运维活动及实践,包含两个章节,分别是第11章和第12章。

√ 第11章,传统架构迁徙到微服务架构。主要讲述传统架构迁徙到微服务架构的必要性、需要考虑的问题、策略和实施流程,包括现阶段大部分产品或平台所面临的问题和解决方案。

√ 第12章,新建系统的业务微服务全生命周期过程。主要讲述业务微服务全生命周期过程,包括产品或平台微服务化需要考虑的问题和建设步骤。

勘误和支持

由于笔者水平有限,书中的纰漏和错误在所难免,希望广大读者能给予批评和指正。笔者的联系方式是[email protected]

读者服务

轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。

√ 下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。

√ 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。

√ 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。

页面入口:http://www.broadview.com.cn/36872


目录

目录


第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