CI/CD系列之我们的交付物到底是什么?
2023-12-26 21:02:53
前言
近年来,CI/CD已被各大公司广泛采用。究其根本,这与整个IT工程圈逐步走向标准化、工程化是息息相关的。作为技术人员,了解整个CI/CD的思想和技术范式,成为了工作中不可或缺的一部分。整个CI/CD分为持续集成(Continuous Integration)和持续交付(Continuous Delivery)两个部分。在CI/CD系列文章中,我会为大家深入剖析CI/CD的整体流程。在本文中,我们主要聚焦在CI/CD的一个重要概念——交付物形态。
CI/CD交付物的历史形态
说到交付物,很多人往往第一时间想到的是软件产品,毕竟软件产品才是用户最终拿到的东西。然而,在软件领域,交付物形态随着技术发展而不断变化,而且最终给用户的交付物不一定是软件产品。
回顾历史,在传统的软件开发模式中,软件交付物形态经历了二进制分发 、源码分发 以及持续交付 三个阶段。
二进制分发
在早期的软件开发时代,软件产品分发给用户都是二进制文件。在2000年以前,基于Windows的软件产品大多是直接把可执行文件分发给用户。当时的用户会把从网上或实体店铺购买的软件的CD光盘放到自己的电脑中,通过安装程序把软件安装到机器上,完成交付。
这种分发方式的缺点是无法及时更新软件版本,如果用户想要安装新版本,需要再次下载或购买新的光盘。因此,二进制分发的模式逐渐被更灵活的源码分发模式所取代。
源码分发
源码分发可以实现更便捷的版本迭代。源码分发的方式是在网上公开软件的源码,用户通过网络下载源码,然后在自己的机器上编译安装软件,以此完成软件的交付。在当前流行的开源软件中,比如Apache、Nginx,很多都是以源码分发的方式分发给用户的。
源码分发允许用户定制和修改软件,而且可以更方便地进行版本迭代和升级,但源码分发也存在一些缺点:
- 需要用户的机器具有编译环境,而且需要用户具备一定的编译和安装经验。
- 如果软件依赖的其他软件也采用源码分发,那么用户需要安装非常多的组件才能运行软件。
- 用户无法方便地回滚到之前的版本。
随着虚拟化技术的发展,一种新的交付物形态——Docker镜像,逐渐成为主流。
Docker镜像
Docker镜像是包含了软件运行所需的所有依赖库和文件的可执行镜像文件。Docker镜像可以非常方便地被部署到任何支持Docker的平台上,而且Docker镜像可以非常方便地进行版本管理和回滚。
Docker镜像的出现,标志着软件交付物形态进入了一个新的阶段。在容器化部署逐渐成为主流的今天,Docker镜像成为了重要的交付物。
小结
在本文中,我们详细介绍了CI/CD交付物的历史形态,从二进制分发到源码分发再到Docker镜像,软件交付物形态随着技术发展而不断变化。在容器化部署逐渐成为主流的今天,Docker镜像成为了重要的交付物,这也为Docker镜像的制作提出了更高的要求。在下一篇文章中,我们将详细介绍Docker镜像的制作过程。