这才是DevOps演进及CI/CD实践的正确打开方式!( 四 )
三、从DevOps到一站式研发平台
我们针对以上不足做了以下改造:
1、重构流水线
1)把流水线的任务拆解成一个个独立的原子任务 , 并将原子人按功能划分为校验类和执行类 。
文章图片
2)根据工程的开发语言 , 发布方式 , 以及推送环境 , 预设了一套流水线任务列表 。
文章图片
可以看到 , 这里面有两种箭头 , 分别代码同步任务和异步任务:同步任务串行执行 , 若失败会阻断流程;异步任务并行执行 , 若失败 , 不会阻断流程 。
3)自研了JenkinsrabbitMQ插件 , 实现流水线服务与Jenkins之间通过消息队列通信 。
文章图片
重构之前 , 前面讲到是通过调用JenkinsAPI的方式实现的 , 而重构之后 , 流水线服务组装好构建信息后将消息发布到队列里 , jenkins插件消费消息 , 然后调度slave执行任务 , 同时将状态和结果生成消息也发布到队列中 , 流水线服务消费消息更新日志和状态 , 这种方式极大地提升了成功率 。
4)Jenkinsslave节点容器化
文章图片
重构之前 , 所有的slave节点都是虚拟机 , 这样就导致节点数量固定 , 要么造成资源浪费 , 要么无法满足高并发 , 而且维护成本较高 , 一旦涉及改动 , 需要人工更改每一个节点 。
重构之后 , 我们利用k8s插件 , 链接我们的k8s集群 , 创建slave节点 。 利用k8s特性 , 可动态调整节点数 , 既满足高并发 , 又不造成资源浪费 , 并且维护简单 , 一旦涉及改动 , 只需要重新构建slave镜像应用即可 。
重构之后的流水线有如下特点:流水线执行任务更加灵活 , 可按照实际情况动态调整执行任务 , 实现“因地制宜”;提升了流水线执行任务的成功率 , 实现高可用;通过k8s特性实现Jenkinsslave节点动态扩缩容 , 满足高并发的同时 , 节约服务器资源 。
2、工程全生命周期管理
1)工程创建阶段
文章图片
定义六大工程类型 , 完全覆盖所有研发需求 , 且配置简单 , 一键创建 。
2)工程研发阶段
文章图片
根据工程类型生成配套组件 , 研发阶段全面赋能 。
配套组件有工程权限管理、工程服务管理、工程资源管理、配置中心管理、调度任务管理、域名管理、安全管理等 。
3)工程上线阶段
统一需求发布流程 , cicd流水线标准生产 , 保证每一步的可靠性 。
4)工程运行阶段
实时监控服务 , 多种维度的异常告警机制 。
文章图片
5)工程下线阶段
文章图片
智能检测中心检测无用工程 , 360度检查工程依赖项 , 一键下线 , 操作简单 。
由此我们实现了工程的全生命周期管理:
文章图片
3、整合基础服务和工具
文章图片
1)提供一站式查询和使用
2)提供各类工具使用文档
- 本文转自:国际在线在重庆联通5G数字智慧体验园|让城市更智慧 这些5G融合应用的新成果就在身边
- |《独行月球》中没说的都在这里了
- 本文转自:中国经济网来源:经济日报新闻客户端这个夏天的“桑拿天”格外漫长|寻找家电行业“新增量场”全年第三大家电消费节点已显现
- 阿斯麦尔|34%的市场营收受到威胁后,这次ASML开始选择“反抗”了
- 高通骁龙|12GB+256GB大容量,这4款手机最低仅1749元,正常能用三五年不卡
- 不可能变可能!这家船厂完成老龄船板式冷却器修理
- 一加科技|拒当冤大头!下半年这四款旗舰值得推荐,16GB大运存仅需3499?
- 电池|大内存用着才爽,这4款512GB手机推荐,最低仅2299,流畅三五年
- 苹果|“关闭电商”和“取消外卖”,恢复市面繁荣,这种做法可行吗?
- 高通骁龙|这骁龙8+手机确实香“断货”,挺离谱的。我就觉得这个配置各位友商都按奈不住