写点什么

PaaS 容器化部署思考

用户头像
lenka
关注
发布于: 2021 年 05 月 13 日

一、概述

最近在研究 PaaS 容器化部署应用时有增量部署和全量部署两种方式,下面聊聊增量部署和全量部署各自的优缺点及使用场景。

增量部署一般指在每次部署过程中首先提取当前版本和即将部署版本之间的增量(包括代码、可执行文件或者配置等),并在部署过程中仅更新增量部分。

部署流程如下:

  1. 利用代码管理工具(SVN、GIT 等)提取两个版本之间的增量,并结合其他方面的增量变化,准备增量部署包。

  2. 按照增量部分制定具体的部署方式,编写部署脚本。

  3. 部署增量部署包到目标环境,完成系统的版本升级。

二、优势劣势

增量部署优势如下:

  1. 部署速度快。增量部署每次仅对增量部分进行更新,部署需要的时间也就相对较短。

  2. 降低部署失败率。没有变化的配置工作不需要每次重复设置,避免误操作,降低部署失败率。

  3. 提高安全性。增量部署每次只会涉及到增量代码部分,不会直接暴露系统的整个代码部分更新,避免系统代码泄露的风险。

增量部署存在的问题:

  1. 不可预期性部署流程。增量部署对于部署外更新未及时考虑到增量计算中,非常容易导致之后的增量部署失败。全量部署过程则会完整执行完整个环境的配置、初始化以及部署工作,对于这些部署外更新有更好的容错性。

  2. 回滚操作困难。回滚需要逆向计算增量部分,通过备份策略可以解决这个问题,但是回滚多个版本时会非常困难。

  3. 无法从头部署最新系统。在云环境中虚机的增加和减少类似的资源的动态变化很常见,会有两种部署需求:一个是从上个版本升级到最新版本,进行增量部署;另一个是从零重新部署最新版本应用进行全量部署。

三、使用场景

增量部署适用于很多状态相关的部署单元(例如,数据库)场景。其中最为典型就是“数据库 Schema”的更新操作。在进行增量部署时设计好部署的流程、脚本及回滚策略。

全量部署适用于状态无关的部署单元(应用、模块,微服务等)场景。

用户头像

lenka

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
PaaS容器化部署思考