在过去十年中,Google投入了大量的开发资源来创建支持大规模运维操作的系统。开发的复杂应用来应对规模巨大的流量和数据容量,导致我们在应用架构和总体的操作模型上采用了新的方式。
各大厂商开始称这种方式为‘本地云计算’,这里有3个核心特性,使得我们可以从传统系统中对其进行识别:
在Google之外,这套方法也戏称为‘GIFEE’——Google Infrastructure for Everyone Else。有趣的是,它也被称之为‘FIFEE’或‘TIFEE’——Facebook和Twitter都在计算中采用了类似的方法,来应对运维规模的扩展。具体的细节千变万化,但是基本的模式是一致的。这是典型的技术协同变革。迄今为止,只有一个实践方法来应对互联网级别的规模,就是每个互联网公司创建他们的共同基础模式的演绎。
看向未来,我们会发现更多的传统企业被迫处理互联网级规模的问题。IoT正在将规模空前的流量带向商业。一个具有更高相关性的移动性的用户基础和劳动力,需要互联网级别的解决方案来提供支撑。每家企业都将不得不应对这些挑战,这些都是难以避免的。对于一个社区而言,组建健壮的技术栈来支持这些公司,是很有意义的。
截至最近,我们已经看到一些独立工作于特定技术的科技公司,支持转向本地云计算。个人主义方法的问题在于它要求每个供应商递交一个‘全栈’。没有标准化的容器运行时、工作流、通用服务以及数量众多的其余部分,组成一个本地云工具栈,每个公司都是一座孤岛,只有一小部公司会试着去做全套的解决方案。
我们深信,每个人都能够从能力专精中安全获益。如果一家初创公司对如何改善容器运行时环境有较好的想法,他们应该会继续前行,并创建一个独特的环境,而无需纠缠于自己的可重发布的镜像格式。如果另一家初创公司对于如何调度,以解决一个特定的工作负载问题,有较好的想法,他们应该会创建并出售,而无需创建整个栈。
带着这些,我们考量下Kubernetes的未来,容器工作流技术由Google中的同一团队完成,该团队也创建了Google内部的工作流和调度系统(如Borg)。将它贡献给社区是很有意义的,和更加广泛的社区合作,共同创建一系列协作‘栈’来支撑面向每个人的本地云计算。这就是为何我们会接触Linux组织,以及更加宽泛的技术伙伴(Intel,Red Hat, Cisco, IBM,VMWare,Docker,CoreOs,Mesosphere等)并创建本地云计算组织(CNCF)的原因
CNCF的目标不是创建一个传统的标准化组织(如,定义标准,然后实现规范),而是创造一个场所,使得我们可以在供应商自制管理下集成相关的技术,然后协调这些技术,并给予已有的用户群技术,改进工具栈层级之间的标准接口。
我们的目标是创建一个拥有清晰接口(APIs)的架构,随后依赖于参考实现作为不同部分的语义标准。如果有意义,供应商可以自行扩展栈的任意一部分,然后通过一份品质测试套件来完成该部分的‘认证’,以示其能够和参考实现兼容。基于API的一致性是不充分的,对于用户群体而言,语义上的一致性才是根本,因为如此才能够使其分拆工具站,或是集成自己的演化版本。
带着这些,我们罗列了如下几条组织的核心价值:
为了使之行之有效,我们需要跳出思维局限,根据组织结构进行思考。当我们在羡慕那些已经被许多现存组织完成的工作时,我觉得这里依旧有许多关键目标尚未被完成。我们决定尝试在组织内尝试一些新的想法,而不是建立传统的业务管理委员会:
我们的理想是,通过提出这些检验与权衡条款,创建一个稳定、专注的社区,促进创新,并在法律上使世界走向本地云计算技术。
对于最终用户的责任,要求广大企业社区的参与,这些企业正在从传统架构向本地云计算架构迁移。
通过参与CNCF的开源项目,有很多机会加入CNCF。为了加入Kubernetes社区,可以考虑参加 Slack频道 ,关注GitHub上的 Kubernetes项目 ,或是加入Google Kubernetes-dev群组 。不仅仅是Kubernetes,技术监督委员会将会带来更多项目,往后参与CNCF的机会将会更多。
另外,CNCF需要多元观点,才能帮助指导我们的活动。 作为最终用户成员加入CNCF ,将会确保大家听到你的诉求。