我们已经进入云计算下半场,不再像上半场在纠结要不要上云,而是讨论怎么上云?才能把云计算的价值发挥到淋漓尽致。如何把云计算与不同的业务场景深度结合?如何让技术真正作用于企业?如何节省企业IT部署成本?
谁也不知道答案,直到“云原生”来了。
◆◆云原生是什么◆◆
云原生是什么?这个众说纷纭,没有统一的定义,姑且以老大哥CNCF的定义来了解云原生。
老大哥?CNCF?
CNCF,全称为Cloud Native Computing Foundation,中文译为“云原生计算基金会”。成立于2015年12月11日,CNCF是Linux基金会旗下的基金会。CNCF致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。CNCF是云原生领域影响力最大最有话语权的组织。
说起CNCF的故事,还要从Cgroups(control groups,控制组群)开始说起,时间轴回到16年前。
2004年,谷歌开始使用容器技术,于2006年发布了Cgroups,最初叫Process Container(进程容器)。
Process Container的目的非常直白,它希望能够像虚拟化技术那样给进程提供操作系统级别的资源限制、优先级控制、资源审计能力和进程控制能力。带着这样的设计思路,Process Container在2006年由Google的工程师正式推出后,第二年就进入了Linux内核主干。
因为在Linux内核中,容器(container)这个名词有许多不同的意义,为避免混乱,就更名为Control Groups,也就是Cgroups。
2013 年,Docker 项目正式发布,2014 年,K8s项目也正式发布。
原因非常容易理解,因为有了容器和 Docker 之后,就需要有一种方式去帮助大家方便、快速、优雅地管理这些容器,这就是K8s项目的初衷。
K8s是云原生的基石,后面会细讲。在 Google 和 Redhat 发布了K8s 之后,这个项目的发展速度非常之快。
2015 年,由Google、Redhat 以及微软等大型云计算厂商以及一些开源公司共同牵头成立了 CNCF 云原生基金会。CNCF成立之初,就有22个创始会员,而且K8s也成为了 CNCF 托管的第一个开源项目。
在这之后,CNCF 迅猛发展。截止2020年2月,从官网看到数据显示有433个会员。
那么CNCF是如何定义云原生的呢?
翻译为中文:
云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
除了CNCF关于云原生的定义,网络上流传的另一个版本是Pivotal 公司的 Matt Stine于2013年首次提出云原生概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、自敏捷架构、基于API 协作、扛脆弱性。
到了2017年,Matt Stine 改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质;而Pivotal 官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器。
云原生所需能力与特征 by:CNCF大使 宋净超