随着数字化转型的推进,越来越多的企业开始尝试基于微服务框架构建和重构自己的系统,微服务实施不仅仅是微服务框架的技术选型和服务拆分,它涉及到方方面面,是一个系统化的体系工程。
微服务架构不仅延续了分布式系统与SOA的特征,也汲取了DevOps、持续集成、持续交付等工程实践的成功经验,并正在借着云计算和容器化的春风开始其驰骋之旅。但是,微服务的落地并不像其概念描述的那样举重若轻,它不仅包括架构解耦,还涉及开发测试、部署运维、工程实践、团队合作与康威定律等多方面的因素,这些因素相辅相成,共同影响着如何高质量、快速地交付业务价值。
本文从架构演进、微服务拆分、接口契约测试,流水线构建到微服务实战,涵盖了微服务实施过程中的重要环节,是难得的系统化、全面介绍微服务的作品,非常值得大家认真研读。
这份【微服务架构与实践第2版】共有515页,一共分为3个部分,分别是基础篇、策略篇和实战篇。,需要完整版的朋友可以 点击这里即可获取到文章中的文档,资料!
基础篇为第1章,主要介绍微服务架构相关的基础知识。该章首先介绍软件架构的演进史;其次阐述了微服务出现的背景、定义、特征及落地时面临的挑战;同时分析了微服务与SOA、Serverless 的关系;最后介绍了微服务领域Service Mesh的兴起。阅读的重点为理解微服务的本质特征、挑战并了解Service Mesh。
策略篇包含第2章至第6章,主要介绍了微服务生态系统、微服务关键技术、微服务实施参考模型以及基于参考模型的实践,并在本篇最后的部分阐述了遗留系统改造的策略与案例。
第⒉章首先介绍了微服务生态系统,并围绕生态系统阐述微服务实现中涉及的接入层、业务层、支撑层及基础设施。同时,也强调了开发框架、交付流水线与工程实践的重要性。阅读的重点是理解微服务生态系统的核心,系统化地思考微服务架构的演进过程(不仅仅是服务拆分),并在演进中持续提升团队能力。
第3章介绍了实施微服务的核心技术点,包括服务设计、服务治理以及服务运维。在服务设计部分,探讨了服务划分时的通用原则与策略。同时,介绍了常用的服务设计模式,包括链式模式、聚合器模式、物化视图模式及CQRS模式等。另外,关于数据的一致性部分,也梳理了目前常用的分布式事务解决方案,2PC、3PC、TCC和Sagas.
在服务治理部分,介绍了服务的注册发现、负载均衡、配置管理以及容错设计。这些机制对于保障微服务系统的可用性、性能,防止服务雪崩等,有着非常重要的作用。
在服务运维部分,介绍了监控告警、调用链跟踪以及日志聚合。监控是获取反馈的基础,完善的监控机制能有效地提高运维效率。在调用链部分介绍了微服务分布式系统场景下对请求的追踪。在日志聚合部分介绍了如何汇聚日志,并通过索引等机制诊断问题。
第4章是策略篇的核心内容,本章从三个方向(团队与文化、架构与技术、工程与实践)、八个维度(全功能团队、敏捷实践、服务设计与实现、服务支撑组件、持续集成、测试管理、运维管理、部署管理)、五个阶段(初始阶段、已管理阶段、已定义阶段、量化管理阶段、持续优化阶段)介绍了什么是微服务参考模型,以及如何使用微服务参考模型。同时,通过定义结果类指标(用于衡量整体的优化效果,包括端到端的交付周期以及部署、运维的效率过程类指标和过程类指标(用于衡量微服务实施过程中局部的优化效果,包括开发、测试、持续集成、部署等各个局部环节的特定指标)来衡量团队改进效果,以逐渐提升团队实施微服务的成熟度。
第5章,本章基于参考模型的各个维度、笔者以往的经验以及业界的最佳实践,详细地介绍了参考模型每个维度下的实践。虽然在案例中使用了具体的技术和平台,但是相关的原则,如基础设施即代码、部署的原则等,和具体的技术、平台关系并不大,读者可以根据自己的情况,应用相同的原则来提升在各个维度上的微服务成熟度。
此外,在日常的工作中,无论是个人还是团队,都应该注意积累实践经验并在团队间分享。微服务的实施需要在架构、工程、组织能力上有质的提升,但是“质变”也是需要“量变”的积累才能发生的。
第6章本章介绍了遗留系统的特点、改造策略和场景,并结合一个实战案例进行了讲解。目的是帮助读者从以下方面掌握对遗留系统的微服务改造方法:
另外,对于遗留系统的改造需求,本章将其细分为三种场景,如新业务数据独立、新业务数据依赖以及现有业务服务化。通过对这些场景的分析,能有效地指导读者进行微服务的演进。
实战篇包含第7章至第13章,在前两部分的基础上,基于开源的微服务框架ServiceComb以及华为云ServiceStage设计和实现了SockShop系统,同时基于ServiceStage提供的流水线,将SockShop系统以持续交付的方式部署在公有云上。另外,使用ServiceStage提供的运维服务,对SockShop系统进行监控、告警和日志聚合。
第7章介绍了ServiceComb的特性、原理,注册中心的设计以及数据一致性解决方案Saga的设计。读者既可以学习到如何快速开始实施ServiceComb项目,也能深层次地了解其背后的设计原理与细节。
第8章本章介绍了华为云ServiceStage包含的主要服务以及其主要特性。其中CCE云容器引擎服务提供了服务运行的容器集群管理能力,CSE微服务引擎提供了微服务开发框架以及微服务治理能力,AOS编排服务提供了通过模板编排云上资源和应用系统的能力,APM应用性能管理服务提供了应用性能监控、日志聚合和告警能力,SWR则提供了软件仓库的能力。围绕ServiceStage提供的这些能力,用户可以快速且高效地开发、部署和运维服务。
第9章本章介绍了SockShop系统的主要需求以及SockWorks团队如何采用DDD的方式进行服务的划分及设计,并梳理了SockShop系统的架构图以及技术选型。此外,考虑到SockShop系统的部署模型,以及开发、测试、持续集成的需求。运维团队基于ServiceStage创建了这些环境。
第10章在本章中,SockWorks团队使用Java Chassis开发了第一个Catalogue服务,并基于微服务参考模型的相关实践,完成了服务的测试、打包以及发布。同时,利用ServiceStage的流水线功能,搭建了提交、构建、验证和发布的流水线,建立了顺畅的端到端的交付机制。经过如上的过程后,SockWorks团队的IT部门通过对结果类指标和过程类指标的收集,总结了第一阶段的收益。从结果类指标来看,周期时间大幅缩短,部署频率有所提高,每个迭代都可以完成新特性的部署。
第11章本章介绍了SockWorks的开发团队使用Java Chassis、Go Chassis、Nodejs等等框架实现SockShop系统的过程。在服务的实现过程中,限于篇幅关系,这里主要探讨了服务的接口定义以及模型设计。除此之外,本章还介绍了如何通过Mesher,使基于Nodejs 的用户界面服务(FrontEnd Service)接入注册中心,以及如何通过Pact测试来降低服务间集成测试的成本。
第12章介绍了SockShop系统的服务编排。通过使用定义好的TOSCA模版上,基于ServiceStage的编排服务,快速地进行SockShop系统的自动化部署。
第13章在本节中介绍了SockWorks的运维团队在SockShop系统上线后,如何利用ServiceStage提供的运维和服务治理来满足日常运维中对于监控、告警、微服务治理的需求。每个IT组织使用的基础设施平台可能不尽相同,但是服务监控、告警、中心化的日志服务、服务治理,应该是所有基础设施平台应当具备的能力。如果平台没有提供这样的能力,就需要通过开源或者商业的解决方案,来获得这种能力。
这份【微服务架构与实践第2版】共有515页,需要完整版的朋友可以 点击这里即可获取到文章中的文档,资料!
本文适合学习的读者
本文不仅适合架构师、开发人员以及技术管理者阅读,也适合正在尝试向微服务架构迁移的团队或者个人。
希望本文能够在微服务落地的工作中对读者有所帮助。
也希望大家能够通过本文提升自己的技术深度和广度,好适应未来社会的发展,不断地走出一条属于自己的人生道路!