天天看点

工程效能CI/CD之流水线引擎的建设实践总结

关键词:

高效持续交付。

存在问题:

建设成本高、水平参差不齐,构建量快速增长,高峰期承受能力不足

发展历程:

1.搭建jenkins集群 2.业务线维度拆分集群(造成管理难度增加)3.分布式流水线引擎,收敛业务依赖

主要挑战:

1.调度效率低下 2.资源分配没有策略 3.工具差异化(接入形态的不同,shell组件、服务组件)4.场景丰富(交互、重试、异步、故障恢复)

解决方案:

1.调度决策(传统的做法是串行,业务线维度拆分集群,存在资源分配不均匀问题)计算出可以调度的作业,主动拉取作业,等待合适的资源来执行,水平拓展较好

2.引入资源池(在作业上打上标签,引入优先级概念,预制公共资源、按需分配资源)

3.组件分层设计(a.系统交互层制定统一流程标准 b.支持多种组件交付形式 c.业务逻辑层采用适配器模式)

核心设计:

作业调度、作业状态流转、作业拉取(作业丢失通过补偿机制、作业防重通过乐观锁)、资源池划分(多队列和标签匹配)、组件分层(不同的sdk结合状态机和适配器(动态注入业务拓展command))

拓展能力:通过事件类型进行终止、回调、补偿

规划:

借助云原生 从弹性资源、启动加速、环境隔离 更优拓展

提供开发者平台,打造良性组件运营生态

参考文献:工程效能CI/CD之流水线引擎的建设实践