0


我的大数据之路 - 生产变更方案的注意事项

依据部门的统计数据,70%的生产事故都和生产变更操作相关,而究其原因,重要的一点即是变更方案准备不充分,导致生产变更过程中的操作和实施步骤中的操作存在差异,重要操作在实施步骤中存在遗漏、细节缺失,对于可能出现的意外场景,准备不充分,缺少预案,或者预案实施后会引发其它的次生问题。
自18年10月接手X项目后,至今已组织了多次生产变更,一些注意事项在实践过程中积累下来。

变更实施的全过程

开发人员已按照需求要求,完成代码开发以及相应的质量保障操作,已进入实施方案的设计阶段。

变更实施前

主要工作有

  • 准备实施步骤,开发人员依据需求和技术平台,输出必要的操作代码及步骤说明。
  • 评审实施步骤,项目PM组织评审专家评审开发人员的实施步骤,依据需求的复杂程度,实施步骤的评审可以和代码评审合并。应特别关注回滚操作的合理性。
  • 操作演练,项目PM组织实施人员和开发人员,在镜像环境或者验证环境,按照实施步骤,完成操作演练。如遇到失败或者报错,则开发人员需要定位到根因,然后重新安排演练。
  • 准备实施计划,项目PM梳理本次生产上线版本中的需求清单,按照各需求的实施步骤,整理各操作的依赖,确认各需求的操作顺序,需要投入的人力等。

变更实施过程中

主要工作有

  • 实施人员按照实施步骤操作。
  • 每个步骤完成后,按照预定的验证方案,检查实施效果。
  • 操作过程中,及时保留必要的过程信息,比如操作成功或者失败的提示信息,另外遇到异常时需及时停止操作。

变更实施结束后

主要工作有

  • 通知下游需求方,在生产环境执行验证操作,确认需求上线后的效果。
  • 整理变更过程中的记录的过程信息,输出生产实施总结,并及时归档;便于项目团队中其他成员参考,同时利于后续出现问题后回溯原因。

实施步骤的注意事项

当前生产环境涉及的软件较多,包括Oracle、DataStage、Control-M、Hive等,总结前期生产实施的经验和教训,可以梳理得到相关的注意事项。

Oracle

  • 对于初始化数据的操作 - 初始化操作可以先于正常生产跑数代码上线,则可以直接将数据初始化到结果表中。- 初始化操作和正常跑数代码需要同时上线,初始化操作的数据量小或者运行时间小于2小时,可以直接将数据初始化到结果表中。- 初始化操作和正常跑数代码需要同时上线,初始化操作的数据量较大或者运行时间大于2小时,为降低操作风险,可参考如下操作步骤。1. 创建结果表A,用于生产正常跑数。2. 创建结果表B,用于初始化数据。3. 等待初始化数据操作完毕。4. 初始化数据操作结束,验证数据表B中数据的质量。5. 挂起任务的调度,将数据表A的数据写入到数据表B中。6. 修改数据表A和数据表B的表名,将二者表名互换。7. 恢复任务的调度。
  • 对于补数的操作 - 缺失历史记录,补数操作经分析对现有记录无影响,则可以直接将数据直接补到结果表里。- 表记录中某一列或者某些列缺失数据。这时需要确认缺少的数据量,确认操作方法: - 假如缺失字段的记录数比较少,使用update语句可以在给定时间内完成,则可以挂起调度,直接实施操作。- 假如缺失字段的记录数过多,使用update操作已无法在给定时间内完成操作,并且全量初始化数据的操作代价可以接受,则推荐执行全量初始化操作。- 假如全量初始化数据的操作代价无法接受,则将新建扩展表,将缺失字段的数据补充到扩展表里,并通知下游使用方调整使用方式。假如提供数据时使用的是视图,则可以通过修改视图定义的方式,屏蔽对下游的影响。
  • 对于增强类需求 - 假如初始化数据的操作代价可以接受,变更操作前可不备份数据,当修复生产问题时可通过初始化操作来修复数据。- 假如数据规模相对比较大,备份数据的代价可接受,则推荐在变更前将数据备份到临时表中。需注意临时表的定义需和原始表的定义一致,这样当生产变更的代码出现问题,比如发散现象,可以通过修改表名,快速恢复业务。- 假如数据规模很大,备份数据的代价无法接受,则推荐新建临时JOB,将变更后的数据写入到临时表中,待数据质量验证无问题后,再将JOB正式上线,临时表内的数据写入到正式结果表中。

DataStage

  • 在现有的DataStage JOB基础上做扩展、增加特性前,需要以生产环境的对应JOB为基础进行开发。
  • 实施变更操作前,需要及时归档生产环境中对应的DataStage JOB。
  • 变更前,需确认工程、服务器清单等。
  • 在生产环境实施变更时,需要登录正确的服务器和工程,假如存在多台服务器,则注意不要遗漏。
  • 在生产环境导入DataStage JOB文件后,注意要手工触发编译,消除出现的编译失败现象。

Control-M

  • 操作前需备份配置,并归档。
  • 假如相同的Task下有多个需求涉及变更,建议按照项目团队合并操作;不同项目团队间的操作,需要串行操作,避免相互间影响。

Hive

当前暂时没有什么可供分享的经验或者教训。


本文转载自: https://blog.csdn.net/babyblue_963/article/details/136073550
版权归原作者 小南家的青蛙 所有, 如有侵权,请联系我们删除。

“我的大数据之路 - 生产变更方案的注意事项”的评论:

还没有评论