写点什么

如何以可组合块的方式重构 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:001808

评论

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

逐“路”向前!路桥股份携手端点科技重塑数字化采购新格局

科技热闻

简单的限流过滤器

不在线第一只蜗牛

YashanDB共享集群助力高端应用场景1:1平替

Geek_2d6073

Python dataclass 基本使用指南

测吧(北京)科技有限公司

测试

Fluid 1.0 版发布,打通云原生高效数据使用的“最后一公里”

阿里巴巴云原生

阿里云 云原生 Fluid

什么是自动化测试框架?

测吧(北京)科技有限公司

测试

为什么要使用 YAML 文件?

测吧(北京)科技有限公司

测试

京东JD商品详情API返回值研究:商品数据与电商用户体验优化

技术冰糖葫芦

API Explorer API 接口 API 策略

低代码开发平台:解锁企业创新潜力的关键

EquatorCoco

低代码

开启多屏时代,让设备不再吃灰!ToDesk、Spacedesk、EV、Duet Display扩展屏实测报告

小喵子

ToDesk 多屏 扩展屏

深入理解 pytest 测试框架

测吧(北京)科技有限公司

测试

淘宝搜索API返回值分析:关键字搜索在电商领域的应用价值

技术冰糖葫芦

API Explorer API 接口 API 策略 pinduoduo API

深入解析单元测试框架如何构建可靠代码的基石

测吧(北京)科技有限公司

测试

Python dataclasses 中 field 的使用

测吧(北京)科技有限公司

测试

中国信通院启动科学智能(AI4S)产业图谱编制工作

中国信通院AI Infra工作组

大模型建设赋能再升级 大模型基础设施高质量发展研讨会圆满成功

中国信通院AI Infra工作组

玩转豆包大模型,火山引擎助力小爱打造“最强大脑”

新消费日报

Pydantic 基本操作指南

测吧(北京)科技有限公司

测试

ICE.AI市场需求与愿景

科技热闻

这么简单的问题都不会,那还面试什么!?

王中阳Go

Go 面试 面试题 面经 Go进阶

软件测试学习笔记丨Bash编程语法

测试人

软件测试

从线上到线下!和鲸科技携手中国地质大学 UrbanComp,共绘 GeoAI 教学实践新篇章

ModelWhale

Python 人工智能 遥感影像 地球科学

【技术分享】重点机器状态变更飞书通知

伊克罗德信息科技

贺!亚马逊云科技生成式AI能力认证释放GenAI能量,重塑客户体验!

伊克罗德信息科技

Kafka多维度调优

快乐非自愿限量之名

kafka 调优

多款可观测产品全面升级丨阿里云云原生 5 月产品月报

阿里巴巴云原生

阿里云 云原生 可观测

Python 数据类嵌套详解

测吧(北京)科技有限公司

测试

很有意思的两个测试面试题

老张

会议通知|大模型基础设施高质量发展专题研讨会

中国信通院AI Infra工作组

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