1.3 构建微服务架构的系统方法

构建微服务架构所需要做的不仅仅是构建服务本身。一个微服务系统的构建过程代表的是一种组织级别的活动,包括组织的人员架构、研发过程、技术体系和协作文化等多个因素。同样,微服务的运行时环境、错误处理机制和运维实践也是我们需要考虑的内容。本节中我们将针对如何构建微服务架构给出一套完整的系统方法,并围绕这个系统方法引出本书后续章节的内容大纲。

图1-10给出了构建微服务架构的系统方法。这套系统方法有助于把所需要做的工作进行分解并形成切入点。我们可以看到整个系统方法包括服务模型、实现技术、基础设施和研发过程等四个方面内容。

图1-10 微服务架构构建模型

1.3.1 服务模型

服务建模是实现微服务架构的第一步,因为微服务架构与SOA、ESB等现有技术体系的本质区别就是其服务的粒度和服务本身的面向业务和组件化特性。针对服务建模,我们首先需要明确服务的类别以及服务与业务之间的关系,从而明确服务的概念模型并给出服务的统一表现形式。同时,我们也需要借助于诸如领域驱动设计中的界限上下文和领域事件等技术合理划分微服务的边界,并剥离微服务与数据之间的耦合。服务模型建立最主要的工作是服务的拆分和集成。服务拆分需要考虑拆分的维度、策略并管理服务之间的依赖关系、数据以及边界。而服务的集成则需要考虑在轻量级服务通信的要求下所应当采用的技术实现方式。本书第2章和第3章将对服务建模做全面介绍。

1.3.2 实现技术

微服务的实现技术是构建微服务架构的重点。微服务架构具有分布式架构的基本特征,所以网络通信、事件驱动、服务路由、负载均衡、配置管理等因素同样是实现微服务架构的基础。另一方面,我们也需要考虑微服务架构实现上的一些关键要素,包括服务治理、数据一致性和服务可靠性等内容。最后,通过技术选型,我们将明确构建微服务的具体实现工具和框架。本书第4、5、6章将对如何实现微服务架构给出了系统的分析以及相应的技术实现方案。

1.3.3 基础设施

本书第7章将介绍微服务架构的管理体系,包括服务的测试、服务的部署、服务的监控和服务安全性等内容。本书的主要目标在于阐述微服务的设计和架构,但这些基础设施仍然是微服务架构整张蓝图的重要组成部分。

1.3.4 研发过程

微服务架构构建过程中所涉及的关于业务结构、组织架构和研发文化等方面的内容,我们放在本书第8章中介绍。这些内容构成了开发团队的整体研发过程,讨论组织架构和软件开发的关系、构建跨职能团队、强调引入变化和敏捷思想有助于更好的落实微服务架构。

基于以上所阐述的关于微服务架构构建的系统方法,我们还将讨论如何使用微服务架构进行遗留系统改造的方法和实践。通过梳理现有架构的改造技术,明确向微服务架构的转型方法,我们尝试并探寻微服务实施的最佳实践。向微服务架构转型是目前很多团队所面临的一个选择,我们也将在本书第8章中阐述相应的转型方法,希望给这些团队提供有价值的参考。