APP下载

如何参与开源,并构建开放产业格局

2019-06-20刘果欧建深

软件和集成电路 2019年4期
关键词:镜像开源容器

刘果 欧建深

过去十余年时间,国内包括华为、京东、BAT以及Kyligence、PingCAP、偶数科技等初创公司主动开源了很多项目,典型开源项目有Servicecomb、Carbondata、KubeEdge、ShardingSphere、Skywalking、Angel、Kylin、HAWQ等,参与的主流社区包括CNCF/OCI、Linux kernel、Spark、Hadoop、Tensorflow、Openstack、Cloud Foundry、ONAP等。開源已被证明可以通过协同创新加快技术发展、有效降低技术门槛、减少供应商锁定,其价值被广大企业和开发者认可。

在如上主流开源社区及开源项目中,CNCF/OCI及背后承载的容器技术,无疑是最近几年最具热度的。

华为作为CNCF/OCI初始成员之一,与几大云厂商一起策划并在Linux基金会下发起CNCF/OCI开源基金会,构建容器领域开放生态产业格局,最终实现行业厂商合作共赢。本文将详细介绍其背后的故事。

容器是应用云化的关键技术,规模应用后容器生态走向面临选择

容器,类似于Windows时代的EXE,是云应用接入云平台的关键技术。业界普遍认为最早期的容器发起于2000年FreeBSD的Jails,早期的容器存在隔离性不完善、缺少热迁移机制、多OS技术不统一等问题;之后在linux内核中,cgroup/namespace资源控制和访问隔离特性的完善,容器基础依赖技术得已成熟;2013年dotcloud发布docker,革命性的通过docker镜像解决开发者头痛的应用打包问题,大量云厂商和开发者开始涌入并尝鲜docker,容器技术开始进入规模应用期。此时,容器生态发展面临两条选择:1.类似于Windows时代的EXE,成为封闭系统;2.构建开放生态,形成多家厂商对接支持的多赢格局。

开放生态才能共赢,华为决定推动将容器技术转化为开放标准

2014年年中,容器热度持续升温,包括谷歌、AWS、微软等巨头宣布加入Docker生态圈,支持Docker成为云时代的“exe”已成为可能。

到2014年11月,硅谷风投界讨论某巨头愿意出价40亿美元收购Docker,没有成交的原因猜测是Docker认为40亿美元太低(有消息称希望100亿美元)。如果发生收购,容器技术栈将可能走向封闭。

容器格式、分发、存储、网络、调度等规范只有开放而且解耦,才对整个云产业发展才更有利,未来各云厂商的应用才能更好的互通,正在经历数字化转型的多数传统企业应用向云迁移花费也将更低。

因此,华为决定积极推动容器技术开放并标准化,并开始投入精英参与Docker社区贡献。

瞄准容器引擎标准化发力点,由Linux基金会作为容器标准化的承载平台

Docker技术栈主要包含三部分:1.Docker Engine包括容器镜像和容器运行时格式;2.DockerHub包括镜像仓库接口与推送协议;3.Docker Swam包括编排器到容器运行时、容器网络、容器存储的接口。其中DockerEngine 是容器多云/跨云部署的前提,众多云厂商和行业用户都希望形成开放标准,容易形成共识。Docker Engine也大量依赖Linux内核社区技术, 而华为在Linux内核有较深的积累(华为有Linux Kernel cgroup的maintainer), 因此当务之急是推动在容器引擎层形成标准规范。

Linux基金会作为Linux内核的生态品牌维护者,在开源界有很大的影响力。

此外,在行业公开峰会上,Linux基金会也描述其计划构建ICT基础设施软件开源全栈的愿景,容器作为重要发展方向也在其长远规划中,因此Linux基金会是承载容器标准化的最理想平台。

科技外交推动Linux基金会牵头成立CNCF/OCI基金会

2014年年中到2015年初,谷歌、CoreOS等厂商开始向Docker发起开源挑战,2014年6月,谷歌宣告开源Kubernetes。2014年12月,CoreOS发布Rocket容器引擎项目,与Docker展开开源竞争;2015年4月,谷歌为CoreOS注资1200万美元。此时容器生态存在分裂的风险。开放而解耦的容器标准才是多方共赢的基础,在2014年年底到2015年初,华为与行业几大云厂商容器相关负责人积极交流,大部分云厂商认为容器私有化对生态发展不利,认可建立开放治理机制并使容器格式标准化。2015年6月,Linux基金会联合华为、谷歌、红帽、IBM、Docker等厂商成立OCI和CNCF两大基金会组织,Docker、谷歌等代表厂商可以在CNCF/OCI中协商容器标准并充分讨论争议点,避免了容器生态分裂的风险。

