本书从搭建单体架构遇到的瓶颈开始,通过真实案例介绍从单体架构转型为微服务架构及中台架构过程中遇到的困难、问题与具体解决方法。全书共计9章,前3章以案例和原理为基础,介绍微服务的优劣势及其使用场景;第4~6章描述如何基于单体架构搭建和优化微服务架构;第7~8章介绍如何掌握测试、部署交付流程等软件工程中的各个关键环节和核心要素;第9章讲解在多元化业务场景下如何构建中台架构,以实现通用能力的下沉,从而形成共享服务,达到资源利用率的最大化。
本书适合技术管理者、架构师和有一定开发基础的技术人员阅读,尤其适合已进入或即将进入微服务架构和中台架构领域的相关人员阅读。希望本书能够为读者提供一些技术路线上的启发和指引,帮助其少走弯路。
详细解密从单体到微服务再到中台的架构演进之路,有实际案例支撑,有详尽原理及技术讲解,超实用
潘志伟
某科技公司技术总监,阿里云MVP、QCon演讲嘉宾,拥有十多年的软件架构设计经验,擅长分布式架构与微服务架构设计及中台规划,目前带领研发团队承担系统的分析、架构设计、实施、演进,以及团队管理和培训等工作,有独到的团队建设和管理经验。
——————本书概要——————
如今,各行业都在步入数字化经济时代,并通过数字化技术与实体经济深度融合,以现代信息网络为重要载体,不断提高传统产业数字化、智能化的水平,随之而来的是注册用户量、用户数据等信息也处于井喷式增长趋势,企业信息系统架构也由单体架构纷纷向分布式架构转型。但是,大部分企业架构师缺乏分布式架构的设计能力,其潜意识中认为引入目前流行的微服务开发框架就能完成分布式架构的设计。企业架构师对引入分布式架构给整个研发体系带来的挑战预估不足,以致产品在开发、测试、上线阶段出现前所未有的种种问题,其结果是研发效率和产品质量不升反降,企业的数字化转型之路异常艰辛。
——————本书结构——————
第1章以企业一次失败的从单体架构转型为分布式架构事件为蓝本,以真实案例的方式介绍在单体应用遇到性能瓶颈后通过快速优化升级来暂时解决当前问题,以及匆忙转型微服务架构后最终失败的原因。
第2章首先通过复盘分析架构转型失败的原因,明确企业在转型为微服务架构前需要先在技术及组织架构上做出改变;其次在服务拆分环节通过介绍多个实用方法来说明如何正确地拆分服务;最后介绍如何利用工具来保障拆分后每个工程结构的一致性,且命名符合规范。
第3章介绍服务治理的概念,并结合常用的RPC框架,以Dubbo为例,从原理开始,到核心代码分析,最后结合实际案例介绍在项目中如何使用该框架。
第4章、第5章重点介绍如何将单体应用一步一步地转型为微服务架构。例如,如何将单体项目平滑迁移到微服务架构并实现流量无损上线,在架构升级过程中如何使用多级缓存、消息队列、并行调用机制、熔断与降级等技术手段来保障接口的高并发和低延迟特性。
第6章介绍微服务的统一入口API网关,从零开始介绍如何搭建高性能API网关。API网关在微服务架构中起着至关重要的作用,本章介绍如何采用异步模式来提高API网关的吞吐量,并集成熔断与降级功能来实现API资源隔离及接口的高可用。
第7章介绍对微服务架构下的企业应用该如何高效地测试。通过讲述测试模型的迭代过程来引出契约测试平台的需求,并介绍如何搭建满足要求的契约测试平台。为了提高系统的稳定性,简单的业务功能测试肯定不能满足要求。因此,在最后的测试环节又引入了混沌实验来模拟各种异常场景。
第8章介绍比较容易被忽视的系统容量预估和服务上线的流程。在面向终端用户的互联网产品上线后,通常应尽可能地避免产生线上问题。本章介绍如何在产品发布环节引入灰度发布机制来提前发现和解决问题,在容量预估环节采用了目前比较成熟的全链路压测方案来预估线上系统的实际处理能力。
第9章介绍企业在面临多业务线同时运营时,如何把业务线中共性、可复用的能力下沉,形成通用能力来给外部系统调用,减少重复造轮子的工作。本章以实际案例为出发点,讲解如何自顶向下地创建业务中台,包括如何识别共性需求、如何创建中台团队等。万事有利必有弊,中台的确对具备多业务线的企业有利,但是弊端也很明显。本章最后讲解了企业在推行中台建设过程中存在的弊端。
希望读者能通过本书快速地对微服务架构所涉及的方方面面有一个基本认识,理解其优点和不足,并进一步试用和评估。
——————本书读者对象——————
本书适合技术管理者、架构师和有一定开发基础的技术人员阅读,尤其适合已进入或即将进入微服务架构和中台架构领域的相关人员阅读。希望本书能够为读者提供一些技术路线上的启发和指引,帮助其少走弯路。
——————致 谢——————
本书的写作持续了两年多,基本上是利用平时的晚间,以及包括周末在内的节假日进行的。在此感谢我的家人,是他们所给予的包容和全力支持让我得以专心写作。
感谢博文视点的虾米编辑(张国霞)、李云静编辑和相关工作人员为本书的出版所付出的努力。