根据大多数定义,云原生是一种软件设计、实施和部署方法,旨在充分利用基于云的服务和交付模型。云原生[1]应用程序通常也使用分布式架构运行。这意味着应用程序功能被分解为多个服务,然后分布在托管环境中,而不是整合到单个服务器上。
有点令人困惑的是,云原生应用程序不一定在云中运行。可以根据云原生原则构建应用程序,并使用Kubernetes[2]等平台将其部署在本地,该平台模仿云环境的分布式、基于服务的交付模型。
尽管如此,大多数云原生应用程序都在云中运行。任何按照云原生原则设计的应用程序都可以在云中运行。
云原生是一个高级概念,而不是特定类型的应用程序架构、设计或交付过程。因此,有多种方法可以创建云原生软件以及可以帮助实现这一目标的各种工具。
然而,一般来说,云原生应用程序共享某些核心功能:
您可以总结以上所有内容,即云原生应用程序本质上是使用现代工具和方法设计和构建的应用程序。在很多方面,“云原生软件开发”简直成了“现代软件开发[5]”的简写。这两个术语都有些模棱两可,但这就是重点:正如有很多方法可以使软件设计和开发操作现代化一样,也有很多方法可以接近云原生。
与传统的应用程序设计和开发策略相比,云原生提供了多种优势。这意味着那些以单体架构、本地部署和单节点托管环境等技术为中心的优势:
虽然云原生是加速应用程序开发、最大化效率和提高可靠性的好方法,但它带来了一些挑战。最常见的包括:
如今,云原生开发在各种类型和规模的组织中得到广泛使用。考虑以下云原生示例和用例:
拥有设计为在本地运行的遗留应用程序的企业可能会采用云原生作为对这些应用程序进行全面检查和现代化的手段。通常,这项工作需要重构,这意味着重新设计应用程序,使其可以在分布式环境中运行并充分利用基于服务的交付模型。
寻求利用比虚拟机更高效且性能更好的容器的组织可能会转向云原生来实现这一点。虽然您不必使用容器来实现云原生,但容器很适合基于微服务、面向服务的开发和部署技术。
拥抱云原生是开始向云迁移的好方法,或者是对现有云投资的双重投资。从技术上讲,您的应用程序不必是云原生的就可以在云中运行;例如,您可以在基于云的 VM 上部署单体应用程序以在云中运行它。但是为了充分利用云,并在云环境中实现成本和性能之间的最佳平衡,您需要您的应用程序是云原生的。
由于云原生架构和开发策略倾向于更有效地利用资源,因此云原生是寻求降低 IT 运营成本的企业的常见策略。虽然采用云原生并不能自动保证成本效率,但精心设计的云原生应用程序的运行和更新成本将低于传统应用程序。
如上所述,云原生应用程序往往更可靠,因为即使主机基础设施的一部分发生故障,它们仍然可用。出于这个原因,寻求使他们的应用程序更可靠,进而改善最终用户体验的组织应该考虑云原生。
通过允许组织充分利用分布式、基于服务的应用程序托管环境,云原生可以为企业、开发人员和用户等带来更好的结果。并非每个应用程序都需要是云原生的,但总的来说,云原生是构建新应用程序或大修旧应用程序时要走的路。
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack