终于到上线的时候了,可以好好休息了、放松了,但在没有经过用户确认之前,一切皆有可能发生......
经历:
项目终于完成,上线文档已准备就绪,等待上线时刻。
在上线之前,忘记了解目前环境的部署架构,注定会发生悲剧。
上线时才发现测试环境与生产环境的数据库名不一致,Sql脚本执行出现Error,再修改......
上线时才发现本次程序连接的两个业务数据库部署不在同一台服务器,结果跨库操作成了问题,存储过程要修改,程序代码也要修改......一小时就这样过去了
上线时才发现文件替换后出现了莫名其妙的问题(测试环境没问题),经过排查,无法解决,最终决定回滚。通过备份生产环境的数据库在测试环境重现,调试并解决问题。
悲剧继续......
采用生产库再次部署,结果问题没有重现,查找了两天没有查找到原因,问题继续......
项目还是要上线的,今天请了技术支持,决定在生产环境调试解决问题,用周六与周日两天时间,怎么也能把问题解决。
重新上线,一切顺利,3小时完成了所有测试,无Bug上线成功。
总结:
对于多数据库操作的业务,一定要了解生产环境的部署构架,根据生产的部署构架设计解决方案。
上线前 了解生产数据库部署构架与应用部署构架,对于特殊的操作是否满足。
上线前 和以前的开发团队沟通,了解部署过程当中注意事项,避免不必要的问题发生。
上线时 出现问题一定坚持到第二天上班前应用必须用时才能放弃,不要想着在测试环境上重现问题,往往有的问题只能的生产上出现,测试环境不一定重现。
,