赞
踩
导读:DevOps 是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间,其中持续集成和持续交付是 DevOps 里面非常重要的一环。本文讲述了达到自动化持续交付需要做的准备工作,流水线构建方法和最佳实践。
如果觉得文章讲解的不够透彻,可以看一下我发在B站的教程视频:
持续交付是一组能够帮助软件开发团队极大的提高其软件交付的速度和质量的模式和最佳实践组成。
不同于低频率发布相对较大的版本,实施持续交付的团队希望比通常更频繁地将更小批量的变更投入生产, 例如每周,每天或一天之内就能够发布多个版本。
这种软件交付方式可以带来许多的好处,就像市场领导者 Facebook,LinkedIn 和 Twitter 那样,他们频繁地,以迭代方式发布软件,并取得了巨大的成功。 然而,要达到这种结果,需要对您开发和交付的方式进行一些潜在的重大变革。
本文将详细地为您解释这些要求,为那些准备从传统发布方式转向持续交付方式的开发和运维团队提供指导性的建议和最佳实践案例。
持续交付将在以下方面为您提供帮助:
尽可能快地交付软件,尽可能早地将有价值的新功能运用于生产
提高软件质量,系统正常运行时间和稳定性
降低发布风险,避免同时在测试和生产环境部署失败
减少浪费,提高开发和交付过程的效率
使您的软件始终处于生产就绪状态,以便您可以随时部署
为了达到目的,您首先需要有以下基础:
自动化测试等开发实践
软件架构和组件设计,可帮助做更频繁的发布,而不影响用户,包括功能标志
工具如源代码管理,持续集成,配置管理和应用发布自动化软件
自动化和脚本化,使您能够以有限的人为干预重复构建,打包,测试,部署和监控软件
组织,文化和业务流程的变化,以支持持续交付
听到持续交付这个词,有些人的第一个担忧就是这是否意味着软件质量标准将会下滑,否则团队需要走捷径才能实现软件的频繁发布。
事实恰恰相反,为了支持持续交付而采取的措施和体系几乎肯定会提高软件发布的质量,并且在软件版本出错时将给予您额外的安全防护。
您的软件仍然会经历与现在相同的严格测试阶段,可能包括手动质量检查测试阶段。持续交付只是让您的软件以最严格和最有效的方式在您设计的流程中流转,从开发到最后的生产。
尽管在持续交付流程中采取手动步骤是非常有效和现实的,但自动化是加快交付步伐和缩短周期时间的关键。
毕竟,即使拥有再丰富资源的团队,手工构建,打包,编译,测试和部署软件也是不可行的,尤其是在软件很大或者复杂的情况下。
因此,最重要的目标应该是使开发者和生产环境之间的大部分路径自动化。 以下是您应该专注于自动化工作的一些主要领域。
需要实现自动化的第一件事就是将开发人员的源代码转换为部署就绪制品的这个过程。虽然大多数软件开发人员使用诸如 Make,Ant,Maven,NuGet,npm 等工具来管理其构建和打包,但是许多团队在制作好准备发布的制品之前仍需要执行一些手动步骤。
这些步骤是实现持续交付的重大障碍的代表。 例如,如果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。