优化Jenkins在云端构建性能

问题背景

目前我们的PaaS平台使用了Jenkins对作为分布式构建调度平台,目前每天大概有5000左右的业务构建在上面运行,并且这些构建80%的执行是在高峰时段的几个小时内,执行包含单元测试,静态代码检查,打包,烘焙镜像,自动化测试以及部署等任务。为了保证构建的性能,提高构建资源的使用率,我们使用了Kubernates 对Jenkins的构建的节点Jenkins-slave进行动态管理,CI系统的整体架构如下图:
在这里插入图片描述

  • Jenkins Master总共有5台,构建管理组件负责将流水线任务相对平均地分布在这5台机器,同时也是为了避免单点失败
  • 每个Jenkins master安装了一个基于开源社区的jenkins-kubernates plugin,同时做了一些定制化的逻辑,用于在k8s集群上创建不同构建类型的jenkins-slave
  • 为保证干净的Runtime环境,每个Jenkins slave只运行一个构建任务,构建结束后slave会从Master删除,同时对应的K8s pod也会回收

用户使用PaaS平台的流水线进行构建时,都希望自己的构建任务尽快地开始。由于所有的构建最终都将运行于Jenkins的工作节点:Jenkins-slave, 只有当前的Jenkins Master有可用的slave(executor)时,构建任务才会被调度到该slave上并马上执行,否则构建将呆在队列里,因此为了让用户体验到构建的零时延,不能在用户点击构建后才

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值