熊节:极限追问 028
【持续集成变红了,怎么办?】
背景:今天的讨论里,有个同学说了一条重要的持续集成纪律:“当CI构建或者部署失败时,立刻修复,若不能解决,即立刻回滚”。
分问题1:会不会发生“既不能快速修复,又不能回滚”的情况呢?原因是什么?
分问题2:如果发生这种情况,团队应该怎么办?
分问题3:怎么避免这种情况发生?
Jason
【持续集成变红了,怎么办?】 除非正在解决生产问题,否则一律停下来修复,这个没有商量。
分问题1:会不会发生“既不能快速修复,又不能回滚”的情况呢?原因是什么? 有,比如Jenkins编译服务器因环境升级失败
分问题2:如果发生这种情况,团队应该怎么办? 基本上很麻烦,环境问题有时很难解决,所以通常会有两台或以上的slave互为备份,一次只升级一台
分问题3:怎么避免这种情况发生? 把Jenkins编译服务器镜像化
张维
分问题1:会不会发生“既不能快速修复,又不能回滚”的情况呢?原因是什么?
不能快速修复的情况,比如,一台服务器中部署了多个项目的时候,整个容器内会出现依赖注入名字冲突错误,导致服务器中某个项目无法正常启动,错误不好定位。比如,前端页面手机版本兼容性问题。
又不能回滚,大多数都能回滚,因为每次都会备份。有些时候会局部回滚,将某几个文件还原到上个版本。
分问题2:如果发生这种情况,团队应该怎么办?
整体还原到上个版本,局部还原部分功能。比如,前端页面回滚到上个版本,重新打包。 后端,获取上个版本的代码,重新编译打包。
分问题3:怎么避免这种情况发生?
不能说完全避免,一台服务器更新后,然后同步到其它服务器。 测试服务器多测试吧,多做备份。