AIDevOps:智能微服务开发、运维原理与实践
上QQ阅读APP看书,第一时间看更新

1.1.1 什么是微服务

从架构上来讲,软件经历了单体架构、分布式架构、面向服务架构以及当前的微服务架构。单体架构是指软件中所有组件的运行都不是独立的。比如一个系统,它有UI模块以及对应的UI组件,同时也有API模块以及对应的底层框架,还有适配器模块对应的文件管理系统,它们形成了一个有机的整体,运行时缺一不可,部署的时候也必须是作为一个整体进行部署。微服务架构(MicroServices-based Architecture,MSA)是面向服务架构(Service-Oriented Architecture,SOA)的新发展。传统的面向服务架构是基于SOAP的服务接口对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。相比之下,微服务架构是SOA架构的升华,微服务架构更加强调将单个业务系统拆分为多个可独立开发、设计、运行的细粒度模块,并基于这些模块交互组合成为完整系统。微服务架构的主要特征包括细粒度模块和接口、轻量化通信协议、CI/CD开发模式、容器化部署方式,具体如下:

细粒度模块和接口:微服务架构采用细粒度的接口和模块分解,强调把复杂业务系统拆分为功能单一的模块并加以实现。

轻量化通信协议:对于服务实例之间的一对一通信,微服务架构摒弃了复杂的WS-*协议,取而代之的是基于HTTP的REST通信协议;对于多对多的异步通信,则采用基于高级消息队列协议(Advanced Message Queuing Protocol,AMQP)的事件消息通信协议来完成(例如,RabbitMQ是AMQP的一个实现)。

CI/CD(持续集成和持续交付)开发模式:微服务架构通常采用持续集成、持续交付的软件开发模式来实现,对应用系统功能的局部修改,只涉及少量服务的重新构造和部署。

容器化部署方式:微服务架构通常是云原生(Cloud Native)和无服务器(Serverless)软件系统的标准架构,该架构通常依靠轻量化的虚拟容器来实现微服务的部署和运维。