借鉴一下
1.默认情况下,所有提交的代码每打包一次(周二)。
2.星期二的代码发布,需要所有提交过代码的工程师在场。
3.发布开始前,工程师必须在一个特定的 IRC 频道上候命,否则将会被公开问责。
4.
- Facebook 有大约 60000 台服务器。
- 有9个代码发布级别。
- [更正 感谢 eriest] "九个级别并非同轴的(concentric)。有三个同轴的阶段(p1=内部发布, p2=小范围外部发布, p3=完整的外部发布),其余六个阶段是辅助层,比如内部工具、视频上传主机等等"。
- 最小的级别只有6台服务器。
- 比如,星期二的代码发布会先发布到 6 台服务器上(第一级),运维组会观测这 6 台服务器,保证代码正常工作,然后再提交到下一级。
- 如果发布出现了问题(如报错等等),那么就停止下一级的部署,提交出错代码的工程师负责修复问题,然后从头继续发布。
- 所以一次发布可能会经历几次重复:1-2-3-修复,回到 1, 1-2-3-4-5-修复, 回到1, 1-2-3-4-5-6-7-8-9。
运维团队受过严格训练,很受尊敬,而且极具有业务意识。他们的工作指标不止包括分析错误日志,负载和内存使用
状态等等,还包括用户行为。比如,如果一个新的发布导致一定比例的用户对 Facebook
功能进行声讨,运维团队将查看相关指标,可能基于他们的调查停掉该次发布。
代码一旦发布到第9级,并且稳定运行,本周的发布宣告结束 。
阅读(802) | 评论(0) | 转发(1) |