我正在为我们的客户设计软件架构,我了解支持云和云原生架构的术语。我已经阅读了很多关于云原生的文章,但当我与其他技术人员谈论云原生架构时,我感到困惑。因为大多数人的印象是云原生架构是在 Kubernetes 上的容器中运行的架构。
我的问题是,如果我正在设计云原生架构并将其部署在 AWS 云中,我是否可以在我的架构中使用除 docker 容器之外的 AWS 托管服务,或者云原生架构完全独立于云服务?
答案 0 :(得分:2)
在这里很难就定义达成共识,但根据我自己的经验,“云原生”一词肯定越来越特定于容器和微服务,而 Kubernetes 作为事实上的海报男孩。 CNCF 中的定义可用 here。
基线似乎是基础设施之上的抽象,侧重于可移植性和可再现性,尽可能避免锁定。也就是说,来自特定提供商的托管服务非常成功地抽象了基础设施的责任,因此可能是需要的。
在这种情况下,您可能希望使用中立的方法(例如 Terraform)声明您的基础架构配置,从而减少与可移植性相关的一些固有摩擦,同时仍然能够利用托管服务。
答案 1 :(得分:1)
通用术语 cloud-native
是指完全部署在公共云中并使用特定云提供商提供的服务(基础架构管理、消息传递等)的应用程序
当然,这与经典模型相反,在经典模型中,您必须管理基础架构并处理配置、可用性和许多其他事情。
混淆可能是因为 Cloud Native Computing Foundation 是一个开源组织,致力于促进云采用并管理 Kubernetes、Prometheus 和其他非常成功的开源项目的开发。
因此,人们可能会将 cloud-native
应用称为使用 CNCF 维护的所有(或多个)项目(包括 Kubernetes)的应用。
为避免混淆,您可以使用术语 cloud-based
来指代完全部署在云中且不一定与 CNCF 项目相关联的应用。