0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

CI/CD管道:软件开发的起源与发展历程

发表时间:2023-12-03 15:03:56

文章来源:炫佑科技

浏览次数:151

菏泽炫佑科技

CI/CD管道:软件开发的起源与发展历程

软件开发一直是一项复杂的工作,自从有人将其与项目管理结合起来,软件工程就应运而生了。 20世纪70年代和80年代的软件危机让人们意识到软件工程领域的风险和挑战。 《人月神话》一书甚至直言“没有银弹”,没有任何技术或方法可以让软件工程变得更好。 十年内生产力提高了十倍。 如今,时代变了,软件工程领域不断涌现新的方法和工具。 原来的“银弹”理论已经不再适用,当下*受业界关注的方法论就是打破这一瓶颈。

● 什么是

它是一种重视“软件开发人员(Dev)”和“运维技术人员(Ops)”之间沟通与合作的文化、运动或实践。 它是近十年来在软件开发领域出现的一种方法论,目前已经普遍成熟地使用。 它不同于传统的瀑布模型、螺旋模型等概念。 其核心是“敏捷”,结果是自动化。 它是敏捷开发的延伸。 通过“软件交付”和“架构变更”的流程自动化自动化软件开发,使软件的构建、测试和发布变得更快、更频繁、更可靠。

传统的软件开发组织结构中,开发、运维、质量保证等部门相互独立,各司其职。 随着需求扩大、响应迭代频率加剧,行业对敏捷开发提出了更高的要求,不仅需要快速、频繁的交付,还需要可靠的质量,这对传统的组织结构变革提出了要求。 为流程重塑搭建部门间沟通协作的桥梁,围绕敏捷开发实现软件产品的持续集成、持续交付和持续部署,以满足真实需求。 这就是 CI/CD 管道,它构成了公司的支柱。

● 的起源和发展历史

业界普遍认为父亲是来自比利时的帕特里克·德布瓦。 2007年,在从事大规模数据中心迁移工作时,对IT组织结构感兴趣的帕特里克意识到,开发团队和运维团队之间的信息鸿沟和组织冲突往往会导致IT项目的结果令人沮丧。 。 作为敏捷开发的支持者,他一直致力于改变这种状况。

2008 年 6 月,在旧金山**届会议的交流中,一个名为 The Agile Admin 的博客诞生了。 同年 8 月的多伦多敏捷大会上, 与另一位敏捷开发人员 进行了长时间的讨论,种子开始生长。

2009 年 6 月在圣何塞举行的第二次会议是一个重要的转折点。 题为“每天 10+:Dev and Ops at”的演讲引起了 的共鸣,让他决定在家乡比利时举办一次会议。 类似的会议。 同年10月,在比利时根特召开了“社区版大会”。 来自世界各地的敏捷开发者、运维工程师、IT爱好者蜂拥而至。 会议取得了意想不到的成功,该术语正式诞生。

2010年,The Agile Admin博客发表了文章《What is》,详细定义了这一概念和体系。 越来越多的IT从业者认识到“What is”的概念和意义。 同年,在德国汉堡举行的第二届会议上,后来《持续交付》一书的作者 Jez 发表了关于“持续交付”的重要演讲。 由于持续交付(CD)是持续集成(CI)的延伸,这与2008年敏捷大会的观点一致,因此CI/CD已经成为核心概念之一,而不是另一个体系。 此后,软件工程领域发展起来的新方法论逐渐被业界所采用,软件开发敏捷性与质量齐头并进的时代加速到来。

● 它给开发者世界带来了什么?

如今的软件和软件工程领域早已远离了刀耕火种的时代。 摆在我们面前的是模块化的高级编程语言、高度集成的环境、各种库、各种框架以及弹性计算带来的管道和自动化工具。 ,我们正处于一个“敏捷”时代。

它是这个时代方法论的产物。 抱着这样的理念,开发者界在接下来的十年里诞生了一批优质、普遍适用的生产力工具和成熟的解决方案,就是一个典型案例。

它是虚拟化技术发展到一定阶段而衍生出来的容器技术。 作为开源的应用容器引擎,虚拟化是在操作系统层实现的,比虚拟机(硬件虚拟化)更加方便高效。 此外,容器大多用作软件应用程序部署的标准化单元。 它们可以轻松部署到不同的空间,而不受硬件基础设施和操作系统的限制。 因此,它们是自动化部署的绝佳工具。

K8s,简称k8s,为构建基于容器的分布式系统提供了完善的基础设施环境。 简单来说,它是一个开源的容器编排引擎。 在仍在增长的同时,k8s 迅速崛起,并为生产级大规模容器化设定了标准。 如果是容器,k8s就是一个自动化终端。 k8s中可以创建多个容器,每个容器运行一个应用实例。 通过内置负载均衡实现大规模实例的访问和管理,实现从容器到容器云的跨越。

生产出来的产品远不止这些。 除了容器化技术之外,还有测试、包管理、评估分析工具等,整个链条集开发和运维功能为一体,贯穿整个CI/CD流程,并不断成长。 软件工程行业的敏捷和自动化能力水平。 云计算时代也是云和分布式算力的时代。 云与云是相辅相成的。 没有云的弹性和按需分配CI/CD管道:软件开发的起源与发展历程,云的概念就很难落地; 云的发展加速了云技术的演进和丰富。

在需求不断扩大的今天,与之相伴的生产力工具无疑开创了软件工程领域高度自动化的先河,这是好的一面; 流水线环境带来了效率,但也让许多开发人员不再专注于大型机器的零部件,而是疲于满足需求,而较少关注创新。 这一趋势值得业界警惕。 毕竟,高度文明成为空中楼阁,成为技术进步不愿过去的地方。

文/陈绪义,高级工程师、科技专栏作家、中国计算机学会会员本文发表于《创意世界》2022年第5期

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多