随着云计算的发展和分布式框架的普及,应用上云已经是不可逆转的趋势,传统软件应用开发无法满足现代化应用上云需要,于是云原生应运而生。那么,什么是云原生?与传统软件的区别在哪?本文将具体介绍。
![云原生 云原生](//ziboxinyan.com/FileUpload/ueditor_s/upload/2022-7/12/63793226331740.jpg)
1.云原生
云原生(Cloud+Native)的概念在2013年被Matt
Stine第一次提出,云原生即应用在架构设计之初,便以部署在云上为目标,并且充分考虑云的原生特性,去进行开发及后续运维,而不是将传统应用简单迁移上云,因此称为“云原生”。云原生是一系列思想的集合,包括12因素、微服务、持续交付、自动化运维、容器、康威定律等,并不是指具体的某一项技术。CNCF(Cloud
Native Computing
Foundation,云原生计算基金会)将云原生定义为一系列技术的集合,包括容器、微服务、服务网格、不可变基础设施与声明式API。目前业界一般认为的云原生技术包括容器、容器编排、微服务、无服务、DevOps和智能运维技术。
2.云原生与传统软件的区别
下面介绍云原生与本地部署应用的区别之处:
(1)编程语言
本地部署的应用程序,如C/C++、C#或其他VisualStudio语言(如果部署在WindowsServer平台上)WindowsServer平台上)和企业Java。Cobol可用于大型机器。云本地应用程序更有可能以网络为中心编写语言,这意味着使用HTML、CSS、Java、JavaScript、.Net、Go、Node.js、PHP、Python和Ruby。
(2)可以更新
云原生应用程序始终是最新的,云原生应用程序始终是可用的。本地部署应用需要更新,通常由供应商根据订阅提供,安装更新时需要停机。
(3)弹性
云原生应用程序利用云在峰值期间增加的资源的弹性。如果您经常使用基于云的电子商务应用程序,您可以将其设置为使用额外的计算资源,直到峰值消退,然后关闭这些资源。云原生应用可根据需要调整资源和规模。本地部署的应用程序不能动态扩展。
(4)多租户
云原生应用程序在虚拟环境中工作,与其他应用程序共享资源没有问题。许多本地部署的应用程序要么在虚拟环境中不能正常工作,要么根本不工作,必须是非虚拟环境。
(5)连接资源
本地部署应用程序与网络资源的连接相当严格,如网络、安全、权限和存储。很多资源需要硬编码,如果移动或更改任何内容,都会中断。
网络和存储在云中完全不同。当你听到重新平台化这个词时,通常是为了适应网络、存储甚至数据库技术的变化,以便允许应用程序在云中运行。
(6)自动化
大多数云计算都是自动化的,包括应用程序管理。云原生交付的好处,尤其是速度和敏捷性,取决于可靠性、经过验证和审核的已知良好流程的基础。工程师应可重复性、自助性、敏捷性、可扩展性、审计和控制,工程师应考虑自动化不止一次。本地部署应用程序必须手动管理。
(7)停止时间
云中的冗余大于本地部署,因此如果云供应商中断,另一个冗余区域可以消除中断。
本地部署的应用程序可能已经准备好了故障转移,但是如果服务器出现故障,应用程序可能会崩溃。
(8)无状态
云的松耦合特性意味着应用程序与基础设施无关,这意味着它们是无状态的。云原生应用程序将其状态存储在数据库或其他外部实体中,因此实例可以来去,应用程序仍然可以跟踪应用程序在工作单元中的位置。它是松耦合的本质。它不依赖于基础设施允许和应用程序以高度分布的方式运行,并且仍然保持其状态独立于底层基础设施的弹性。
大多数本地部署的应用程序都处于状态,这意味着它们将在运行代码的基础设施上存储应用程序的状态。因此,添加服务器资源可能会破坏应用程序。
(9)模块化设计
本地部署应用往往设计单一。他们肯定会把一些工作卸载到仓库,但最终它是一个包含大量子程序的大应用。云本地应用程序更加模块化,许多功能被分解为微服务。它允许在不需要的情况下关闭它们,并将更新推广到该模块,而非整个应用程序。
以上梳理了云原生的定义及其与传统软件的区别,希望对你有所帮助,如果你想了解更多相关内容,敬请关注三个皮匠报告的行业知识栏目。
本文由@2200 发布于三个皮匠报告网站,未经授权禁止转载。
推荐阅读:
云备份是什么意思?优势有哪些?案例介绍
什么是专有云?和私有云谁好?
什么是云ERP?与传统ERP的区别在哪?
企业上云什么意思?概念及企业上云国家政策汇总梳理