云原生是一种软件设计、实施和部署方法,旨在充分利用基于云的服务和交付模型。云原生[1]应用程序通常也使用分布式架构运行。这意味着应用程序功能被分解为多个服务,然后分布在托管环境中,而不是整合到单个服务器上。
有点令人困惑的是,云原生应用程序不一定在云中运行。可以根据云原生原则构建应用程序,并使用Kubernetes[2]等平台将其部署在本地,该平台模仿云环境的分布式、基于服务的交付模型。
尽管如此,大多数云原生应用程序都在云中运行。任何按照云原生原则设计的应用程序都可以在云中运行。
云原生是如何工作的?
云原生是一个高级概念,而不是特定类型的应用程序架构、设计或交付过程。因此,有多种方法可以创建云原生软件以及可以帮助实现这一目标的各种工具。
然而,一般来说,云原生应用程序共享某些核心功能:
它们是使用微服务[3]架构构建的。这意味着应用程序功能分布在许多微服务中,这些微服务相互交互以运行完整的应用程序。
它们广泛依赖 API 将内部组件相互集成,以及与第三方服务进行交互。
它们使用DevOps[4]等软件开发策略迭代和持续更新。
它们部署在分布式环境中,例如服务器集群,而不是单个服务器上。
您可以总结以上所有内容,即云原生应用程序本质上是使用现代工具和方法设计和构建的应用程序。在很多方面,“云原生软件开发”简直成了“现代软件开发[5]”的简写。这两个术语都有些模棱两可,但这就是重点:正如有很多方法可以使软件设计和开发操作现代化一样,也有很多方法可以接近云原生。
云原生有什么好处?
与传统的应用程序设计和开发策略相比,云原生提供了多种优势。这意味着那些以单体