0
点赞
收藏
分享

微信扫一扫

流水线设计与实践

一、信息化敏捷化发展驱动价值交付

瀑布流程: 来源于生产和工程领域,开发流程由路线图清晰定义,沿着路线图得到最终交付的产品,适用线性化流程。

敏捷软件开发: 解决开发与业务之间频繁沟通,快速响应变化;需要自适应规划、演进式的开发和交付。

二、一体化研发交付DevOps流水线实践思路

DevOps理念:Development+Operations重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。

DevOps目标:达到更短的发布周期,增加发布频率,更独立的发布,快速实现业务价值。

流水线定位:更可靠更有效地编译,构建并将其代码部署到生产计算平台。实现构建自动化、测试自动化、部署自动化。

 三、打造全流程一体化天梯DevOps流水线

        面临着人员来源多样、项目类型多样、使用需求多样、构建方式多样,安全操作隐患、网络资源受限,以及流程、工具、团队间的效率竖井,项目的开发过程中有很多低效操作。通过自动化流水线作业将中间环节所消耗的大量等待时间降到最低,从而大大提升项目的开发效率。

        流水线经历了从零到手工编写脚本,从手工到定制化模板,从定制模板到自定义编排的演进历程。

 1、原生时代    

        纳管Jenkins与GitLab,封装Jenkins服务。

存在如下问题:

        (1)、部署,受限资源权限访问等原因,服务交付耗时久。

        (2)、各项目组代码提交后,本地编译构建,再上传制品到服务器,无法做到自动化构建。

2、模板时代

        随着流水线使用项目增多,运维支撑人员超负荷的指导用户建立流水线,因此衍生出模板化需求,将流水线内容固化,降低用户使用门槛。接入项目130+项目,建立流水线40多万条。

 存在如下问题:

        (1)、流水线创建高门槛,需要熟悉jenkins语法,需要支撑运维人员指导流水线建立。

        (2)、项目组生产发版期间需要执行流水线170+次,需要短时间构建执行大量流水线,无批量执行功能。

        (3)、为增加代码质量,降低技术债务,减少测试人员压力。无法在服务构建过程中对代码进行单元测试。

        (4)、原生时代下需要手动对项目做制品与部署。没有将该功能纳入流水线。

3、原子时代             

        随着流水线使用项目的增多,而原有模板化模式功能相对单一, 逐渐无法满足各项不同的定制化需求。流水线提出了原子化升级,允许各项目自定义DIY节点原子,并提供通用的模板节点,从而可按不同需求任意组合原子编排流水线。同时流水线实现了支持并行执行的功能升级和资源部署节点的优化。

 备注:该文章内容为工作中实践总结,属于原创作品,转载要标明出处。

 

        

举报

相关推荐

0 条评论