当有版本通过持续集成流水线进行构建之后,就可以将其部署至某个具体的环境,这就需要自动化部署技术,将这个自动化部署和持续集成流水线连接起来,就可实现持续部署。如图1所示,实现持续部署的前提是至少拥有一条完整的自动化构建、部署、测试和发布流程。

图1 持续部署

 

传统软件的部署模式通常有如下几种。

□ 通过纯手工的方式来部署应用软件。

□ 在开发人员完成代码以后,才在生产环境做部署。

□ 运维人员在生产环境通过手工方式修改配置。

这 3 种方式的执行效率较低,发布质量也没有稳定的保障,极大地限制了IT系统对业务的能力支撑,坚持传统部署模式,已经不能满足灵活多变的市场需求。DevOps 持续部署的适时出现,既解决了执行效率问题,又保障了交付质量。

持续部署作为 DevOps 流水线上的重要环节,在实施的过程当中有哪些场景是需要重点关注的,我们来看一下持续部署的关键要素有哪些。

(1)部署的执行者必须参与创建部署的过程,也就是说工程师需要完全参与每一个具体的过程,亲身经历部署过程。

(2)在整个部署过程当中,应该详细、明确地记录下每一个环节的所有经过以及相关活动的输入输出,通常不会选择去删除整个部署过程当中相关的或产生的任何数据,而是采用转移的方式,统一保存到规划好的地方,这样一方面方便做数据的回滚,另一方面也方便在对历史版本去做追溯的时候能够有据可查。

(3)持续部署是整个团队的共同责任,我们通常认为部署是运维人员的职责,而 DevOps 强调的是开发、运维一体化。每一次部署目标都是团队内的成员共同努力的结果,持续部署的本质是对团队交付成果的一次检验。

(4)新的部署动作应该采用预发布的方式,在准生产环境或者测试环境预先部署并验证,避免给生产环境带来不可控的直接影响。对应方法有蓝绿发布、金丝雀发布等模式。

(5)积极面对快速失败。DevOps 方法论里一直在强调敏捷,敏捷就代表着快速,越快的失败,能够越快地给我们带来结果的反馈,也方便我们能够尽快地发现过程中出现的任何问题,促进问题的分析定位和修复。

(6)统一的启动脚本。持续部署通常会面临同一应用程序在不同阶段的不同环境,在不同环境采用不一致的启动方式,非常容易导致测试环境和生产环境的不一致,因此 DevOps 要求准备统一的启动脚本,并通过传参的方式来调用,从而保障同一应用程序在不同环境的一致性部署。

原文地址:http://www.cnblogs.com/tiduyun/p/16923379.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性