曾经在某行参加过版本重构工作,涉及用户以亿计算。
重构项目是一个90年代的老项目,我主要参与的是数据库的改造工作。
1、设计字段格式修改,90年磁盘费用较高,比如存如的日期格式2019153,现在统一修改为YYYY-MM-DD格式
2、对大量数据重新进行分库分表策略
3、拆分、新增、删减等一些数据清洗工作
对于这种设计用户量大的项目上线,如果采用全量发布的话不论对于开发运维团队有着未知的风险。一般都是采用灰度发版。
1、挑选特定地区,总量5%的用户数据库数据导出
2、自己写一个小清洗数据系统,按照要求对数据进行清洗
3、把清洗后的数据批量灌入测试或生产新的数据库
4、根据灰度策略,这5%用户会使用新的系统,平稳过渡新旧系统
5、再根据20%,50%,100%进度逐步推进新系统。
蓝绿发布
在发布的过程中用户无感知服务的重启,通常情况下是通过新旧版本并存的方式实现,也就是说在发布的流程中,新的版本和旧的版本是相互热备的,通过切换路由权重的方式(非0即100)实现不同的应用的上线或者下线。
灰度发布
灰度发布是通过切换线上并存版本之间的路由权重,逐步从一个版本切换为另一个版本的过程。虽然有很多人包括专业大牛认为灰度发布与金丝雀发布是等同的,但是在具体的操作和目的上面个还是有些许差别的。金丝雀发布更倾向于获取快速的反馈,而灰度发布更倾向于从一个版本到另一个版本平稳的切换。
网友评论