发布于:2021-01-08 11:07:52
0
611
0
持续集成和持续交付(CI / CD)缩短了反馈周期,可帮助公司发行更多软件,同时最大程度地减少错误,提高开发人员的生产率并改善客户的情感。获取正确执行CI / CD管道的四个重要步骤。这可能是一个严格的过程,但这是值得的!
软件行业正朝着强调快速迭代的新方向发展。较长的发布周期是经过充分测试和稳定的过程,但要付出一定的代价。对客户反馈的反应很慢,实施补丁程序的发布可能很复杂。通过缩短发布周期,资源有限的小型团队可以使用生产发布来快速收集大量数据。大型公司可以利用市场响应能力,缩短问题解决周期并更快地进行创新以改善用户体验。
持续集成和持续交付(CI / CD)缩短了反馈周期,可帮助公司发行更多软件,同时最大程度地减少错误,提高开发人员的生产率并改善客户的情感。自动化和测试对于此过程至关重要。让我们检查一下CI / CD流程的工作流程是什么样的。对代码的更改将经过测试阶段,然后部署到10%的客户中。该代码将经过另一个自动周期,以检查是否可以安全发送给其余客户。此后,代码将进入自动化/ QA阶段,在此阶段将运行时间进行监视。最后,分流阶段允许开发人员集成反馈并解决问题。
CI / CD可能是一个严格的过程,但对于各种规模的开发团队而言,这都是值得的。但是,这是许多公司都在谈论却难以执行的概念。作为CI / CD管道的一部分,公司需要执行以下四个步骤:
集成:频繁合并更改并通过自动化进行验证
团队面临的挑战之一是接受整合过程将是艰巨且耗时的。在此阶段,开发人员构建的许多东西都旨在使代码能够面向未来,以防下游问题。开发人员很少编写测试来确认他们正在开发的代码正确。相反,他们为将来有人更改代码编写测试。当确实发生更改时,测试将在正确的时间失败,并防止其他人引起更多问题。
成功的集成阶段可以归结为变更控制流程,该流程使开发人员可以尽最大努力,而对其他所有事物的干扰最小。适当的控制过程包括以下步骤:
提出更改并概述问题。
对变更进行同行评审,可以采用设计反馈或用例建议的形式。
通过自动测试验证更改。
确定是否可以合并更改。
部署:准备就绪后立即交付代码
持续的开发无需指定的发布经理按部署按钮或注销每天要推出的更改。取而代之的是,团队控制他们的项目,而贡献者则负责部署其变更。
连续运输的部署阶段促进了可重复的构建。在构建软件时,依赖于不能很好控制的依赖关系的组合。不幸的是,如果版本或依赖项发生更改,则使用该软件构建的应用程序可能无法运行。
在部署阶段,将风险降至最低取决于部署策略。尽管此过程可能具有挑战性,但付出的努力是有回报的。最简单的方法是部署到暂存环境并验证代码是否正常运行。尽管此方法有效,但无法扩展。相反,更好的方法是将更改推广到较小比例的客户,并在出现问题时停止更改。
降低风险的另一项贡献是阻止尚未通过验证的部署。禁止任何人规避必需的测试。许多公司都有合规性法规,如果绕过更改控制流程,它们会阻止更改的部署。虽然这是一个容易设置的规则,但需要QA勤勉尽责。该过程很耗时,但结果是开发团队和客户满意,他们可以按预期使用应用程序。
监视和跟踪:了解事情的发展方向
监视阶段有一些基本规则:
从头开始构建监控。
将仪表构建到应用程序中,而不是放在顶部。
实时执行可观察性。
有了这样的结构,开发人员便有必要的基础来实施两个重要的质量检查最佳实践:高级跟踪和根本原因分析。这些不仅在应用程序级别而且在系统级别都暴露了代码问题,从而获得了深刻的见识。
尽管图形和日志可能说明症状,但它们并不能确定根本原因。例如,客户加载了一个应用程序,单击一个按钮,然后该调用触发了错误的API服务。开发人员看到应用程序中的错误,API服务看到错误,但是它本身是否具有足够的上下文?有时。但是最好知道应用程序中发生的事情的详细信息和上下文。这种高级跟踪是必需的。
在复杂的应用程序中,可能有很多事情在通讯,从而导致此错误。原因可能与单击应用程序中的按钮有关,或者可能位于应用程序甚至服务器端内部,这就是为什么找出根本原因并进行修复如此重要的原因。为了解决该问题,开发人员需要知道错误的发生时间和位置,以及何时引入代码更改。如果开发人员可以在几秒钟内知道问题的根本原因,他们可以使分类工作流程自动化。他们可以将变更部署到生产中,并且工具可以告诉他们错误是否增加。他们可以决定更改是安全的还是需要回滚。
反馈:确定用户的需求和问题
客户支持是CI / CD管道中的有用元素。保持自动化和警报很重要。当有监视工具可以自动告知开发人员时,为什么要要求开发人员重现问题?每10个客户中就有9个不会抱怨,因此等待客户标记错误并不是一个可靠的策略。在客户告知客户之前,企业应该了解问题。错误是与客户相关的问题的第一个迹象。
对反馈请求做出反应也很重要。客户的意图是什么?客户对项目成功的承诺程度如何?上下文至关重要,因为上下文可以加快分辨率并减少开发人员和客户体验的磨擦。有一种无需收集客户步骤即可收集数据的技术。此阶段的目标是优化解决方案周期。如果企业可以识别错误并将其连接到客户,则他们可以与受问题影响的客户进行沟通。很多问题并不难。这是关于快速有效地迭代。
使用CI / CD从较长的发布周期过渡到较短的发布周期可能会对开发团队造成挑战。但是,快速,高效的迭代和改善的客户情绪所带来的结果值得现代化进行。
作者介绍