运维 Travis CI 网站:从删库到跑路

nouse · 2018年04月10日 · 最后由 nouse_sb 回复于 2018年05月15日 · 2035 次阅读

Travis CI网站在4月3日发生了一起数据库删库导致的outage,细节:https://blog.travis-ci.com/2018-04-03-incident-post-mortem

Root cause如下:

  • 生产服务器上跑测试
  • 该测试不是自动化的
  • 生产服务器除了生产数据库之外还有测试数据库
  • 跑测试的工程师在窗口中设置了database url到生产数据库跑了别的任务,结果该测试跑在了生产数据库。

根据现在流行的devops理念,不应该区分生产数据库和测试数据库,在生产环境跑测试也应该针对的是生产数据库,不知道大家有什么看法?

附加: 数据恢复后,一些用户发现登录到其他用户的账号,原因是登录的token存在浏览器的local storage,数据恢复后关联到了错误的用户record,疑似是用id关联,且加密token的key并没有过期时间。

共收到 7 条回复

根据现在流行的devops理念,不应该区分生产数据库和测试数据库,在生产环境跑测试也应该针对的是生产数据库,不知道大家有什么看法?

谁说的……

首先在生产服务器跑测试就很奇怪。 其次生产服务器的代码包含测试用的gem也很奇怪。 还有就是生产服务器上还有一个测试数据库。

深层次的问题:哪些人应该可以登录生产服务器?哪些人可以操作生产服务器的数据库?

不是可以根据环境变量读数据库么。。。

讲个跟 Rails 无关的事情,有一次我下载了 Swift 的网络库 https://github.com/Alamofire/Alamofire/issues/1512 跑了一下测试,它就把我的 Mac 搞炸了……

还敢在生产环境上面跑测试,也是心大。似乎也证明了 Travis CI 的管理有多混乱……

今天看到Travis CI在database_cleaner上提的Safeguard PR了。

大傻逼

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册