AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

评论

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

linux下定位多线程内存越界问题实践总结

小Q

Java Linux 学习 面试 多线程

【涂鸦物联网足迹】涂鸦云平台接口列表—智能门锁

IoT云工坊

人工智能 云计算 物联网 API 智能门锁

架构师训练营第四周学习笔记

李日盛

笔记

架构师训练营第四周作业

李日盛

架构

你应该知道的数仓安全——默认权限实现共享schema

华为云开发者联盟

数据库 数据 schema

架构师训练营 -week08-作业

大刘

极客大学架构师训练营

如果说数据是推动自动驾驶的原动力,那么存储扮演什么角色?

焱融科技

自动驾驶 数据 存储 文件存储 自动驾驶训练

Maven 入门

少平

Java

58个基础案例+2个综合案例带你探索微服务的神秘世界

小Q

Java 学习 编程 面试 开发

手把手教你使用ModelArts的自动学习识别毒蘑菇分类

华为云开发者联盟

学习 AI 图像识别

一周信创舆情观察(11.2~11.8)

统小信uos

区块链技术发展需加强核心技术自主创新

CECBC

区块链技术

Scala-语法特性(一):类型和变量定义

正向成长

scala

Nacos配置中心和服务的注册发现

牛初九

微服务 Spring Cloud nacos spring cloud alibaba

架构师训练营 1 期 -- 第八周笔记

曾彪彪

极客大学架构师训练营

【得物技术】机器学习在图形验证码识别上的应用

得物技术

学习 算法 测试 图像识别 验证码

Maven 进阶

少平

架構師訓練營第 1 期 - 第 08 周作業

Panda

架構師訓練營第 1 期

解密猫晚直播技术:如何保障全球200多个国家和地区同时在线狂欢?

阿里云CloudImagine

28天刷完这份内容多大349页的阿里Java面试通关手册,我成功闯进了字节跳动!

Java架构之路

Java 程序员 架构 面试 编程语言

从 Android 到 Java:如何从不同视角解决问题?

Java架构师迁哥

数字货币是数字经济发展基石

CECBC

数字货币

python+flask编写一个简单的登录接口例子

测试人生路

Python 接口测试

程序员在编程过程中,经常会在代码中使用到“where 1=1”,这是为什么呢?

小Q

Java 数据库 学习 架构 面试

iOS底层系统小结

shirley

ios

隧道视野效应 - 认知局限

石云升

教育 认知 隧道视野效应

太牛了,腾讯T4Java技术专家手撸的Redis技术笔记,一周内下载量已突破30W。

Java架构之路

Java 程序员 架构 面试 编程语言

“双11”正成为区块链场景应用“练兵场”

CECBC

大数据

“先加密后签名”是不是安全?看完这篇就秒懂!

华为云开发者联盟

安全 加密 签名

《迅雷链精品课》第四课:区块链技术发展趋势

迅雷链

区块链

如何提升存储性能之IO模型和AIO大揭秘

焱融科技

数据 io 存储 焱融科技 分布式文件存储

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