当前位置: 首页 > 科技观察

从Sidekick到CTO:我在CloudFoundry基金会的五年

时间:2023-03-14 21:12:48 科技观察

【.com快译】最近我一直在想,短短五年时间,CloudFoundry项目发生了多大的变化。其中一个反映是,自2015年以来,开源生态系统和企业计算市场已今非昔比。因此,CloudFoundry及其更广泛的生态系统的共同进化导致了在不同方向上相互推动。同时,这也是我职业生涯中最快的五年,也是最长的五年。2009年,VMware内部出现了CloudFoundry的最初想法。这个项目直到2011年4月才正式公布。我清楚地记得这个项目完全符合市场的要求。宣布的平台旨在简化应用程序开发和部署。在接下来的几年里,我见证了产品的成熟(并多次易手)。2014年,我编写了第一个集成到平台中的ServiceBroker,让我离社区更近了一点。2015年,围绕现已开源的CloudFoundry项目出现了一个年轻的开源社区。CloudFoundry基金会成立于2015年1月下旬,此时我的角色从社区的旁观者变成了服务者。底层架构的变化自2015年以来,无论是内部架构,还是对使用平台的开发者开放的功能,平台都发生了重大变化。在CloudFoundry基金会成立之初,社区正在大刀阔斧地改写平台的底层架构,从原来基于Ruby的代码库(名为DEA架构)转变为新的基于Go的架构(名为Diego)。这是难以实现的主要架构转变之一。挑战与其说是新架构本身,不如说是转型:对现有架构中新功能的竞争需求,以及对不确定性较小的新架构的渴望。在我的职业生涯中,我经历了很多这样的转变,CloudFoundry社区对我来说最突出的是它应对这种变化的方式。当然,开放协作可能会很混乱,但结果是有序的过渡,为下游发行版和最终用户的生态系统提供了充足的时间来进行过渡。从DEA架构到Diego(及其所有子系统)的正式过渡始于2016年11月,当时Diego迎来了1.0版本。这个主要版本向社区展示了两件事:它在功能方面与DEA相当,并且它达到了一些下游版本所希望的250,000个容器规模目标。在WardenandGarden和Diego自身进化的同时,负责节点级容器管理的CloudFoundry组件也发生了重大变化。在DEA架构中,这部分架构是一个叫做Warden的组件。Warden至少比Docker早两年问世,但它并不是一项对最终用户开放的技术。Warden的补充重写与Diego的创建同时进行。作品名为花园。Garden的设计非常周到,因为它预计用户将需要轻松更改其代码的最低级别细节以支持新兴的操作系统级容器功能。早在2015年,CloudFoundry社区就在构建Garden的实现,以支持基于Linux和基于MicrosoftWindows的主机。能够改变底层操作系统级容器技术也使CloudFoundry平台能够采用Docker捐赠给开放容器倡议(OCI)的runC库。事实上,CloudFoundry项目是第二个采用runC并使其在整个生态系统的生产级集群中大规模运行的项目(仅次于Docker本身)。为什么迭戈很重要?Diego的引入使新功能成为可能。容器到容器网络和卷服务是Diego自良好开端以来添加的前两个功能。这两个功能可以看作是内部的优化(比如减少南北流量),但是随着开发者体验功能的增强,它们变得更加重要。有了C2C网络能力,可以实现更复杂的应用到应用逻辑。此时,CloudFoundry也开始拥抱更广阔的开源网络世界。卷服务扩大了平台上可以托管的应用程序类型的范围,允许运营商为应用程序开发人员提供网络可寻址存储设备的文件系统挂载。容器网络回到网络世界,是的,容器到容器的网络工作为开发人员增加了大量有价值的功能。它也代表了CloudFoundry社区从那时起在服务网格领域制定标准和项目的转折点。这项工作从采用容器网络接口(CNI)开始,这是一种促进基于容器的平台与底层网络层交互以简化配置的规范。下一阶段是在2017年采用Envoy代理。最近,整个CloudFoundry网络堆栈采用Istio+Envoy作为默认组件,以支持集群入站/出站和跨容器网络功能。Kubernetes+CloudFoundry最近,CloudFoundry社区拥抱了另一个开源项目:Kubernetes。这始于对Kubo的捐赠,这是一个由Pivotal、Google和VMware联合开发的项目。Kubo很快变成了CloudFoundryContainerRuntime,ElasticRuntime(更广为人知的传统CloudFoundryPaaS)更名为ApplicationRuntime。这让我们的社区有信心采取几个步骤来采用Kubernetes作为底层容器编排层。Eirini项目致力于使CloudFoundry集群能够在其架构中使用Kubernetes,并最终取代Diego代码库。在过去的五年中,社区做出了如此多的其他更改和扩展,以至于很难密切跟踪每一项。一些项目已经发展成为大多数已安装CloudFoundry系统的关键组件。其他物品在完成任务后已被放置在基金会的阁楼中。什么没有改变?过去五年没有改变的两件事值得强调:我们社区对提供世界级企业开发体验的承诺,以及我们社区对平台不断发展的承诺。这两个初衷都不是“技术”,而是社区的核心精神。我们一直在努力吸引成千上万使用CloudFoundry的组织和成千上万将软件部署到该平台的开发人员。我们一直在学习如何更好地为企业开发人员服务,迭代和丰富这种体验。我们还在不断完善我们的架构,充分利用更广泛的开源社区所提供的最佳资源。当然,我们会谨慎地进行这些更改。我们允许这种演变逐渐引入频繁发布的新功能。发生了很多变化,但没有改变的是CloudFoundry社区对保持我们的生态系统不断发展的承诺。原标题:从旁观者到CTO:我与CloudFoundry基金会的五年历程,作者:ChipChilders