很多人都会问“到底什么是云原生?”、“云原生和传统软件有什么区别?”。
顾名思义,云原生应用即专门为在云平台部署和运行而设计的应用。云原生能够以可扩展、可复制的方式最大化地利用云的能力,发挥云的价值的最佳路径。
也可以说,云原生是一种设计思想,以这种思想为指导设计出来的软件。首先,天然的就“生在云上,长在云上”;其次,能够最大地发挥云的能力,发挥出云的最大价值。
云原生是为“云”量身定做的。我们先来了解一下云的发展历程。
2019年度主流的云厂商公布营收情况:
亚马逊-AWS: 350.26亿美元
微软-Azure:133.7亿美元
谷歌云:89.18亿美元
阿里云: 355.25亿元 (约50.75亿美元)
腾讯云:170亿元
我们先来了解一下“云”的概念。云一般指的是一个提供资源的平台,云计算的本质是按需分配资源和弹性计算。
传统的软件开发模式,让我们用云计算平台和物理机一样的使用,那么就没有将云平台的能力利用充分!这也是在浪费资源。我们的云原生就是来解决这一类的问题,将我们的应用发挥到极致。
必须让应用能够利用云平台实现资源的按需分配和弹性伸缩,是云原生应用被重点关注的地方。它要求云原生应用具备可用性和伸缩性,以及自动化部署和管理能力,可随处运行,并且能够通过持续集成、持续交付提升研发、测试与发布的效率。
云原生应用并未完全颠覆传统的应用,采用云原生的设计模式可以优化和改进传统应用模式,使应用更加适合在云平台上运行。
云原生存在的意义是解放开发和运维,而不是让开发和运维的工作变得更加复杂和繁重。
云原生还关注规模,分布式系统应该具备将节点水平扩展到成千上万个的能力,并且这些节点具备多租户和自愈能力。云原生使得应用本身具备“柔性”,即面对强大压力的缓解能力以及压力过后的恢复能力。真正的强者懂得“刚而易折,柔者长存”,我们的云原生也是运用了柔性的哲理。
云原生最初是由Pivotal公司于2013提出的,如果大家对于Pivotal公司有点陌生化,当是不会对它旗下的Spring ,Spring Boot 、Spring Cloud陌生吧。 随后 Google 在2015年成立了CNCF(云原生基金会),使得云原生受到越来越多的关注。
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。