面对大规模系统故障,看 Facebook 如何修复(二)

2017-04-01 14:33:25 +08:00
 dataman

作者介绍: Ben Maurer 是 Facebook 的网络基础团队的技术领先者,主要负责整个 Facebook 面向用户产品的性能和可靠性。 Ben 于 2010 年正式加入 Facebook ,基础设施团队的成员。在加入 Facebook 之前,他与 Luis von Ahn 共同创立的验证码。最近,本与美国数字服务公司合作,以改进在联邦政府的技术使用。

昨天,数人云已经为大家带来了 Ben Maurer 分享的“面对大规模系统工程,看 Facebook 如何处理故障排查(一)”的上半部分,主要涉及导致故障的原因、以及可以使用一个通用的系统等相关内容,今天,正式为大家带来了最终的解决方案,跟数人云一起来了解下吧~

故障是任何大规模工程系统的一部分。 Facebook 的文化价值之一就是拥抱失败。这可以从挂在门洛帕克总部墙上的海报上得到体现:“如果你无所畏惧,你会怎样?”“天佑勇者。”

为了使 Facebook 的系统在快速变化的情况下保持可靠,专门为其研究了常见的故障模式,并建立抽象理念来解决这些问题。这些理念确保最佳实践应用于的整个基础设施。通过建立工具来诊断问题,并创建一种复盘事故的文化来推动并作出改进,防止未来发生故障。

帮助诊断故障的工具

一个服务器即使有最好的预防措施,但是也会发生一些故障。在停机期间,正确的方式可以迅速解决问题,最大限度地减少故障持续时间。

高密度的仪表板与立体主义理念

在处理故障时,快速的获取信息也是至关重要的。良好的仪表板会让工程师快速评估一些可能会出现的异常指标,然后利用这些异常指标来推测原因。然而,仪表板增长速度越来越快,以至于很难迅速对其进行监控,如图 3 所示,仪表板显示的线程比会逐渐增多。

为了解决这个问题, Facebook 专门为其制定了一个专业的仪表板,其采用了立体主义理念,主要用于创建图表折线图,折线部分用不同颜色来编码,使其更容易监测信息且看起来更加明了,同时可以将多个相似的数据放在一起进行比较,当然,立体主义也可以将多个不同的数据标准进行比较。上述的“立体主义理念”,可以更便捷的使用键盘进行操控,以此保证工程师可以快速查看多个指标。如图 4 所示,在不同高度情况下,面积图和平行线图表所显示相同的数据集,在区域图版本中,所显示的 30 像素点很难被监测,但是,立体主义理念可以使它更容易找到峰值,即使在 30 像素点也能很好的被检测到。

解决故障的有效办法

一般来说,导致故障的首要原因就是人为原因,而调试故障的最有效的方法是寻找人对其所做的更改,对这些已更改的信息进行收集整理,从配置更改入手,使用“ opsstreamm ”新软件。之前,由于较多的工程师对数据进行更改,致使数据源就变得越来越复杂,导致人们对其无法进行评估。

学习和借鉴

故障发生后,其中的故障审查过程可以更好的了解这些故障。

故障审查过程中,无论是谁都没有必要推卸责任,也没有人会因为这个故障被批评,其实,审查的目的是为了了解故障的起因,以及修复故障是否会引起一些不良现象出现,同时提出最为安全有效解决办法,以此来减少此类故障的再次发生。

如今, Facebook 已经开发出一种解决方案,称为 DERP (检测、升级、修复、预防),它可以提出更及时有效的解决方法。

Facebook 的基础设施提供了安全:配置系统可以防止快速部署不良配置,其中核心服务是为客户提供 API ,以此避免故障发生;核心库是为了解决因资源枯竭所引发的延迟问题,建立更方便的仪表板和工具助力解决可能引起的问题,同时对故障进行改进,最重要的是,故障发生后,应该汲取经验教训,进行更改,使基础信息更稳定。

以上内容是数人云今天为大家带来的 Facebook 面对大规模系统工程故障时所提供的的解决方案,可以通过高密度的仪表板与立体主义理念进行故障排查,然后通过 DERP 对其进行实时监测、升级、修复等,以此来确保信息更稳定,保证故障发生的频率逐渐降低。

作者: Ben Maurer

原文: Fail at Scale Reliability in the face of rapid change

http://queue.acm.org/detail.cfm?id=2839461

1389 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX