近几年随着微服务的普及,Docker、Kubernetes等容器化技术的流行,开发及部署方式都发生了巨大的变化,那么问题来了,程序员们该如何调整才能让自己立于技术的潮流当中呢?
本文将介绍微服务架构的发展,后续章节将探讨如何从零开始搭建微服务并部署到容器中。
微服务:一种新的架构设计模型,原本独立的单体系统被拆分成多个服务,每一个服务都运行在各自独立的服务进程中,服务之间基于RESTful API进行通信协作。被拆分的每一个小型服务都围绕着系统中一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制。因为有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
图一
微服务的发展大体经历了五个过程(图一)。早期的架构有优点,缺点也很明显。
优点:
缺点:
图二
鉴于以上单体架构的明显缺点,微服务吸收了各种架构的优点(图二),得以迅速普及,各厂都已开始(已经)将固有的系统改造为微服务的架构,大厂也都有自己的一套微服务的架构,本文及后续的章节内容是基于Spring Cloud的官方微服务架构进行的案例探讨。
图三
单体架构在拆分到微服务的过程中需要遵循的几个原则(图三)。
图四
微服务一般分为几大组件(图四):
图五
微服务搭建完成到部署至容器端的过程(图五)。
本章节主要讨论了微服务的发展历程,以及微服务容器化的初窥,后续章节将探讨微服务的搭建及如何部署到容器中。