1.1.2 微服务架构的实施方法
构建微服务架构所需要做的不仅仅是构建服务本身。一个微服务系统的构建过程代表的是一种组织级别的活动,包括组织的人员架构、研发过程、技术体系和协作文化等多个因素。同样,微服务的运行时环境、错误处理机制和运维实践也是我们需要考虑的内容。本节中我们将针对如何构建微服务架构给出一套完整的系统方法,包括服务模型、实现技术、基础设施和研发过程等四个方面。
1.服务模型
服务建模是实现微服务架构的第一步,因为微服务架构与SOA(面向服务架构)、ESB(企业服务总线)等现有技术体系的本质区别就是其服务的粒度以及服务本身的面向业务和组件化特性。针对服务建模,我们首先需要明确服务的类别以及服务与业务之间的关系,从而明确服务的概念模型并给出服务的统一表现形式。同时,我们也需要借助诸如领域驱动设计(Domain Driven Design, DDD)中的限界上下文(Bounded Context)和领域事件(Domain Event)等技术合理划分微服务的边界,并剥离微服务与数据之间的耦合。建立服务模型最主要的工作是服务的拆分和集成。服务的拆分需要考虑拆分的维度、策略并管理服务之间的依赖关系、数据以及边界。而服务的集成则需要考虑采用合理的技术实现方式来满足轻量级服务通信的要求。关于领域驱动设计的核心概念和应用方式可以参考笔者所著的《DDD工程实战》一书。
2.实现技术
微服务的实现技术是构建微服务架构的重点。微服务架构具有分布式架构的基本特征,所以网络通信、事件驱动、服务路由、负载均衡、配置管理等因素同样是实现微服务架构的基础。另外,我们也需要考虑微服务架构实现上的一些关键要素,包括服务治理、数据一致性和服务可靠性等内容。关于技术体系的介绍是本书的重点,从第2章开始,我们将通过一个完整的案例系统全面介绍基于Spring Cloud Alibaba框架的技术实现过程。
3.基础设施
对于基础设施而言,包括服务的测试、服务的部署、服务的监控和服务安全性等都是需要开发人员考虑的内容。本书的主要目标在于阐述微服务的技术组件及其应用方式,但这些基础设施仍然是微服务架构整体蓝图的重要组成部分。
4.研发过程
微服务架构的构建过程中涉及业务结构、组织架构和研发文化等方面的内容,这些内容构成了开发团队的整体研发过程。讨论组织架构和软件开发的关系、构建跨职能团队、强调引入变化和敏捷思想有助于更好地落实微服务架构。
基于以上阐述的微服务架构构建的系统方法,开发人员可以通过掌握本书所介绍的各项微服务实现技术体系以及梳理现有架构的改造点,明确向微服务架构的转型方法,尝试并探寻微服务实施的最佳实践。