跨百万碎片的灾难恢复:Michelle Brush在QCon旧金山会议上的演讲

谷歌工程总监Michelle Brush在QCon旧金山2023的演讲总结

在QCon旧金山2023的第二天,谷歌SRE工程总监Michelle Brush在“设计韧性”专题中,讨论了大规模分布式系统中灾难恢复的挑战、模式和实践。

数据管理的重要性

Brush首先强调了数据管理的重要性,特别是处理数据损坏问题。过去,有状态系统依赖于单一的大型数据库,备份策略根据使用频率和定义的恢复时间目标(RTO)来制定。然而,在分布式系统中,服务相互交互,数据分布在多个数据存储中,恢复数据可能会导致一致性问题。

复杂分布式系统中的恢复策略

Brush提出了几种在复杂分布式系统中执行恢复的策略:

  1. 接受不一致性:但这种方式可能无法接受。
  2. 协调恢复到全局一致状态:在谷歌,使用具有TrueTime能力的Spanner系统来维护一致状态,通常需要停机时间以完成备份。
  3. 重建世界选项:通过重建整个系统,指定明确的“前门”和真实数据源,以有效恢复系统。

无明确“前门”时的恢复策略

如果没有明确的“前门”,Brush提出了“协调世界”选项,利用双向协调使数据双向流动,确定最准确的现实表示。谷歌使用Hadoop、Spark、Kafka和Dataproc等工具来无缝导航和协调数据,确保系统反映最新和准确的信息。然而,Brush指出在微服务架构中,这种方法无法绕过备份可用性和一致性(BAC)定理。

系统设计的四个视角

Brush建议在设计系统时考虑四个视角(源自4+1架构视图模型):逻辑视图、开发视图、进程视图和物理视图(包括硬件考虑)。此外,必须考虑各种故障场景并相应地进行计划。

灾难恢复计划的关键

Brush最后强调了逻辑视图、进程视图、物理视图和加一(场景)视图在灾难恢复计划中的重要性。定期测试和实践恢复场景对于确定恢复点目标(RPO)至关重要,RPO是允许数据恢复的最长时间,可能意味着数据丢失。没有定期测试和实践,工程师无法真正知道系统在灾难中的表现。

阅读 28
0 条评论