当前位置:   article > 正文

DevOps落地【基础篇】--->DevOps部署方式

devops部署

DevOps实践中的部署

1. 部署

部署是整个持续交付环节中非常重要的一环,是否能够平稳而快速地将新的版本发布到环境之中是服务交付成功与否的重要依据。而诸如蓝绿部署、金丝雀部署等方式也为传统方式的部署提供了新的思路。同时,架构和基础设施对部署的影响也应该考虑,合适的架构和基础设施对于部署会起到很大的促进作用。

2. 部署方式

传统方式下的部署往往使用新的程序版本代替旧的程序版本。在这里插入图片描述

  • 第一步:停止运行Tomcat或者WebLogic等应用服务器
  • 第二步:替换对应的Web应用的war文件或者部分文件
  • 第三步:重新启动应用服务器
    这种部署方式存在一定的问题
  • 问题1:不管部署速度有多快,单纯地使用这种方式都会导致服务不可用,不可用时长有可能是几秒,也有可能是几分钟。
  • 问题2:在传统方式中,经过漫长的开发形成了巨大且复杂的应用程序,其初始化往往需要时间,这也会拖慢部署节奏。
  • 问题3:一旦出现问题,回滚机制的一般做法就是将旧的版本按照同样的步骤再重复一遍,这也会造成服务不可用的情况。

1. 蓝绿部署

  1. 蓝绿部署是一种广泛被采用的开发和发布理念。在这种方式下,生产环境需要两个副本,一个是蓝色副本,另一个是绿色副本。比如当前使用的是蓝色副本,与此同时绿色副本的环境也已经通过了最终测试而准备就绪,我们通过切换到绿色副本的环境来保证所有的系统流量或者用户访问都会与绿色副本连接,而蓝色副本现在则空闲下来,使用的是绿色副本。
  2. 蓝绿部署一般通过增加特性开关(比如环境变量)来进行切换(到底是绿色副本提供服务还是蓝色副本提供服务)。这个过程中,整体流量的控制是蓝绿部署的重中之重。
  3. 蓝绿部署的挑战点:对于很多不可逆转或者难以进行回滚的操作,比如数据库结构升级,再加上积累了大量的部署内容后进行一次性部署,可能会导致必需回滚的风险升高。

2. 金丝雀部署

  1. 我们在发布一个新的版本,确保这个版本即使发生问题也只会影响很少的或者可控范围内的用户。这样大部分用户仍然使用旧有功能,只有很少一部分选定用户会受到新版本的影响,这个影响范围可控的发布版本就是金丝雀部署的版本。若此版本没有问题,之后可以逐步扩大范围把用户全部迁移至此版本。
  2. 金丝雀部署的重点在于快速地获取反馈,它更多的时候作为部署之前的检测者存在,在一些关键功能上线之前,选取一部分流量或者用户进行检验。金丝雀部署与灰度发布非常相似。

3. 部署常用工具

作为运维自动化部署工具有:Ansible、Chef、Puppet、Saltstack。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/729373
推荐阅读
相关标签
  

闽ICP备14008679号