zuul zuul2 性能

传统上,对开源项目(例如OpenStack)的贡献涉及个人和公司,他们提供代码贡献以添加新功能并修复错误。 近两年来,我一直在使用裸机服务提供商Packet捐赠的硬件在美国各地的用户组会议上运行一次性的OpenStack云用于演示和实验室。 六个月前,Packet问他们如何向社区做出更大的捐赠,这使我们走上了构建社区云以支持OpenStack的道路。

每天,需要对数百个提交给OpenStack代码库的代码进行测试,并将其作为Zuul管理的持续集成系统的一部分,“ Zulul是一个程序,用于驱动持续集成,交付和部署系统,重点是项目选通和相关项目。 ” 每次提交都要经过人工审查之前的一系列测试(或门),而门在代码合并之前再次运行。 所有这些门都运行在由许多公共云提供商提供的虚拟机实例池中(高峰时间超过900个实例)。 所有OpenStack CI都依赖于捐赠的计算资源。 OpenStack Infra团队协调所有这些云提供商,并成为我们捐赠这些资源的联络点。

所有测试实例和镜像实例均使用临时存储,而云的设置没有任何持久性存储。 尽管企业工作负载通常需要持久性存储,但是专用于运行连续集成作业实例的云并不需要。 当CI作业日志从云中拉回到中央服务器时,其余CI作业将在测试结束时处理。 这允许将原本应分配给持久性存储服务(即Cinder和Ceph)的硬件资源用于计算服务(Nova)。

与OpenStack Infra团队的合作使我对Zuul的功能以及该团队构建的框架大开眼界。 我有机会在最新的Project Teams Gathering(PTG)上赶上OpenStack Infra团队。 他们意识到Zuul可以给任何云带来压力,并乐于解决出现的问题。 更妙的是,他们运行了很多工具来提供度量指标,例如启动尝试失败和准备就绪的时间,使我能够尽快发现问题。

诸如Zuul之类的CI系统会不断旋转虚拟实例,从而给云环境带来了极大的负担。 虽然典型实例可能需要花费数周或数月的时间,但通过Zuul进行的CI实例平均只能存活几个小时。 这意味着控制平面始终忙于停止和启动服务。 通过OpenStack Infra团队提供的工具,我们能够确定性能问题。 在运营的最初几个月中,我们很快意识到我们必须扩大控制平面以处理工作量,并重新配置映像存储空间以处理Zuul每天创建的磁盘映像。

这种云的限制因素之一是IPv4寻址的可用性。 每个测试实例都需要一个浮动IP地址才能与Zuul通信。 因为我们拥有计算资源,RAM和CPU,可以将云分组,所以我们打算开始用IPv6地址配置测试实例。 Zuul和OpenStack Infra项目都已经支持IPv6。

尽管我们一直在继续改善这个社区运营的云,但我们也期待探索我们可以在捐赠的硬件中提供什么。 Nodepool具有驱动程序功能来处理OpenStack以外的资源,我们对使用自动化裸机支持感兴趣。 我们还希望通过相同的Zuul和Nodepool框架将CI资源扩展到其他开源项目。

设置和运行该云是一种有益的体验,特别是与OpenStack Infra团队合作并了解他们在Zuul上所做的一切。 我运行云以支持OpenStack Infra团队所获得的知识远远超出了我为用户组演示运行一次性云的经验。

如果您是OpenStack云提供商(公共或私有),并且有兴趣向OpenStack捐赠资源,我鼓励您与我或OpenStack Infra团队联系以获取更多信息。


John Studarus将在11月13日至15日在柏林举行的OpenStack峰会上介绍我们构建Zuul CICD云所学的内容。

翻译自: https://opensource.com/article/18/10/building-zuul-cicd-cloud

zuul zuul2 性能

zuul zuul2 性能_我们学习如何构建Zuul CI / CD云相关推荐

  1. 使用VSTS为ASP.NET Core构建DevOps CI/CD管道

    目录 介绍 让我们深入了解基本概念 单体架构和微服务架构 敏捷和DevOps DevOps背后的推动力 持续集成 持续交付 持续部署 使用VSTS的ASP.NET Core应用程序的自动化CI 先决条 ...

  2. 深度操作系统 机器学习_深度学习如何构建情感聊天机器人,第2部分对话系统...

    深度操作系统 机器学习 情感聊天机器人(emotional chatbot) From part 1, we have built the BERT sentiment predictor, we n ...

  3. zuul两大作用_springCloud学习- 路由网关(zuul)

    1.zuul简介 1.1.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性, ...

  4. winform 项目 发布后比本地运行慢_前端团队基于 GitLab CI/CD 的自动化构建、发布实践,快来学习吧...

    在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...

  5. 如何能在git bash中使用mvn命令_使用Github Actions完成CI/CD工作

    在本文中,我们将介绍如何使用 Github Actions 自动化开发部署工作流,使版本控制和 CI/CD 平台在同一个地方完成. 自2019年开始,github便提供了CI/CD工具,对于publi ...

  6. github使用指南_所有开源项目免费使用,GitHub 内置 CI/CD 终于来了

    2019 年 8 月 8 日,GitHub 官方博客发文称,程序员期待已久的功能来了,Github Actions 终于支持内置 CI/CD 了,并对所有开源项目免费!目前该功能可以在 Beta 版本 ...

  7. 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类

    深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...

  8. 安全警报 该站点安全证书_深度学习如何通过实时犯罪警报确保您的安全

    安全警报 该站点安全证书 Citizen scans thousands of public first responder radio frequencies 24 hours a day in m ...

  9. gpt 语言模型_您可以使用语言模型构建的事物的列表-不仅仅是GPT-3

    gpt 语言模型 Natural language processing (NLP) is everywhere lately, with OpenAI's GPT-3 generating as m ...

最新文章

  1. OutofMemory之PermGen介绍
  2. fifo 上使用 select -- 转
  3. 三层架构和MVC一样吗?(区别)
  4. 使用 golang 调用consul api 接口,注册user-tomcat服务
  5. java criteria exist_Java Criteria.addExists方法代碼示例
  6. MySQL-线上删除表流程
  7. Oracle修改表存储参数,Oracle存储结构之参数文件
  8. Jenkins分布式构建和部署(master-slave)
  9. 全文检索同时高亮多个字段
  10. Windows下Jena+fuseki安装配置和简单使用(没有eclipse)
  11. 01背包, 完全背包,多重背包
  12. C#阿里云oss接口上传和下载文件
  13. python_获取两个数,打印中间值
  14. python3 windows下的几乎万能爬虫方法
  15. 2026年中国大数据总体市场规模将超359亿美元
  16. python之模块导入及模块导入路径
  17. MySQL之全文索引详解
  18. 风投是如何逆势布局DeFi项目的?
  19. layui 利用tab选项卡实现:上一步,下一步操作
  20. Android程序运行报错Process xxxx has died原因查找

热门文章

  1. IDEA项目创建Mapper的xml文件的方法
  2. centos7安装cassandra
  3. spingboot整合netty实现单聊整合实现
  4. CentOS7网络配置,安装jdk,tomcat和mysql全过程
  5. Linux日志文件utmp、wtmp、lastlog、messages
  6. 团队项目:过山车游戏的设想
  7. 在单位用oracle备份到磁带的脚本(看不明白的地方交流)
  8. MySQL内核调试_内核调试技巧
  9. aop 获取方法入参出参_Spring AOP 如何将参数传递给需要织入的方法
  10. 洛谷P3390 【模板】矩阵快速幂