几个环境共用一套命名,串了配置查起来特别费劲
试运行环境里的调用地址,不知什么时候被正式环境读了去,请求跑到了不该去的地方。查到临了才看清,两边用了同一个键名,取值时按名字去拿,谁也没想到会拿到隔壁那份。一、命名带上环境标识
键名里带上环境,读的时候由运行环境自己拼出来,人不用每次记着选。少一步手工选择就少一处出错,尤其在新同事接手、还分不清几套环境的时候。审批流里给改正式环境的值多加一道确认,把环境名和键名再显一遍,这一眼能拦下手滑落到不该落的地方。
带标识不等于把环境名写死在业务代码里。代码只认一个变量,变量由启动参数给,换环境时改的是外面那处,里面一行都不用动。环境清单交给谁维护要写进值班表,新起一套的时候照着单子核,不至于复制完才发现连着人家的地址一起搬了过来。
二、默认值别写进代码
图省事在代码里给个兜底值,本地跑得好好的,一上正式环境忘了配,就悄悄用了那个兜底。这种错不报错、不告警,往往等数据歪了一阵才被看见。季度盘点把待认领那一档和长期零读取的项并排看,前者说明归属没落实,后者得回头翻一遍接入记录才能定去留。
该缺就让它缺,缺了在启动时直接停下来报明白。停一次比带着错值跑一天划算,停的时候还顺便把漏配的那项名字打出来,补起来很快。工时单上给起新环境那几天的核对单列一行,由值班的人领着逐项过,事后再补往往连当时是谁经手的都问不齐。
三、借用配置要登记
临时把别处的地址借来用一下,用的人心里想着回头改,回头常常就没了下文。开一处登记,写清谁借的、借到哪天,到期提醒一次,比事后翻调用链省事。和各团队约好借用一律登记,别只在群里说一声,说过的话翻两屏就沉了,登记里那句为什么借反而常常省下这一借。
登记里附上为什么借,有时一问才发现不用借,两边本来就该走同一条路。省下这一借,后面清起来也少一处牵挂。交接本上给临时挪用的那几项留一栏,写清经手团队和归还日子,到期由专人催一次,免得日子久了连是谁提的都没处问。
四、权限按环境分开
能改正式环境配置的人,范围要收得比试运行环境窄。不是不放心谁,是手滑这件事跟水平没关系,范围小一点,滑出去的那一笔也落不到要紧处。值班表里把回退这一步对应到具体的人写清楚,半夜真要动手不用在群里挨个问谁有权限,问上一圈,窗口早就过去了。
权限分开之后,改正式环境时多一道确认也顺理成章。确认里把环境名和键名再显一遍,让人看一眼自己要动的是哪一处,比笼统一句是否继续管用。复盘会上把串了值的那几回按来源分一分,是命名撞了还是复制没核,两类治法不同,笼统一句仔细点下回还是照样串。
五、复制环境要逐项核
新起一套环境,图快从现成的那份整包复制,复制完连着人家的地址、额度一起搬了过来。这类值长得都差不多,混在一堆里扫一眼看不出,得逐项对。成本那一栏别只填机器和人力,把每次演练占掉的工时也折进去,摊开看过才知道这套退路养着值不值,花在哪一段也能说给后来的人听。
把需要改的那几项先列成单子,复制完照着单子一项项打勾。单子不长,十来项而已,可漏掉的常常正好是平时不显眼、一跑批才用到的那个。新人上手的头一周让他照着清单认一遍几套环境,从名字到谁有权限改走完整一遍,比先讲一遍隔离的道理更记得住。
六、清单定期拉出来看
每个环境有哪些键、哪些在被读、哪些没人认领,定期拉一张表出来。表摆在那儿,串没串、多没多,比对着一眼就能觉出不对。
看表的时候顺带数一数长期零读取的项,八成是早先某个功能下掉之后留下的。留着不占多少地方,可会让人以为它还有用,误改一次就说不清了。归档时把每套环境的键清单连同借用登记放在一处,过半年有人问起某个地址当初为什么借,顺着目录就能翻到。
环境串了配置,很少是某个人写错一行,多是命名、兜底、借用、权限、复制、盘点这几处一路松下来。每处收一点,串的机会就小很多;真串上了,也能顺着清单很快找回去。 看完之后深有感触,有些话真的说到心坎里了,很有共鸣。
页:
[1]