写点什么

如何以可组合块的方式重构 CI/CD 管道

  • 2020-04-18
  • 本文字数:1065 字

    阅读完需:约 3 分钟

如何以可组合块的方式重构CI/CD管道

DeliveryConf大会上,VMware 主管工程师Bryan Liles讨论了构建持续集成交付(CI/CD)管道的一系列原则。Liles 建议,应将 CI/CD 视为模式而非 Jenkins 或 Spinnaker 这样的具体实现;需要构建一种平台,它由独立于技术堆栈的可组合部分和可替换组件构成。


演讲一开始,Liles 介绍了会有多少企业按照传统的方式构建 CI/CD 管道,并阐明建立此类管道的目的是实现应用从开发环境到生产环境的迁移。交付过程在本质上就是从源代码管理方获取应用的代码,进而在管道中编译应用,形成工件并打包(bundle)存储在仓库中。最后,管道将打包文件交付给各个环境,例如开发、测试和生产。Liles 指出,如果交付管道看上去非常复杂,那么这意味着技术栈不应该再继续复杂下去了。


在 Liles 看来,工程人员应该将部署管道看成是一些可组合的块和模式,而非仅注重实际使用的 Jenkins 或 Spinnaker 等具体实现。例如,管道中的一部分可以是完成应用构建、运行测试和创建工件的集成块,该部分可以使用 Jenkins 实现,但也支持使用 Circle CI 等其他工具。管道中的另一个块可以部署应用、征求批准和执行数据迁移的交付过程。集成和交付块都具有一些相同的基本组件,例如 Webhook 触发器、工作流、通知和批准等。集成块和交付块是部署管道这一更大的可组合部分中的一部分。



Liles 提出:“必须更多地考虑系统的可组合性。”部署管道应该是一种将应用交付至指定目的地的应用发布“平台即服务”(PaaS)。Liles 建议将部署管道重新定义为可组合的 PaaS,工程人员可轻易更改其中的各个组件。该模式的典型例子就是 Kubernetes。作为构建平台的平台,部署管道可基于 Kubernetes 实现与上述集成块和交付块一样的基本组件,同时支持使用其它各种不同的工具。例如,集成部分可以使用TektonArgo实现触发器、工作流、通知和批准块。


Liles 进而指出,Jenkins、Spinnaker 或 ConcourseCI 之类的工具可用于定义如何构建 CI/CD 管道以及如何使用它们,但应在使用中汲取前车之鉴,避免入坑。由此,他建议应以破旧立新的思维去利用工具:


我们确实需要换种思维去使用各种工具。技术现状驱动我们到达了当前的位置,但这并非我们所需要的高度。我们应该拓展思维,破旧立新。


Liles 最后总结道,工具本身是复杂的,但从生态系统角度看,我们应致力于去构建更小且可组合的工具集。他建议工程人员琢磨一下如何共同改进生态系统,而不是沉溺于如何在现有工具上锦上添花。他认为自己提出的构建方式仅是抛砖引玉,“关注点应是更多地考虑系统中的可组合性。”


原文链接:


Reimagining CI/CD Pipelines as Composable Blocks with Bryan Liles


2020-04-18 09:001825

评论

发布
暂无评论
发现更多内容

JumpServer 登录报错 'Request failed with status code 502'

coxi_vv

如何使用 SQL 语句查询 JumpServer 相关信息?

coxi_vv

java实现FTP下载,解决假死问题

Steven

JumpServer & Windows 资产无法连接

coxi_vv

JumpServer 登录密码忘记及用户锁定如何处理

coxi_vv

成为技术管理者之后,我们应该做出哪些转变?

石云升

极客时间 2月月更 技术领导力实战笔记

机器学习之特征工程详解

九章云极DataCanvas

小红书2023春节消费报告

易观分析

春节 小红书 消费

软件质量因素的定义

JefferLiu

JumpServer 用户权限体系的使用实践

coxi_vv

JumpServer 如何对接 Windows AD 域?

coxi_vv

软件测试/测试开发 | app自动化测试(Android)-- 特殊控件 Toast 识别

测试人

软件测试 自动化测试 测试开发 appium

如何解决 JumpServer 连接 Linux 资产,资产乱码?

coxi_vv

JumpServer 常见问题处理

coxi_vv

如何修改 JumpServer 的上传文件大小的限制并修改上传文件的超时时间?

coxi_vv

JumpServer 堡垒机对接 Elasticsearch 集群存储命令

coxi_vv

我在京东做研发 | 揭秘支撑京东万人规模技术人员协作的行云DevOps平台

京东科技开发者

JumpServer 审计录像

coxi_vv

如何使用 JumpServer 推送资产的系统用户?

coxi_vv

如何使用自己的 SSL 证书登录堡垒机?

coxi_vv

堡垒机如何测试Windows 资产可连接性

coxi_vv

JumpServer 如何通过 SFTP 进行文件的上传下载。

coxi_vv

如何解决纳管资产的网段与 JumpServer 后台服务器 Docker 网段重复?

coxi_vv

为WEB3 的GameFi行业爆发提供全新动力

股市老人

电商平台的多门店产品设计要点分析

产品海豚湾

产品经理 产品设计 SaaS 产品分析 电商产品

JumpServer 常用的 MFA 工具

coxi_vv

软件测试/测试开发 | app自动化测试(Android)-- 属性获取与断言

测试人

软件测试 自动化测试 测试开发 appium

2023年1月网约车领域月度观察

易观分析

网约车 出行

龙蜥开发者说:6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数 | 第 15 期

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥开发者说 联通

VSCode 连接 JumpServer 资产

coxi_vv

Linux 常见高危命令汇总

coxi_vv

如何以可组合块的方式重构CI/CD管道_软件工程_Christian Melendez_InfoQ精选文章