新一代设计编排交付套件分享
导读:
随着电信 O3 设计编排、移动 O4 二级编排(以下统称为业务编排中心)的大规模交付,需要适配的业务场景越来越多,版本迭代也随之加快。因为各省交付人员知识储备和经验参差不齐,每个版本交付,特别是开局部署或跨版本交付的时候,都要花费大量的人力协助现场实施人员完成版本交付。每次加载新业务的时候,哪怕该业务已经在其它省份加载过,绝大部分可以复用,也需要从零开始重新配置,导致人力资源不可控,需要持续投入。
因此急迫需要一种工具能够在有限的人力资源情况下,以最少的投入,快速高效地应对各省份各运营商开局部署,跨版本升级以及 PSR 模型的快速交付配置。
一项重复而又重要的工作
“对,应该可以这样实现......”当某位研发人员刚为想到某个难题的解决方案而兴奋不已时,就被一阵急促的电话铃声打断了思路。一看来电,根据经验就知道这肯定是现场部署遇到问题的求助电话,来不及懊恼,得赶紧帮忙解决。因为现场同事的实施任务很急,交付压力也很大。问题必然是要解决的,但我们也不得不思考一个问题:同一套版本,因为每个现场实施人员的知识储备和经验的参差不齐,造就了许多因为操作不当而导致的各种实施问题。概括起来看,引起问题的原因大致有以下三个:
开局部署操作复杂,容易出现误操作
“万事开头难”,版本的开局部署也是一样,开局需要部署的微服务模块多,需要检查修改的配置数据或文件不少,需要操作的步骤也最为复杂,考验着一个人的细心程度和经验。只要其中某一项配置或操作出现了错误或遗漏,都有可能导致整个部署失败。因此为保证开局部署的成功率,我们需要一个工具来规范、帮助和指导部署人员每个操作步骤、检查每个配置文件。
跨版本升级,升级脚本易有遗漏
一般情况下,版本升级都是一个版本一个版本往上升。但有些时候为了保证系统的稳定性或其它原因,导致中间有好几个版本未能及时升级。此时如果需要升级到最新版本,常见有两种做法,一种是一个版本一个版本地往上升,直到升为最新版本;另外一种是将所有需要升级的版本的各种升级包、配置文件、脚本合在一起,一次性升上去。前面一种稳妥,但效率极低;后面一种效率高,但在合并配置文件、脚本的时候容易出错。很多时候我们都会采用后面这种升级方式,因此为了保证升级的成功率,我们需要一个工具来自动检查并合并多个版本的配置文件和脚本等。
除了版本部署升级会影响交付效率外,还有一个非常影响交付效率的就是 PSR 配置。
PSR 配置复用率低
PSR 在梳理完成之后,实施时的配置工作是一种纯“搬砖”性质的操作,但也会因为需配置的对象多,参数和流程复杂,导致配置工作量大。很多情况下哪怕该业务已经在其它省份加载过,绝大部分可以复用,也需要从零开始重新配置,这造就人力资源不可控持续投入。因此为了提升 PSR 交付效率,我们需要一个工具来帮助实施人员完成标准化的初始配置,现场人员只需要根据业务需要稍作调整即可快速完成 PSR 模型的交付配置。
总之,无论是开局部署、跨版本升级还是 PSR 配置这三个事情针对不同的省份、不同的运营商来说都是一项重复但却又非常重要的工作,这直接决定了最终是否能按时按质的交付给客户。在这之前因为缺少一些有效的支撑工具,导致交付效率一直无法有质的提升。为了解决这一问题,我们提供快速实施交付三剑客。
快速实施交付三剑客
快速实施交付三剑客是指开局部署工具、版本迭代工具以及 PSR 交付工具。“三剑客”从帮助实施人员减少配置出错的机率考虑出发,将可以提前就绪的准备工作优先准备好,规范并协助实施人员按部就班地根据指引一步步操作,从而提升交付效率。为了深入了解快速实施交付三剑客,我们先来了解一下的交付套件的核心功能架构。
交付套件功能架构
交付套件核心功能包含了版本交付管理、PSR 交付管理、公共管理以及交付工具四大模块。
版本交付管理
用于规范版本的交付流程以及每步操作需要处理或检查的细项内容;定制版本的交付内容,如版本号、版本布署包、升级脚本、回退脚本等。当版本部署发生异常时,部署人员可以上报异常,同时支撑人员可以针对上报的异常进行及时的处理。
PSR 交付管理
用于规范 PSR 的配置交付流程;以业务为驱动,定制标准版本的 PSR 交付内容以及 PSR 交付检查和可修改项,如 RES 对象信息、RES 属性、RES API 等。
公共管理
用于设置版本和 PSR 交付完成后,需要生成的交付报告模板;并对交付过程中流程进行管控。
交付工具
为部署实施人员提供的部署实施工具,指导部署实施人员进行版本部署、版本升级以及 PSR 配置交付。
通过版本交付管理和 PSR 交付管理功能,可以根据实际需要快速定制出各种交付版本和标准 PSR。快速实施交付三剑客基于这些定制好的版本和标准 PSR,实现版本部署、升级以及 PSR 模型的快速交付。
下面我们分别阐述这些工具具体是如何实现的。
剑客一:开局部署工具
在准备部署前需要找到最新的版本发起开局部署流程。开局部署第一步就是需要根据单量评估出硬件配置,另外设计编排中心采用的是微服务架构,涉及到需要部署的微服务模块、中间件,需要修改的配置文件、执行的脚本都比较多。任何一步出现问题都会导致整个部署失败。开局部署工具综合考虑到了这些因素,提供了一站式解决方案。
硬件评估能力
在此之前硬件评估都需要专业的人员按照客户提供的单量,再根据以往的经验评估出一个相对准确的硬件配置。如今我们首先通过压力测试工具,测算出平均一个标准配置(2 核 CPU,8G 内存)能承载多少单量,然后得出一个计算公式,并把该公式固化在开局部署工具中。后续只需要知道客户的峰值单量就能轻松、科学地计算出所需要的硬件配置。开局部署工具还附带了导出功能,可以将结果导出后提供给客户评审。
硬件评估
获取升级版本
硬件评估出来后,下一步就是获取部署版本包,从版本下载页面,我们能够清晰的看到此次版本涉及到的所有需要部署的微服务模块、中间件以及产品发布包和脚本。
版本下载
选择本次部署的区域——福建,下载产品发布包及相关脚本这一步就完成,可以进行下一步。准备机器环境。
机器环境准备
机器环境准备
在这一步中,需要准备中间件和微服务模块应用部署的机器环境,按细项来拆分成三个小步骤。
1、创建用户
为即将要安装的中间件和微服务模块应用创建一个部署用户。
2、创建部署目录
为即将要安装的中间件和微服务模块应用创建一个部署目录,并将磁盘挂载到该目录下。
3、安装 JDK
安装 JDK,并配置 JDK 环境变量。
上述三个步骤,每一步都可以根据需要提供详细的操作指引,并且包含一些常见的问题及解决方案。部署人员按照指引操作完成后点击“完成”按钮即可。在这之中如果遇到一些未能解决的问题,可以通过异常上报将异常情况上报给专业的支撑人员,由专业的支撑人员协助解决。
机器环境准备就绪后,接下来就可以正式部署中间件和微服务模块应用了。其操作模式与机器环境准备一样,都是将每一个大的步骤拆分成多个细项指导实施人员一步步操作。最终完成整个应用的部署和配置。
剑客二:版本迭代工具
版本迭代工具最核心的功能就是解决了上述提到的跨版本升级问题,它能够动态合并多个版本的配置文件、脚本,防止出现遗漏。
版本迭代工具和开局部署工具在操作方式上大同小异,版本迭代工具少了开局中的硬件评估和机器环境准备以及部分中间件部署的相关操作。
迭代版本下载
剑客三:PSR 交付工具
PSR 交付管理将已经配置好的标准的 PSR 对象及 API 流程按业务进行拆分,针对每一项业务对应的每一个 RES/RFS/CFS 对象以及它们的对象拓扑、属性、原子能力或 API、相关的流程、策略都有详细的指引说明。配置人员根据业务检索出对应的 PSR 对象模型,导入到需要配置的环境,然后再根据指引说明结合现场的业务实际情况,修改对像拓扑、属性,API 流程及策略等信息,即可完成 PSR 配置。
PSR 业务包内容
交付套件价值成效
交付套件采用中心化的部署方式,各个实施现场只管使用,无需承担部署和维护成本。交付套件的核心目标是规范交付流程,降低交付成本,提高交付效率。
规范交付流程
在没有交付套件之前,版本和 PSR 的交付都是线下完成的,有时会随带一份简单的说明文档。整个流程极不规范。这也是导致部署实施时会遇到诸多问题的关键。通过交付套件,规范了整个交付流程。每个流程总共需要执行多少步,每一步该做什么都规范得清清楚楚,只有完成了前一步,才能执行下一步。特别是开局部署的硬件评估,更是通过压力测试科学计算出来的。通过规范化的流程极大减少了部署实施出错的机率。
经验共享,加快了产品的部署实施进度
每次新省份的开局部署,每次产品迭代升级部署,各省份的部署人员没有可以借鉴的经验,都是摸着石头过河。遇到自己解决不了的问题时,反过来再找专业人员咨询,指导。如果遇到的问题多一点,这样来回折腾几次,不但极大的降低了实施部署的进度,也附带增加了交付成本。而交付套件总结了交付过程中容易出错的地方,把它转换成指引说明,引导大家避免入坑,给出常见问题的解决方案,避免来回折腾,极大的提升了实施部署进度。
提升 PSR 复用率
在最近一期吐槽大会上,让我体会最为深刻的一个抱怨就是“每到一个新省份,上线之前其他省份已经上线过的业务,我都会想,这蛋疼的配置工作我又得来一遍......”。是啊,已经配置过的业务换个地方又得重头再来一遍,而且配置工作量还不少,想想确实让人挺郁闷的。反思一下,造成这种情况的主要原因是没有一套标准的可复用的 PSR 模型。而 PSR 交付套件正是为了解决这类问题是建设的。有了 PSR 交付套件,极大提高了 PSR 的复用率。换一个省份只需要重新导入,然后再根据省份个性化的需求,稍做修改即可完成业务配置。
提升交付效率
无论是规范交付流程、经验共享,加快了产品的实施部署进度还是提升 PSR 复用率,其最终目标都是为了提升交付效率, 降低交付成本。从实践来看,自从有了交付套件以后,虽然还是在试用阶段,试点省份上报的实施部署相关问题极大的减少了 50%以上。
总结
交付套件同运维套件一样,继续秉承了公司降本增效的号召。当前设计中心和编排中心已经在使用交付套件做版本交付,PSR 模型也在开始逐步积累中。有了交付套件,研发人员就不必担心关键时刻会因为部署的问题而被打断思路,交付人员也能更加自主高效完成交付工作。
随着 PSR 标准的逐步积累,需要交付的省份越来越多,PSR 交付套件作用和价值将会越来越大。随着版本部署套件功能的逐步完善,未来可以供公司内部其它产品使用,这也将极大提高版本部署套件的价值。
版权声明: 本文为 InfoQ 作者【鲸品堂】的原创文章。
原文链接:【http://xie.infoq.cn/article/93ba96a671860f17e034027a9】。文章转载请联系作者。
评论