建立强大的CI / CD管道

发布于:2021-01-07 10:14:03

0

131

0

持续交付 持续集成 devops

建立更强大的CI / CD管道并不容易。它需要大量的时间,工具以及许多方面的贡献。但是,如果做得正确,它就有潜在的回报,值得花时间去做。好处包括自动代码测试,更快的软件迭代,满意的客户,竞争优势以及生产力更高的团队,仅举几例。

无论是按需还是每天至少一次,越来越多的软件开发团队都将迁移到一个或多个级别的更连续的集成(CI)和连续部署(CD)的环境。现在,组织已经习惯了以较小的数量和更频繁地交付软件的需求,以帮助减轻“尽早失败,尽早修复”的风险。然而,尽管CI / CD的采用可能越来越广泛,但在实践中实现理论收益仍然是许多挑战。

快速建立起这些好处的一个很好的起点,即建立更强大的CI / CD管道。CI使构建和测试代码的过程自动化。所有开发人员都将其更改合并到版本控制工具中,从而更快地发现缺陷。CD是DevOps的一种实践,其中代码更改不断地传递到测试或生产中,从而以CI的工作为基础,并更快地将软件发布给用户

实际上,这要归功于更好的开发流程可见性,减少的人工错误,更快的反馈以及节省的时间。可靠的CI / CD管道还应该支持更稳定的代码,更好的可预测性,因此更少的代码中断。集成意味着所有工作代码段都能更好地融合在一起。

强大的CI / CD管道的属性

听起来似乎很明显,但是强大的CI / CD流程的关键是自动化,这不仅是为了减少错误并加快流程,而且还有助于克服任何文化上的阻力。如果不最大化自动化程度,集成将为团队带来更多的时间和工作量。团队需要经常合并更改,并通过自动测试进行验证。他们需要确定管道中要包括的内容和使其自动化的优先级。由于每天都要进行多次代码更改,因此测试套件需要重点放在将产生最大影响的内容上,而不是冒险让开发人员将时间浪费在专注于较少的问题上,并冒着逃逸到生产中的缺陷的风险。

在许多组织中,自动化测试的“健康”通常是成功进行CI / CD的障碍。测试环境本身以及代码更改验收需要自动化,并应用于不同类型的测试:单元测试,构建验收,尤其是回归测试。

通过将验收测试与正确的CI实践相结合,快速,及时的反馈变得更容易实现。反过来,这减少了进入生产的缺陷数量,并且团队更有信心他们可以在准备就绪时立即交付高质量代码。这种方法还减少了对等待客户提供反馈的依赖。

可能会影响成功的CI / CD流程的其他因素包括过时的环境,因此在实施CI / CD战略之前,有必要对其进行审查并在需要时进行更新是有意义的。其他问题包括管道中的盲点。例如,一段时间内的作业持续时间不一致,作为构建验收测试作业的一部分而执行的不一致的通过或失败测试结果,以及不必要地重复的任务。因此,识别和解决这些问题至关重要。

同样重要的是,用于支持CI / CD管道的任何测试或其他工具不仅适合业务,而且还适合功能团队的技能。另外,在引入新工具时,应咨询团队并入职(通常如此),否则,不可避免地会有一些阻力。工具还应该与特定的正在进行的开发过程相匹配,并且适合现有的过程,而不是造成破坏或更改。实施新的或更新现有的CI / CD管道时,请从一小组稳定的活动开始,识别并解决问题,然后再构建更多层并向外扩展。在实施关键业务场景时,请使用测试自动化来确保测试无缺陷,将小型测试套件集成到CI管道中,并跟踪多个周期。只有这样,才能更广泛地引入管道,并且要注意不要在没有首先获得对它们的信心的情况下将太多的测试脚本推入CI中。

作为测试自动化转移权利的一部分,持续监控应与CI / CD携手并进,不仅可以隔离重复出现的问题,还可以分析对业务的影响。从那里开始,使用该数据来改进流程。监控不仅需要事后考虑,还需要内置到整个CI / CD图片中,并且要具有实时可观察性和可导出的数据,以进行智能的根本原因分析。查明对业务有实际影响的测试结果至关重要,而不是被测试结果的噪音所淹没。测试值是这些天的游戏名称。

建立强大的CI / CD管道的所有步骤都将需要时间,重点以及可能需要跨人员,流程和工具进行的额外投资。但是,潜在的回报-更快的软件迭代,更快乐的客户,更好的竞争力以及可能更有动力的团队知道他们正在创造的就是他们的市场需求-是值得付出的努力。