5.5.4 持续部署

对于持续交付整体来说,持续部署非常重要。

1.持续部署方案

容器技术是目前部署中最流行的技术,常用的持续部署方案有Kubernetes+Docker和Matrix 系统两种。容器技术一经推出就被广泛地接受和应用,对比传统的虚拟机技术,其优点主要有:

  • · 容器技术上手简单,轻量级架构,体积很小;
  • · 容器技术的集合性更好,能更容易对环境和软件进行打包复制和发布。 容器技术的引入为软件的部署带来了前所未有的改进,不但解决了复制和部署麻烦的问题,还能更精准地将环境中的各种依赖进行完整的打包。

    2.部署原则

    在持续部署管理的时候,需要遵循一定的原则,主要包括:
  • · 部署包全部来自统一的存储库;
  • · 所有的环境使用相同的部署方式;
  • · 所有的环境使用相同的部署脚本;
  • · 部署流程编排阶梯式晋级,即在部署过程中需要设置多个检查点,一旦发生问题可以有序地进行回滚操作;
  • · 整体部署由运维人员执行;
  • · 仅通过流水线改变生产环境,防止配置漂移;
  • · 不可变服务器;
  • · 部署方式采用蓝绿部署或金丝雀部署。

    3.部署层次

    部署层次的设置对于部署管理来说也是非常重要的。首先要明确部署的目的并不是部署一个可工作的软件,而是部署一套可正常运行的环境。完整的镜像部署包括3个环节:Build-Ship-Run。
  • ·Build:跟传统的编译类似,将软件编译形成RPM包或者Jar包;

  • ·Ship:将所需的第三方依赖和第三方插件安装到环境中;

  • ·Run:就是在不同的地方启动整套环境。制作完成部署包之后,每次需要变更软件或者第三方依赖、插件升级的时候,不需要重新打包,直接更新部署包即可。

    4.不可变服务器

    在部署原则中提到的不可变服务器原则对于部署管理来说非常重要。不可变服务器是技术逐步演化的结果。在早期阶段,软件的部署是在物理机上进行的,每一台服务器的网络、存储、软件环境都是不同的,物理机的不稳定让环境重构变得异常困难。后来逐渐发展为虚拟机部署,在虚拟机上借助流程化的部署能较好地构建软件环境,但是第三方依赖库的重构不稳定为整体部署带来了困难。现阶段使用容器部署不但继承和优化了虚拟机部署的优点,而且很好地解决了第三方依赖库的重构问题,容器部署就像一个集装箱,直接把所有需要的内容全部打包进行复制和部署。

    5.蓝绿部署和金丝雀部署

    在部署原则中提到的两大部署方式分别为蓝绿部署和金丝雀部署。蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中,当出现问题的时候,可以快速地将用户环境切回旧版本,并对新版本进行修复和调整。金丝雀部署是指当有新版本发布的时候,先让少量的用户使用新版本,并且观察新版本是否存在问题,如果出现问题,就及时处理并重新发布,如果一切正常,就稳步地将新版本适配给所有的用户。

results matching ""

    No results matching ""