1.7 KiB
1.7 KiB
大规模高可用:构建谷歌的广告数据基础设施
- 期号: SRE Weekly Issue #8(2016-01-31)
- 作者: —
- 链接: http://research.google.com/pubs/pub44686.html
简介
这是一篇非常棒的文章。两位谷歌人详细描述了基于故障转移(failover)的系统的种种陷阱,并解释了他们是怎样设计多归属(multi-homed)主主(active/active)服务的。如果谷歌学到了什么教训,我们也都应该好好学:
我们的经验是,把故障转移硬加到原本单归属的系统中效果并不好。这些系统最终构建起来复杂,运行维护开销高,还会把复杂性暴露给用户。相反,我们从一开始就把多归属设计进系统里,发现这才是好得多的解决方案。多归属系统可用性更高、成本更低,整体上也简单得多。
正文
谷歌的广告数据基础设施系统支撑着谷歌价值数十亿美元的广告业务。高可用和强一致性对这些系统至关重要。虽然大多数分布式系统都能很好地处理机器级故障,但能处理数据中心级故障的却不多见。根据我们的经验,处理好数据中心级故障才是运行真正高可用系统的关键。我们的大多数系统(如 Photon、F1、Mesa)现在都把多归属(multi-homing)作为基本设计属性来支持。多归属系统始终同时在多个数据中心运行,在数据中心之间自适应地移动负载,并且能够完全透明地处理任何规模的故障。
这篇论文主要聚焦于流处理系统,描述了我们构建高可用多归属系统的一般方法,讨论了常见的挑战与解决方案,并分享了我们在构建和运行这些大规模系统十余年中学到的东西。