上海启嘟渡科技商贸有限公司
SEARCH

与我们合作

我们专注提供互联网一站式服务,助力企业品牌宣传多平台多途径导流量。
主营业务:网站建设、移动端微信小程序开发、营销推广、基础网络、品牌形象策划等

您也可通过下列途径与我们取得联系:

微 信: wxyunyingzhe

手 机: 15624122141

邮 箱:

vivo 自研Jenkins资源调度系统设计与实践

更新时间:2024-12-29 11:15:03

在企业中,Jenkins作为持续集成工具的广泛应用,其高可用性成为保障服务稳定性的关键因素。vivo互联网服务器团队在面对这一需求时,不仅引入了业界的高可用方案,还结合自身需求,设计并实践了一套独特的Jenkins资源调度系统。本文将探讨Jenkins高可用方案的分析与vivo的实践成果。

首先,分析当前业界常用的Jenkins高可用解决方案。例如,Gearman + Jenkins方案通过任务分发框架Gearman实现了负载均衡,但要求各服务器配置一致,容易引起调度错误。而改造Jenkins文件存储方式,将配置文件迁移至数据库存储,虽然实现了高可用性,但二次开发和数据库读取效率下降成为其缺点。此外,一主一备模式在实现高可用性的同时,存在资源浪费和切换时间过长的问题。

针对上述问题,vivo Devops团队通过优化Jenkins部署架构并配套Jenkins资源调度系统,实现了资源的高效管理与分配。该系统设计的目的是解决现有方案的局限,以提供更稳定、高效的服务。

系统设计与实现方面,vivo Jenkins Scheduler系统采用了多master架构,不进行slave机器挂载,任务由master直接处理。调度系统负责管理Jenkins集群,包括任务分配、离线处理及插件安装等。通过引入API-Gateway、事件中心、调度中心、流控管理、队列管理与回调中心等模块,实现了系统对外部请求的高效处理与任务状态的实时监控。

API-Gateway作为网关系统,处理外部请求;事件中心利用Spring的Event机制实现系统通信调用;调度中心为核心模块,负责选取合适的Jenkins执行任务,采用标签分组与算法优化策略,确保任务分配的合理性与效率。流控管理与队列管理则保证了系统在高并发场景下的稳定运行。回调中心负责监控任务状态,确保业务通知及时且数据统计准确。

实施效果方面,该系统在生产环境中运行稳定,有效解决了Jenkins服务的高可用性问题。随着功能的完善与业务的扩展,未来Jenkins工具将朝着容器化、池化方向发展,以提高资源利用率和业务发布效率。同时,结合公司对k8s容器生态的建设,vivo计划将Jenkins工具集成到容器生态中,提供更可靠、简洁、稳定的调度执行服务。

多重随机标签

猜你喜欢文章

QQ客服 电话咨询