第一次坐下
表能导出。夜里谁调谁,表经常不知道。
机房租约还剩四个月。先到桌上的是一张表:两千行资产,列很齐,编号、机柜、操作系统、最近登录人。看起来能排波次。
能搬的单位是一条还在接单的业务。应用、它跑的机器、它写的库、它半夜调用的接口、出事时接电话的人。五样对得上,才叫一条。缺一个,切的时候会有人问:这个批任务打哪台。没人答得上来。
未知依赖比已知故障麻烦。已知故障至少有人认。未知的东西会在两点十七分以超时、脏数据、找不到人的形式回来。清单上空白的负责人,两行抢同一个库名,备注写联系人已离职。它们不会在切流量那天自己消失。
接口不只登记网页。有人用文件落地,有人用存储过程互调,有人用凌晨的邮件。表经常只登记了虚拟机。虚拟机迁走了,落地目录还在旧盘上,报表会空跑一宿。连接串、定时任务、证书过期日,这些要另问,另看,另标。
这一次只干一件事:把不知道的标成不知道。标成未知的项,这一波先别排。有人会说先填一个名字,回头再补。回头补的时候那个人不接电话,你没有退路。
冲突也要摊开。同一套货款对账,表里挂着两个库地址。你不能取最新一行就走。最新一行可能是去年做容灾留下的影子。问值班、问开发、对一下实际连接串。对不上就停。停在发现阶段,比停在切换窗口便宜。
排波次的诱惑很大。哪周能切,这句问得急。波次图吃的是已经对上的五元组。吃未知项,图会好看一周,窗口里会崩。发现做完,手里该有三堆:可搬的、未知的、自己打架的。三堆分不清,后面的路径和切换都站不稳。
值班室墙上的电话表,比资产表更接近真相。夜里响的那台,才是依赖。资产表里的「最近登录人」可能是三年前装系统的人。你要的是今晚接电话的班次。班次问不到,这一行就是未知。未知可以进待问名单,不能进第一波。第一波只装夜里能找到人的。
去机房看实际连接。把定时任务的脚本打开,看它写死了哪台地址。问完仍不清楚的,写在清单上。猜一个名字填进去,窗口里会变成空号。空号的那一行,会把已经搬过去的订单中心一起拖停:它还在调一个你以为不存在的库。
下面六行。两行缺字段,一行自己打架。先标未知。未知还在,不能排这一波。
六行清单
每行选一个状态。缺字段的标未知,打架的标冲突。然后才能谈第一波。
| 应用 | 机器 | 库 | 接口 | 接电话的人 | 这一行 |
|---|---|---|---|---|---|
| 订单中心 | app-ord | mysql-ord | 支付网关 | 订单值班 | |
| 库存 | app-stk | mysql-stk | 订单中心 | 仓配值班 | |
| 夜间报表 | app-rpt | 邮件网关 | |||
| 附件文件 | fs-doc | nas-01 | 共享目录 | 平台值班 | |
| 货款对账 | app-pay | mysql-pay 与 mysql-pay-dr 两行抢同一应用 | 银联文件 | 财务值班 | |
| 商品主数据 | app-mdm | oracle-mdm | 订单、库存都调 |
未清