云本机计算基础消除了在许多云提供商中管理多个项目的复杂性,具有灵活,易于使用和统一的CI / CD系统。

行业
资讯科技及服务
位置
美国加州旧金山
员工
51 - 200名员工
解决方案
核心
好处
  • 统一的CI / CD平台

  • 改进了项目和团队的合作

  • 跨多个云提供商的互操作性

“Gitlab采取了社区的文化,将它带到您实际编纂人类如何互动的地方。这很难捕捉,我认为Gitlab没有强迫人们真正出色的工作,而是真正鼓励协同有益的工作环境。“

克里斯McClimans
跨云CI项目联合创始人

客户

云本地计算基金会(CNCF)是Linux基金会下最大的开源子基金会。CNCF的使命是创建并推动采用新的计算范式,即本地云计算。作为原生云运动的倡导者,CNCF致力于通过管理开源项目来促进原生云系统的发展和发展,包括确保技术可用、可访问、集成和可靠。CNCF目前拥有十几个开源项目,如Kubernetes、Prometheus和CoreDNS。的CNCF仪表板显示最新版本和最新开发版本(即,Head)的日常状态。最新版本包括,首次包括Linux Foundation Open Network Automation平台(ONAP)项目。

CNCF仪表板

CNCF持续整合(CI)工作组由Camille Fournier领导,成立,以增加所有CNCF项目之间的合作,并展示用于集成,测试和部署CNCF生态系统中项目的最佳实践。每个CNCF项目已经拥有自己的CI系统,它在每次提交时都在运行。但是,该基础有兴趣通过单独的CI系统提高项目间兼容性。

为了改善跨项目和跨云集成,CNCF为CI工作组内的跨云CI项目提供资金。丹佛威廉姆斯和克里斯麦克利姆斯的领导,横云CI项目被包租,以持续测试每个CNCF项目的互操作性,因为在多个云提供商跨越多个云提供商并在公共仪表板上发布结果。

挑战

跨多个项目和云提供商集成和管理复杂性。

CNCF经历了他们的许多项目的大规模采用,然而,其中相当一部分没有持续集成(CI)解决方案。除了需要每个项目的持续集成工具之外,他们还需要找到所有项目交互的方法。Williams说:“我们需要能够在管道之间进行跨项目的互动。“CoreDNS管道必须与Kubernetes管道进行交互。”

因为每个项目都有自己的治理、交互风格和创建版本的方式,CNCF不能强制实施特定的CI,并强制参与每个项目。他们需要一个统一的CI解决方案来集成所有的项目,即使项目创建者不打算积极参与CI的配置。

最初,他们开始寻找不同的群体可以轻松地将CI工具添加到他们的项目中,以便他们将其解决方案与团队的其余部分与CNCF的其余部分集成。然而,由于他们意识到尝试管理所有不同群体的复杂性,因此他们需要找到一种能够集中的方法。要提取它们的集成和互操作性,他们的目标,麦克利米斯和威廉姆斯知道他们需要一个解决方案,该解决方案具有内部停放器注册表来存储容器,工件存储,Git集成与CI / CD系统的直接联系,以及能够触发项目的CI管道。

“初始愿望是拥有每个追溯环境配置,这些配置不需要设置Jenkins,但可以处理管理跨项目配置的复杂性。设置和使用Gitlab是更简单的,“McClimans说。“我们需要一些容易的东西来开始,所以他们可以以有意义的方式合作。”

结果

灵活、易于使用和统一的CI/CD系统,用于采用跨项目协作和最佳实践。

从一个简单的yaml配置文件开始,McClimans和Williams能够在各种CNCF项目上进行持续集成测试并运行。然后,使用GitLab的多项目管道图,他们能够将项目与管道触发器集成在一起,允许他们在单个视图中可视化连接项目之间的上下游依赖和关系。

“能够存储每次提交的工件,并扩展它来存储提交时的容器,这给了我们一个二进制文件集合和管道末端的Docker容器,”McClimans说。“有了这些,我们就可以传递并触发另一个项目。这对于我们能够进行跨项目配置并将其传递给所有项目的跨云CI至关重要。如果没有多项目管道,我们就无法做到这一点。”

显示组合和传递测试的项目的初始管道是朝着展示各种CNCF项目和团队如何共同努力的良好第一步。“Gitlab为我们提供了一个真正直截了当的基础,”麦克林斯说。“这很难得到 - [通常]它将是超级定制和更复杂的使用。”

接下来,该组需要在不强加自定义配置的情况下执行每个项目的部署最佳实践。使用环境特定变量,威廉姆斯和McClimans可以以标准方式构建并重用上游测试,而无需创建自定义构建解决方案。“当有人在Coredns Repo上提交并希望进行部署时,我们需要能够用究竟使用哪种类型的Clust CoreDNS部署到一个特定的环境,”威廉姆斯说。“环境特定变量使我们能够出去并这样做。”

选择GitLab作为他们的CI/CD解决方案使CNCF能够开发一个集成的管道,而不需要进行大量定制,也不需要迫使从事特定项目的开发人员改变他们的工作流程。从事特定项目的开发人员现在可以轻松地提供正确的环境来测试对其项目所做的更改以及该更改对其他CNCF项目的影响,而无需更改他们的工作流程。

“让你的社区专注于他们自己的项目,同时也提供他们将其与其他项目结合的能力是一个困难的问题。有一个像CNCF CI工作组这样的小组来提供指导,并进行对话,这样每个团队都知道他们在更大的团队中的位置和背景,这是我们在与CNCF内的不同小组进行对话时仍在努力解决的事情。”“在我们进行了这些对话之后,很快就有了GitLab,这让我们能够把一些有意义的东西放在一起,并显示出结果。在我的生活中,这是我从未见过的像DevOps和CI人员那样迅速发生的事情。”

开源是一个关键因素

跨云CI项目是此类项目中的第一个。这个项目提出了新的问题,要求解决没有已知答案的特定问题。对于McClimans和Williams来说,拥有一个开放而灵活的平台以及活跃的贡献者社区是他们成功的关键。

“它是开源的,这也很重要,”麦克利曼斯说。“有一些我们需要的功能还没有出现,还没有完全在GitLab的雷达上,但我们能够修改源代码并构建我们自己的EE版本,它具有我们需要的功能。那确实促成了我们项目的成功。很少有公司提供他们的企业源代码供使用。”

建议的话语

“在你自己创造一切之前,看看你是否能够使用现有的工具去创造原型。刚刚从这个角度你会发现像GitLab与另一个工具和说,“它是好的,让我来构建一切的失踪,而发现GitLab所有这些其他特性,你能够配置和整合,得到尽可能远项目能够去。——泰勒·卡彭特

在出版时,案例研究所涉及的所有信息和人员都是准确的。

试一试18luck mx 无风险30天。

不需要信用卡。有问题吗?与我们联系。

Gitlab x图标svg
18新利赢钱