本文中提出的最佳实践,来自于作者多年大规模服务设计和部署的经验,为设计、开发对运营友好的服务提供了一系列良好的解决方案。
■文/James Hamilton 译/赖翥翔
1 引言
本文就设计和开发运营友好的服务的话题进行总结,得出一系列最佳实践。设计和部署大规模服务是一个高速发展的领域,因而随着时间的流逝,任何最佳实践集合都可能成熟并完善。我们的目的是为了帮助人们:
l 快速交付运营友好的服务;
l 避免清早电话铃声的骚扰,帮助备受运营不友好的服务侵扰的客户尽量摆脱窘境。
这篇论文是我们在过去的20年中在大规模以数据为中心的软件系统和互联网级大规模服务的智慧结晶,包括Exchange Hosted Services 团队、Microsoft Global Foundation Services
Operations团队以及Windows Live! 平台多个团队的经验。这些贡献经验的服务中,有不少规模已经增长到拥有超过二亿五千万名用户。同时,本论文也大量吸取了加州大学伯克利分校
在面向恢复计算(Recovery Oriented Computing)方面取得的成果和斯坦福大学在只崩溃软件(Crash-Only Software)方面的研究经验。
Bill Hoffman为本论文贡献许多最佳实践。此外,他还提出三条简单原则,值得大家在进入正题之前进行考量:
1. 做好发生故障的心理准备。
2. 保持简单化。
3. 将所有的工作自动化。
这三条原则形成了贯穿后续讨论的主轴。
本文的十个小节涵盖了设计和部署运营友好服务所必须做到的各个方面。它们是:整体服务设计;以自动化和预置(Provisioning)为目标进行设计;依赖关系管理;发布周期及测试;硬件的选择和标准化;运营和容量规划;审核、监控和警报;体面降级和管理控制;客户及媒体沟通计划;以及客户自我预置和自我帮助。