zuul zuul2 性能_我们学习如何构建Zuul CI / CD云
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云相关推荐
- 使用VSTS为ASP.NET Core构建DevOps CI/CD管道
目录 介绍 让我们深入了解基本概念 单体架构和微服务架构 敏捷和DevOps DevOps背后的推动力 持续集成 持续交付 持续部署 使用VSTS的ASP.NET Core应用程序的自动化CI 先决条 ...
- 深度操作系统 机器学习_深度学习如何构建情感聊天机器人,第2部分对话系统...
深度操作系统 机器学习 情感聊天机器人(emotional chatbot) From part 1, we have built the BERT sentiment predictor, we n ...
- zuul两大作用_springCloud学习- 路由网关(zuul)
1.zuul简介 1.1.zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul 在云平台上提供动态路由,监控,弹性, ...
- winform 项目 发布后比本地运行慢_前端团队基于 GitLab CI/CD 的自动化构建、发布实践,快来学习吧...
在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...
- 如何能在git bash中使用mvn命令_使用Github Actions完成CI/CD工作
在本文中,我们将介绍如何使用 Github Actions 自动化开发部署工作流,使版本控制和 CI/CD 平台在同一个地方完成. 自2019年开始,github便提供了CI/CD工具,对于publi ...
- github使用指南_所有开源项目免费使用,GitHub 内置 CI/CD 终于来了
2019 年 8 月 8 日,GitHub 官方博客发文称,程序员期待已久的功能来了,Github Actions 终于支持内置 CI/CD 了,并对所有开源项目免费!目前该功能可以在 Beta 版本 ...
- 深度学习 图像分类_深度学习时代您应该阅读的10篇文章了解图像分类
深度学习 图像分类 前言 (Foreword) Computer vision is a subject to convert images and videos into machine-under ...
- 安全警报 该站点安全证书_深度学习如何通过实时犯罪警报确保您的安全
安全警报 该站点安全证书 Citizen scans thousands of public first responder radio frequencies 24 hours a day in m ...
- gpt 语言模型_您可以使用语言模型构建的事物的列表-不仅仅是GPT-3
gpt 语言模型 Natural language processing (NLP) is everywhere lately, with OpenAI's GPT-3 generating as m ...
最新文章
- OutofMemory之PermGen介绍
- fifo 上使用 select -- 转
- 三层架构和MVC一样吗?(区别)
- 使用 golang 调用consul api 接口,注册user-tomcat服务
- java criteria exist_Java Criteria.addExists方法代碼示例
- MySQL-线上删除表流程
- Oracle修改表存储参数,Oracle存储结构之参数文件
- Jenkins分布式构建和部署(master-slave)
- 全文检索同时高亮多个字段
- Windows下Jena+fuseki安装配置和简单使用(没有eclipse)
- 01背包, 完全背包,多重背包
- C#阿里云oss接口上传和下载文件
- python_获取两个数,打印中间值
- python3 windows下的几乎万能爬虫方法
- 2026年中国大数据总体市场规模将超359亿美元
- python之模块导入及模块导入路径
- MySQL之全文索引详解
- 风投是如何逆势布局DeFi项目的?
- layui 利用tab选项卡实现:上一步,下一步操作
- Android程序运行报错Process xxxx has died原因查找