写点什么

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

评论

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

如何在Linux (CentOS7.3) 下安装JDK1.8?【一篇文章教会你】

Bug终结者

java; Linux Kenel 8月月更

分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享

北京好雨科技有限公司

开源 Kubernetes 云原生 SpringCloud Jaeger

JS逆向字体反爬,某供应商平台反爬实践

梦想橡皮擦

Python 爬虫 8月月更

什么是 DevOps?看这一篇就够了!

玩转Devop和研发效能DevStream/DevLake

DevOps

聚焦数据来源、数据质量和模型性能构建小微企业信用画像

易观分析

数据技术 小微企业

【SpringBoot 二】spring.factories加载时机分析

石臻臻的杂货铺

springboot 8月月更

信创是什么意思?涉及哪些行业?为什么要发展信创?

行云管家

信息安全 信创

2022上半年各银行理财子公司深耕差异化发展,净值型产品数量增加

易观分析

银行 子公司 差异化发展 净值型产品

干货丨数学规划视角下的分货优化解题思路

杉数科技

运筹优化 智能分货 供应链计划 仓储优化 门店分货

未来已来,只是尚未流行

石云升

读书感悟 未来社会 8月月更 未来以来

中大型商业银行堡垒机升级改造就用行云管家!必看!

行云管家

信息安全 银行 堡垒机 IT安全

全面认识MOS管,一篇文章就够了

矜辰所致

电路设计 8月月更 电子设计基础 MOS管

【SpringBoot 一】SpringApplication启动类的Args详解

石臻臻的杂货铺

spring-boot 8月月更

智能电视可以打开小程序应用,再也不用头痛内存了

Geek_99967b

小程序

隐私计算与数据流通:关系、作用及功能

Jessica@数牍

隐私保护 隐私计算 数据流通 数据交易 数牍科技

AI 助力双碳目标:让每一度电都是我们优化的

阿里技术

人工智能

活动报名:如何高效应对当下的实时场景需求?

tapdata

Tapdata 实时数据

企业应当实施的5个云安全管理策略

SEAL安全

云计算 容器 DevOps 云原生 DevSecOps

数据中台建设(九):数据中台资产运营机制

Lansonli

数据中台 8月月更

leetcode 48. Rotate Image 旋转图像(Medium)

okokabcd

数组 LeetCode 数据结构与算法

如何过一个充满科技感的七夕?华为告诉你

最新动态

手把手教你用 Jenkins 自动部署 SpringBoot

江南一点雨

Java spring jenkins springboot

炫酷又高效的数据可视化大屏,做起来真的没那么难!丨极客星球

MobTech袤博科技

产品设计 数据可视化

运维:Centos8安装supervisor守护Nginx进程笔记

天使不哭

#开源 8月月更

SchedulX V1.5.0发布,提供快速压测、对象存储等全新功能!

星汉未来

云原生 k8s IT运维 降本增效 星汉未来

【有话耀说】开发小达人们,荣耀开发者服务平台正式入驻InfoQ社区啦~

荣耀开发者服务平台

技术分享| 小程序实现音视频通话

anyRTC开发者

小程序 uni-app 音视频 语音通话 视频通话

如何通过使用“缓存”相关技术,解决“高并发”的业务场景案例?

冉然学Java

高并发 java; 单线程 redis'

TPC藏宝计划IDO自由协议复利模式开发功能分析

开发微hkkf5566

Tapdata 开源项目基础教程:功能特性及实操演示

tapdata

Tapdata 开源社区

制作温馨浪漫爱心表白动画特效HTML5+jQuery【附源码】

JavaPub

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