云原生应用开发实战:基于.NET开发框架及Kubernetes容器编排技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 从微服务到云原生

通常我们提到微服务就会想到云原生,事实上,微服务与云原生是两个不同维度的概念。

云原生更侧重于应用程序的运行环境,它是以Kubernetes和容器技术为基础打造的一整套工具,用于开发、测试、运行应用程序,直到部署到云环境。

微服务描述的是应用程序的软件架构,微服务是基于分布式计算的架构模式。应用程序即使不采用微服务架构也可以是云原生的,如果是单体式应用,云原生就难以发挥优势。另外微服务的程序也可以不是云原生的。

虽然它们是两种不同的事物,但云原生和微服务是天生的良配,相得益彰,相辅相成。而且很多云原生的工具原来就是针对微服务架构设计的。可以说现代应用程序的趋势就是:“微服务+云原生”。

对于1.1节的单体应用,在运用云原生技术之后,重新设计的系统如图1-2所示。

图1-2 云原生设计的应用系统

图中左边的矩形框表示客户端应用,右边的矩形框是部署在服务器端的服务,这些服务基于容器技术进行部署和管理。

左边的客户端分为三种类型:移动应用,基于Angular技术的单页Web应用和传统的Web应用。

右边服务器端通过多个基于容器技术的独立微服务来实现,它们之间通过事件总线彼此协作。这些服务以API的方式对外暴露其功能,中间的API网关将这些服务进行组合,对外显示为针对不同客户端的API服务。