2024年5月25日发(作者:)

什么是云原生应用程序?

我们通常都会在设想什么是一个Cloud Native Appliction,这也是我们为什么不停地

去测试、学习各种云服务,学习、使用docker的原因。本文介绍的云原生应用的出发点,

可能和我们的有着异曲同工的地方,可能在某些方面说的还是比较抽象,但是通过图片,

我们还是可以清晰明白在非云应用往云生应用的发展框架是什么,会带来什么样的好处等

等,以及如何处理好不同域间容量、数据、状态的关系。

最近有试着描述“现代应用程序”或“现代工作负载”。

Twelve-Factor App就是一个很好的尝试。

这是一个很好的方法来描述这样的工作量但我认为这些概念需要降低一个数量级使普

通人正常理解他们。

这就是我想要在这个博文上做的。我们将省略一些重要的细节通过这样做但没关系。

让我直接点:在(我的意思是非常)高水平云本机应用程序是一个应用程序,该应用程序

有一个明确的“基础设施”和“数据”之间的分离。至少在我看来,设计一个云本机应用程

序没有画这个明确的分离。

我用数据作为一个非常松散的术语。你可能正在考虑一个“基于数据”(哪个都行)但

这真的应该包括“配置”。

另一种方法来描述这种分离可能是“容量”和“状态”。不仅仅是这样。

让我们立刻开始用一幅画来描述这一概念:

请注意这两个域的特征。

基础设施容量没有你需要或想要保护的自己的状态(至少在本地存储中)。

这是完全无状态,你可以通过自动化轻松地(反复)创建它,因此,它不需要有弹性。

另一方面承载了你的持久性的域(在每一个可能的形状和形式)具有完全不同的特征,因

为它需要可靠的、高可用性、耐用和这一切。

此时,您可能想知道这是如何不同与传统模式相比在3层web应用程序。在我看来,

云本机应用程序在隔离传统“应用层”与传统的“数据层”将envelope推到极端。

基础设施容量域

这就是虚拟机(又名实例)实时托管原生云应用的代码。他们完全是无状态的,他们是

一群vm所有相同配置(基于角色)和整个生命周期的自动化。在这样一个环境中传统IT概