2015年6月20日,OCI(开放容器标准基金会)宣告成立并挂靠Linux基金会开放治理,共21家初创成员;Docker贡献runc(容器运行时规范)进入OCI;华为是OCI初创会员之一,也是社区初始8个Maintainers之一,并在容器资源隔离、容器大规模并发启动、容器安全、容器网络等方面做了很多工作和贡献。

紧接着2015年6月21日,CNCF(云原生计算基金会)宣告成立并挂靠Linux基金会开放治理,共20家初创成员,其中8家初始白金会员分别为Cisco、CoreOS、Docker、Google、Huawei、IBM、Intel、Redhat;CNCF技术栈以Kubernetes为核心,但可扩展到容器全栈其他领域;华为成为当时唯一中国创始会员,拥有董事会席位(开始由华为开源中心侯培新博士代表,后续为华为云Anni Lai代表),并派代表参加TOC技术监督委员会竞选(后续华为由华为云架构师Quinton Hoole代表成功竞选TOC委员)。此外,华为云组建开源团队投入Kubernetes社区,贡献了集群联邦、Forgiveness等核心特性,总体开源代码贡献在中国公司中名列第一。

OCI标准进程受阻,但最终达成共识

2015年6月—2016年6月,Docker在OCI基金会中占据主导地位(50%关键席位),但OCI社区标准化推进進程十分缓慢。容器运行时,格式标准历时一年,进展相对顺利;而容器镜像格式标准,OCI成立一年后才开始社区讨论。此外,2016年6月,再次出现行业巨头可能收购Docker的传闻。在2016年6月-2017年7月,CNCF基金会开始布局更大范围的容器规范并做OCI社区备胎,措施包括两步:1.2016年9月—2017年3月,编排层接口标准(CRI/CNI/CSI)三箭齐发,计划解除容器引擎与编排层的绑定;2.2017年2月,Google/红帽/IBM贡献可替代Docker引擎项目CRI-O,做好承接镜像格式与分发规范制定的准备。面对Google/红帽/IBM贡献的CRI-O项目,Docker意识到开放的容器引擎、镜像、编排接口标准是行业大多数厂商共识,于是在2017年7月和2018年4月分别贡献ContainerD和Docker registry作为OCI镜像格式和镜像分发的标准给OCI基金会,为容器标准化也做出不小贡献。

容器生态完全开放,CNCF/ OCI规范成为产业标准

2017年10月17日,在DockerCon欧洲大会上,Docker宣布重磅消息,拥抱CNCF中的Kubernetes、ContainerD及CRI接口规范;2017年2月到2018年4月,全球五大公有云全部支持CNCF/OCI规范。至此,容器生态完全开放。在中国市场,包括BAT、京东、才云、浙江大学等在内众多云厂商及学术机构也陆续加入CNCF/OCI基金会,其中CNCF基金会中国会员由2015年华为唯一一家会员,发展到2019年初的40余家中国会员。基于CNCF/OCI基金会的Kubernetes、Docker开源项目构建容器云产品及云服务,CNCF/OCI规范成为容器产业事实标准。

华为作为中国唯一CNCF/OCI初创成员,获中国唯一Kuberntes社区技术指导委员会席位(全球仅13席),CNCF TOC委员会席位(全球仅9席),全球首批通过“Kubernetes软件一致性认证”和KSCPs(Kubernetes认证服务供应商)认证的云服务商,对应的CCE(云容器引擎)、CCI(云容器实例)也成为华为公有云的明星产品。此外,源自华为云IEF(智能边缘平台)的开源项目-KubeEdge也于2019年3月20号正式进入CNCF社区孵化,成为CNCF基金会第一个Kubernetes原生边缘计算平台,在边缘计算领域开辟一个新的基于Kubernetes的生态系统。

构建容器领域开放生态经验总结

要把握新开源技术机会,并构建开放产业格局,建议做好如下三点:

1.实时关注产业关键开源技术变化,识别风险与机会。

2.制定生态策略,寻找业界产业组织作为落地平台。

3.推动关键产业组织成立,与产业玩家一起制定开源标准并做强社区。

猜你喜欢

镜像开源容器
校园武术“学、练、赛”一体化实践探索
镜像
难以置信的事情
五毛钱能买多少头牛
2019(第十四届)开源中国开源世界
2019开源杰出贡献奖
镜像
液体对容器底及容器对桌面的压力和压强
取米
镜像