当前位置: 主页 > 科技 >

原来Zuul可以这样简化测试流程

时间:2020-06-10来源:互联网 作者:编辑 点击:
原标题:原来Zuul可以这样简化测试流程 OpenTelekomCloud是一个大型的欧洲OpenStack公有云。其子公司T-SystemsInternationalGmbH为德国电信集团提供服务。 OpenTelekomCloud架构师ArtemGoncharov分享了Ope

原标题:原来Zuul可以这样简化测试流程

OpenTelekomCloud是一个大型的欧洲OpenStack公有云。其子公司T-SystemsInternationalGmbH为德国电信集团提供服务。

OpenTelekomCloud架构师ArtemGoncharov分享了OpenTelekomCloud为什么选择Zuul,以及他们如何将其与GitHub和OpenStack一起使用。

Q:你的组织是怎么开始使用Zuuk的?

A:我们最开始使用Zuul开发OpenStack客户端组件,如SDK、CLIs和其他内部运维软件组件。在设法将一些更改合并到Zuul中之后,我们将其高效地部署为我们的持续集成系统。现在,它是我们的CI系统,用于开发提供给客户的所有开源工具。此外,Zuul目前用于监控平台服务质量。为此,我们定期执行一组测试。它还永久监控我们的RefStack合规性。

我们为把Zuul作为德国电信其他部门的内部服务做准备。我们在自己的公有云上运行Zuul,即OpenTelekomCloud,并在那里生成虚拟机。我们全都是OpenStack!

Q:你们是如何使用Zuul的?

A:目前,我们有在与GitHub交互的公共域上工作的Zuul。尽管Gerrit的CI工作流非常强大,但我们注意到一些用户困扰于其复杂性。因此,我们决定留在GitHub,让更多的社区成员参与我们项目的开发。Nodepool为简化OpenStack驱动程序的作业启动虚拟机。

Q:你们现在的规模多大?

A:我们有一个五节点的zookeeper集群,每个节点有一个调度器、一个nodepool-builder和一个nodepool-launcher。目前两个Zuul执行器满足了我们的需要。我们有大约10个项目由Zuul管理,但计划很快增加到50个。我们平均每天生成50个build。

Q:你们从使用Zuul得到了什么好处?

A:我们在快速成长,项目在规模和复杂性上都有了清晰的布局,而且预计性会增加得很快。门控到位,确保所有的软件始终都是经过测试和一致的——这让我们很放心,使我们能够扩大所覆盖的项目的数量。

其次,我们可以更好地控制构建和测试过程在何处以及如何进行。我们正在测试真实的云场景,因此有实际云资源的凭据和访问权限。通过Zuul和Nodepool,我们可以更好地控制这些虚拟机和存储的数据。

最后,我们有一个相当复杂的集成和部署工作流。我们构建和打包的不仅仅是软件,我们还创建其他工件,比如文档、PyPI包,还有更多需要额外步骤的东西。我们喜欢使用Ansibleplaybook定义这些工作流所带来的灵活性。

Q:挑战是什么(你们是如何解决的)?

A:测试公有云的所有方面对我们来说都很重要。功能测试包括登录域、创建资源和处理凭证的所有方面。由于这个安装程序连接到GitHub,可以间接地供公众访问,因此我们对在执行实际测试和构建的同一平台上运行Zuul安装程序有点不安。因此,我们通过几个专用的OpenStack域来隔离这些作用域,其中只有Zuul有API访问权限。在最坏的情况下,如果凭据泄漏,我们只需清理并重置一个测试域,但Zuul基础设施本身不受影响。为此,我们促进了OpenStackSDK的“项目清理”功能,我们也为此做出了贡献。

我们还经历了refstack的功能测试或验证,经常会留下很多碎片——这些碎片没有被代码清理掉,有时甚至是因为OpenStack本身的API调用失败。我们还利用“项目清理”来减轻这种行为。

Zuul还将日志文件中的许多信息发布到公共可读的Swift容器中。我们的安全团队对此表示不满,即使大部分信息是无害的。在某些情况下,我们修补了Zuul或其作业,因此这些数据不会先累积。

出于运维和安全原因,我们希望尽可能地包含所有工作负载。Zuul配备了一组Docker容器。不幸的是,Nodepool-builder需要很多特权,这很难用普通的旧Docker实现。我们的方法是利用Podman作为替代方案。

Q:关于Zuul的未来计划是什么?

A:Gerrit代码审查系统实现了一个复杂的角色模型,它允许用户进行代码审查、升级修订或授权最终合并。仅用GitHub实现这些访问控制功能是一个大挑战。作为暂时的解决方法,我们对拉取请求使用“/merge”注释。

尽管Zuul的主要目的是实现自动化,但有时能够手动干预也不错。不幸的是,目前还没有一个真正的UI来执行管理任务,比如重新构建一些工件。这将有助于迁移更多的Jenkins作业。

Zuul的运维很复杂,我们目前没有一个专门的小组。我们通过实现Ansibleplaybooks来减少运维的工作量,但这是一项持续的工作。

我们致力于将Zuul转变为其他德国电信子公司和项目的内部产品。我们也非常有兴趣让Kubernetes和OpenShift成为Zuul的运维平台。这样的挑战来自于高可用性所需的多云问题。

Q:Zuul有没有特别的功能吸引到你们?

A:Zuul推动了OpenStack的发展,这是一项了不起的工作,也是一个相当大的责任。它的可伸缩性和灵活性给我们留下了深刻的印象,其架构适应了我们的内部项目。相信还有更多的事情要做。

https://superuser.openstack.org/articles/zuul-a-t-systems-case-study/

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
文章导航
推荐内容