APP下载

发布管理

2019-12-16陈峻

网络安全和信息化 2019年12期
关键词:基础架构部署流程

基础要点

发布内容既可以包括各种基础架构、应用组件、更新流程与工具,也可以包括文档与培训。

发布管理工作通常发生在部署之前。

在传统/瀑布环境中,发布管理和部署被合并为单个进程。

在Agile/DevOps 环 境中,软件和基础架构往往是一些较小的增量部署,因此既可以采用“蓝/绿发布”,即两个镜像生产环境同时供不同类型的用户使用;也可以采用“功能标记”,即新功能被部署到生产环境中但不全面释放,仅释放给单个用户或组。

解读

无论是新服务的启用,还是针对当前服务的修补,我们都需要在完成了测试审查、部署计划、回滚步骤,这三项前提条件之后,方可通过触发变更流程来予以正式发布。

也就是说,只有得到了变更管理委员会的批准,我们方可进行发布操作。而之所以要走这样的流程,就是为了在发布过程中一旦出现了不可接受的错误,我们还能及时地根据既定的回滚步骤,后退到发布之前的系统与服务状态。

由此可见,发布管理的最终目标应该是:

实现并达到了预定的系统功能与服务级别;

更新了相应的配置管理数据库(CMDB);

保持了系统与服务的可用性与稳定性。

图3 常规发布管理流程

由于发布往往会给系统和服务带来更新,那么为了做好与配置相关的管理工作,我们势必需要对基础架构、应用组件、流程与工具、甚至是文档与培训等方面,做好相应的版本号编制工作。

就发布的类型而言,业界一般会采用三种传统的发布方式:

1.增量发布(Delta Release)

只是对从最近一次成功发布以来的累计更新部分予以发布,原有的部分保持不变。

2.全量发布(Full Release)

将更新部分连同原有不变的部分作为整体组件,发布到生产环境中。

包发布(Package Release)

将一组新的软件或服务进行打包,然后直接导入既有的生产环境之中。

如前所述,无论我们在实际操作中采取哪一种发布方式,都会涉及到对于CMDB 进行相关配置项(CI)的签出(check out)和签入(check in)的过程。即:

在执行发布之前,先读取系统与服务的当前状态,并锚定之。

在完成发布与部署之后,将软件的最新版本,写入在CMDB 中已构建的最终软件库(Definitive Software Library,DSL);而将涉及到硬件的更新与安装,映射到CMDB 的最终硬件库(Definitive Hardware Store,DHS)中。

此举不但能够有效地保证了应用系统及其服务的可靠性,又能够及时地为后续的配置管理提供可参考的依据。也就是业界常说的“及时更新基线”。

实务

我们本着给系统和服务“尽量做加法而不要做减法”的初衷,针对本企业内部林林总总的产品类型,采用了如图3 所示常规发布管理流程。

其中,在发布策略的规划阶段,我们会着重管理如下方面:

1.我们将待发布目标区分为:标准/常规发布、紧急发布、以及项目发布,这三种类型,进而根据解读里提及的不同发布方式进行了预定义。例如:

标准/常规发布适合于增量方式;

紧急发布适合于包方式;

项目发布更适合于全量方式。

当然,我们也会根据实际情况略有调整。值得一提的是,我们在处理对外云端服务的相关更新与发布时,遵从了业界常用的灰度发布模式,即在保留一部分用户继续沿用老版本的同时,让另一部分用户开始使用新的版本。

在并行使用期间,能够及时地发现问题,限制影响,甚至回滚调整。待用户对于新版本体验反馈良好时,再逐步扩大部署范围,并最终将所有用户都迁移过来。

2.在规范版本号编制的方面,我们采用了在业界普遍使用的软件版本控制方法,即新的版本号由五个部分组成:“主版本号+子版本号+阶段版本号+日期_希腊字母”。其中:

(1)主版本号的累加是指:在整体技术架构上具有较大的变动与调整。

(2)子版本号的累加是指:在服务与功能上具有增加或变化,比如增加了访问控制与授权、或是自定义的视图等。

(3)阶段版本号的累加是指:对现有服务进行了Bug的修复或稳定性的提升。

(3)日期:记录的是修改完成的当前日期。

(4)希腊字母:标注的是当前版本处于哪个开发阶段。Base 仅为Demo 版本,Alpha 为内测版,Beta 为公测版,RC 为已成熟且无Bug的候选版,Release 为最终正式交付版。

在发布构建、安装与配置阶段,我们采取的是自动与手动互补的方式。无疑,自动化推送分发,包括DevOps里管道的运用,可以保持发布的一致性,而且突破了时间和空间上的限制,进而在一定程度上减轻了手动部署的工作量。但是,对于一些自动化过程中的遗漏,例如,未启动的主机和未上线的云端实例,则需要运维人员以主动拉取的方式,来完成并确认。

在验收阶段,我们除了需要确保只有正确的、被授权的以及经过测试的软/硬件版本出现在实际生产环境中之外,还应当及时更新CMDB里的CI,特别是对于已知错误知识库的维护。

在用户支持和培训阶段,我们可以充分利用已知错误知识库里的相关内容,以积极的态度与用户保持顺畅的沟通,合理地控制好用户在使用中的期望值和体验度,为“新品”保驾护航。

猜你喜欢

基础架构部署流程
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
吃水果有套“清洗流程”
部署
我国云IT基础架构投资保持高速增长
IDC发布云计算IT基础架构Q4跟踪报告
革新数据中心及边缘基础架构
违反流程 致命误判
红帽推出业内首个生产就绪的开源超融合基础架构
四川省高考志愿填报流程简图