当前位置: 首页 > 网络应用技术

一篇文章了解敏捷开发的发行策略

时间:2023-03-07 01:59:29 网络应用技术

  随着数字化,信息化,网络和情报的普及和开发,企业对软件服务的质量和在线速度有越来越高的要求。传统的研发模型很难满足要求。企业的开发和维护模型已逐渐转化为敏捷性和DevOps。敏捷性和DevOps概念被广泛认可和加速。本文主要描述基于敏捷性和DevOps的发布策略的相关内容。

  发行策略是否发布了计划,发布计划和发行方法?是蓝绿色出版,滚动发行和灰度出版我们经常听到的策略吗?让我们一起看看。

  关于“发布”的含义,让我们首先看一下整个软件开发的生命周期的位置。如图所示,该版本是该软件全生命周期中的最后一圈,直接面对最终用户。

  图1软件研发过程

  为了更好地理解交货,我们将一一看看各个方面。

  百度百科全书认为,“策略”是为了实现一定的目标。首先,根据可能的问题提前制定了许多相应的方案,并且在实现目标的过程中,根据情况的开发和变化制定了新计划。或根据开发和更改选择相应的方案在情况下,最终实现了目标。简而言之,策略是解决问题。详细说明,该策略是为有问题提供业务目标的业务目标。

  我们查看一些关键字:目标,解决方案和形式的发展变化,即策略是动态的变化,目标始终基于目标。

  基于上述解释,在制定发布策略时,我们需要先实现目标。敏捷软件开发概念的核心是敏捷声明和敏捷的原则,可用于指导出版两个原则:

  a)我们最重要的目标是通过早期和连续交付有价值的软件来满足客户。

  b)经常运送工作软件(几周或两个月)往往需要较短的周期。

  从慷慨的角度来看,所有企业的发行都是创建价值,即上述敏捷性原则中最重要的目标a)尽快将其交付到该软件。“尽快交付”是缩短周期并缩短时间和大约周期的长度,在敏捷原理中b)指出,可以相距几周或两个月;可以看出,可以看到发布策略的具体目标应该是释放高频和低风险的产品。

  其次,在即将发布时不会制定发布策略,并且应该是项目计划阶段的一部分。负责从研发到启动过程的所有相关团队负责所有相关团队的人。。内容是在整个产品的生命周期中与发行相关的事项,包括以前的三个阶段,中性和后发行。发行前最重要的是发布计划。在发布过程中,监视,日志管理和问题响应计划。发布后的维护计划应形成文档记录。

  最后,在整个生命周期中,随着需求的变化,发布策略将同时与项目动态变化,并且必须同时更新和维护文档。

  在理解发布策略之后,我们主要介绍实现高频和低风险释放目标,发布分支和发布方法的核心要素。

  使用适当的版本可以减少执行时间,这是高频发布的先决条件。团队应根据产品类型,业务释放周期要求,企业自动化和团队功能和特征选择不同的分支策略。是两种类型的分支:主释放和分支释放。

  主要版本

  主要版本是用主代码发布软件。所有新功能的开发均已提交给后备箱。如果有必要的话,主干上的代码将直接部署到生产环境中。这可以将主代码保持在可以随时发布的状态。

  根据主要版本,团队可以选择两个相应的模型:主要开发和分支开发。无论是开发模型,您都必须做两个点:首先,提早提交,并尽快将代码提交给中继线缩短开发分支的生存周期。由于分支周期的时间越长,累积的代码越多,提交到后备箱分支机构时冲突的机会就越大,这将增加合并的时间。分支发展的分支。该行业的声明并不统一。“连续交付2.0”中给出的意见少于3天,可以结合其自身的业务状况来参考。要实现一个短周期,我们需要计划当初始需求分配时需求的粒度。可以减少最终合并期间代码冲突的问题。

  分支发布

  分支的分布是专门从中继线的分配分支中撤出的。这可以在发布时继续开发,并且不会受到版本的发布的影响。新版本的发行版本后,有一个修改分支后,缺陷可以同步到中继线。修改后备箱后,它也可以合并到释放分支。

  发布分支机构时要注意两个点:一个是分支的存在周期不应太长。如果在释放分支上修改了缺陷,则应在及时将其同步到主分支;分支应从主分支中得出,以确保代码源的唯一性。

  总而言之,我们看到它是主要版本还是分支版本。如果您想实现高频和低风险,那么重要的是要执行三个控制:

  首先是控制分支的数量。越越越好,最好只成为主分支。

  第二个是控制分支的生存周期,越短越好。

  第三是控制发行周期,越短,越好。软件释放频率越高,发行周期越短。到达一定的释放频率后,无需发布分支,主要版本可以是发行。

  开头提到的蓝色绿色释放,滚动释放和灰度释放通常用于发行策略。它可以降低释放的风险并实现零关闭释放。它是发行策略中的核心内容。

  蓝绿色释放

  蓝色和绿色的发布是一种部署方法,可以确保在不间断服务的情况下启动系统。“蓝色”和“绿色”代表两个独立的环境。使用完全相同的主机群。有两种用途策略:

  1.新版本发布后,蓝色主工作人员和绿色主工作人员同时提供服务;

  2.当您需要升级版本时,首先从负载列表中删除蓝色主单元并升级,而绿色主装置仍在外部提供服务;

  3.蓝色主装置的升级将切换到绿色主机,然后将绿色主装置从负载列表中删除到升级;

  4.当蓝色绿色主机升级时,绿色主工作人员将恢复到负载列表,两组主机同时为外界提供新的服务。

  图2蓝色和绿色出版

  蓝色和绿色的释放的优点是可以实现零停机的释放,可以实时升级和撤退。缺陷需要双主机资源,并且切换已满。如果新版本有问题,它对用户体验有很大的影响。

  滚动释放

  滚动版本是在发布过程中停止一个或多个主机的服务,并在版本升级后重新提供服务。然后选择下一批升级的主机,直到所有主机升级为止。

  滚动发布的优点是用户体验很小,体验更光滑。缺点是该版本被缓慢替换,并且发布和撤退相对较慢。在滚动升级期间,新版本和旧版本共存。如果发现问题,很难找到它是新版本还是旧版本。

  灰色释放

  灰色版本是为了允许某些用户继续使用A版本,并且某些用户开始使用版本B。如果用户对B版本不反对,则逐渐扩展范围并将所有用户迁移到版本B。Gray版本是扩展名。金鸟的释放以及金鸟的释放是灰色发行的初始阶段。对于需要分割多少个阶段,每个阶段的用户数量,它是根据商业和产品特定的。条件。以下图中的内部用户可以被视为金鸟用户。

  图3灰色释放

  灰度的好处无需停止。同时,只有一些用户获得新版本。如果新版本有问题,则用户体验的影响很小,这可以确保整体系统的稳定性。缺点是发布时间将相对较长。升级期间的流量控制在资源需求方面相对较高。

  实际上,无论哪种释放方法,降低发布风险的最佳方法是真正发布练习。应用程序在不同的测试环境中的应用越频繁,这表明测试环境的可靠性越多,在生产环境中遇到的可能性就越小。

  高频和低风险的释放已成为企业的主要趋势。根据云计算开源行业联盟发布的2021年“中国DevOps调查报告”,国内企业的频率的频率为一个星期至1个月。

  图4部署频率的当前状态分布

  调查显示,每天只有16.21%的企业可以多次部署。此外,在生产环境中,每1到1周一次部署一次有6.19%的企业;28.25%的企业在生产环境中的生产环境部署中平均有1到2周。在生产环境中,每2到1个月每2到1个月一次部署32.90%的企业;部署频率的企业超过9.33%。

  参考附录

  1.耶兹谦虚。大卫·法利(David Farley)。连续交付:发布可靠软件的系统方法:人们的帖子和电信出版社。

  2. Qiao Liang。继续交付2.0:由业务领导的DevOps Essence。北京:人民邮政和电信出版社。

  3.“关于中国德克普普索(2021)地位的调查报告”。

  本文分享了华为的真诚云社区,作者:敏捷小米。