软件需要速度。持续集成和持续部署(CI/CD)保证了速度(和更好的质量),但仅仅安装管道是不够的。CI/CD需要不断的改进,以确保你在软件开发生命周期中获得最大的收益。下面是我们为确保CI/CD管道快速而高效地运行而采取的四个步骤,你不妨根据这四个步骤来调整你的流程。

先学基础知识

为了确保最大限度地利用CI/CD管道,首先必须了解许多活动部件。这是一个简单的步骤,但至关重要的是,每个人都好好地掌握术语。

一切都是从一个管道开始的,它是分割成不同stage的作业的集合。代码更改通常称为提交,而作业只是指运行器必须执行的指令。运行器是单独执行每个作业的代理或服务器。由于微服务和Kubernetes集群架构的优点,运行器可以根据需要上下旋转。这就有了stage,这指的是构建或部署作业的不同进程。同一stage的作业可以并行完成。

CI/CD管道使用YAML文件配置。你需要设置管道的参数:执行什么以及当进程成功或失败时会发生什么。多个领域具有依赖关系的复杂项目(微服务是一个很好的例子)会需要一个多项目管道。

最后,有几个更宽泛的术语需要了解。版本控制跟踪随着时间的推移而发生的更改,如果需要,可以方便地切换回早期版本。审计跟踪追踪源代码更改。协作指的是整个团队可以很容易地访问代码以获得改进、建议和更新。Lint工具有助于确保YAML文件有效,并向新用户提供帮助。

开始自动化

CI/CD是一个简单的术语,但表示了一个非常不简单的过程。事实上,大多数CI/CD管道至少有9个步骤。我们已经在GitLab上证明了可以在20分钟内启动并运行管道,秘密武器就是我们所说的Auto DevOps。选择一个内置自动化的CI/CD解决方案可以简化一切。

在很短的时间内,我们将应用程序构建到容器中,检查漏洞、依赖关系和许可证;将其部署到Kubernetes集群,并设置主机名以及DNS和TLS证书(如果需要,这些证书将自动更新)。最后,对代码进行性能测试。

想在家试试这个吗?下面是轻松连接到Kubernetes所需的代码:

kubectl gitlab bootstrap gitlab-project-id。

得到的结果是一个URL,你可以按照该URL查看Gitlab项目中Kubernetes集群的更多信息。

但这并不是说在任何情况下都必须自动化。对于部署过程的每个组件,你都应该可以使用底层源代码,这样你就可以决定哪些作业需要自动化。

停止等待build

没有什么比坐着等待管道运行更烦人了(浪费时间!)。有一个解决方案:自动缩放的运行器。自动缩放带来灵活性,以及CI/CD管道的实时供应和需求。如果你做得对的话,它实际上可以消除管道故障。

要开始,你需要一个实例,我们的运行程序是免费的,并且是用Go编写的,因此它可以在任何平台上运行,你可以在其中构建Go二进制文件(包括Linux、OSX、Windows、FreeBSD和Docker)。你需要配置运行器,以便按需创建机器。作业完成后,运行器可以等待下一个作业或自动删除。你也可以在它们被关闭之前,说明你希望他们在“Idle Time”里待多久。有了自动缩放的运行器,不会有一丁点儿浪费。你的基础设施将达到一个绝佳的平衡——不太多,不太少,正好满足你的需要。

自动缩放的运行器让开发人员专注于编写代码,并将运维专业人员从基础设施的担忧中解放出来。这是一个很容易就实现的双赢。

简化流程

不幸的是,没有人能够幸运地“在真空中”编写代码。因此,开发人员必须确保新代码不会影响任何依赖的微服务,这意味着要进行更多的测试。完成所有所需测试的最有效方法是建立跨项目管道。

这是一个简单的过程,只需在创建项目管道时触发跨项目管道。在GitLab中,只需在CI配置文件中执行一个触发器作业即可。将“trigger”关键字添加到YAML CI文件(该文件概述了CI/CD阶段的顺序)会触发创建跨项目管道的桥接作业。可以在这些下游管道中设置参数并定义要使用的分支。

如果你担心能否跟踪所有顺序和并行作业以及下游管道的运行情况,那么管道图将为所有移动部件提供直观的指导。

原文链接:

https://thenewstack.io/four-steps-to-set-up-a-ci-cd-pipeline-in-20-minutes/

信息化和软件服务网 - 助力数字中国建设 | 责编:左右