预备好在CI
许多公司都力争抢先地实施继续集成和继续交付(CI/CD)管道,以简化他们的软件开发上班流程。很少有人采取额外的步骤来智能化继续部署,这是一种经常使用CI/CD管道将更改继续推送到消费中的做法。可以了解的。
每天或每小时频繁地将代码推送到消费环境的想法让我毛骨悚然。
但是,过去几年出现了很大变动,越来越多的devops团队正在驳回技艺、通常和工具来智能化高品质和牢靠的部署。本文解释了继续交付和继续部署之间的区别,而后提出了devops团队在CI/CD管道中智能化继续部署之前应该做的五件事。
继续交付与继续部署
Capgemini的矫捷和开发运营担任人KulbirRaina分享了一个有助于咱们辨别继续交付和继续部署的定义。他说:“继续交付是软件颁布到消费的端到端智能化流程,而继续部署是经过预先测试的流程将流程中的软件包推送到消费后继续集成的智能化流程。”
智能化消费部署具备更多危险,由于结果会影响业务、客户和最终用户。假设devops团队选择智能化部署,则部署环节必定包含继续测试和弱小的失误处置。否则,部署或许会在消费中发生性能疑问、无法靠的系统、安保破绽和毛病。
SPR软件工程总监MikeSaccotelli补充说:“运转继续交付模型与继续部署模型的组织之间的重要区别在于其构建和部署环节的成熟度和复杂水平。”
Devops团队可以经常使用以下清单来预备更新CI/CD管道以启动继续部署。
1. 评价商业利益
作为一项准则,继续部署可以运行于许多运行程序,甚至可以运行于最受监管的行业。Buildkite的联结开创人兼联结首席口头官TimLucas说:“每个名目都可以驳回继续部署,最好的组织设定目的,将尽或许多的名目转移到这种形式。即使在金融和受监管的行业,大少数名目都可以驳回这种形式。咱们甚至看到智能驾驶汽车公司启动继续部署。”
虽然devops团队可以在许多名目中实施继续部署,但疑问是,它在哪里提供了弱小的业务案例和显着的技术长处?频繁部署性能和修复的名目,以及现代化架构简化智能化的名目,更有宿愿过渡到继续部署。
2. 预备开发团队
Lucas分享了在迁徙到继续部署模型之前应该成为软件开发环节一局部的一些先决条件。他说:“继续部署是真正的矫捷性,是从代码更改到消费的最快方式。它须要一直将主分支坚持在可交付形态、智能化测试以及您可以信赖和有信念的高品质工具。”
宿愿智能化继续部署的开发人员的一些开发职责和规定包含:
Saccotelli补充说:“继续部署的前提是开发团队对品质代码有更成熟的了解,这样这个环节才干成功。假设代码很差或未经测试,那将创立一个无法靠的系统,并迅速将失误和破绽推向消费环境。”
3.预备运营团队
因此CI/CD管道运转并将新代码部署到消费环境。这能否象征着devops团队很分明,他们的上班曾经成功,每团体都可以进入下一个版本?
没那么快。虽然开发人员为确保构建不会终止、智能化代码测试以及控制在消费中启用哪些代码所做的一切上班,但依然存在一些部署或许造成消费疑问的危险。监控业务服务、运行程序和系统是devops中的一项运营职责,他们允许继续部署的才干早在启用部署智能化之前就开局了。最佳通常包含以下内容:
4. 跨团队和工具集成ITSM和上班流
即使曾经建设了一切开发和运营才干,咱们还没有成功。假定devops团队提交代码,继续部署将更改转移到消费中,并且运行程序性能监控工具正在运转。正确的devops团队成员多久会收到警报,以便他们可以对事情启动分类、考查基本要素并极速处置任何疑问?
Lucas分享说,在转向继续部署时,“不稳固的测试是第一大危险”。他罗列了无法靠的CI/CD工具、蹩脚的消费监控和随叫随到的做法,以及工程和IT之间不足真正的协作同伴相关作为进一步的危险。
假设没有监控、AIOps、IT服务治理(ITSM)、矫捷和通讯工具之间的上班流和集成,devops团队照应和处置疑问的期间或许会落后于其部署速度。这种差距或许会形成压力,并削弱开发和运营之间的同伴相关。最佳通常是确保集成IT工具和上班流程,以便开发运维团队能够跟上继续部署发生的任何疑问。
5. 定义基于危险的决策门和KPI
Copado产品营销总监KristinBaskett提供了继续部署所需的一个关键要素。她说:“虽然莽撞的智能化或许会阻碍系统,但正确的智能化可以协助组织成功真正从devops中受益所需的灵敏性和分歧性。当开发人员可以智能集成代码时,协作就会获取改善。经过投资于测试智能化和品质门控,组织可以更快地启动翻新,同时降低危险。”
除了测试智能化之外,Baskett还提到了实施应该裁减到其余危险评价的品质门。当构建触发继续部署时,品质门会实施业务规定,以确定哪些部署可以投入消费,哪些或许须要合规审查或治理签字。
允许继续部署的其余最佳治理通常包含开发devops关键绩效目的(KPI)、方式化反应循环和制订沟通战略。
继续部署可以发生许多业务和技术长处,但纪律严明的DevOps团队和IT组织应确保在经常使用智能化提高部署频率之前领有最佳通常和工具。