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

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

  •  
  •   dataman Apr 1, 2017 1813 views
    This topic created in 3328 days ago, the information mentioned may be changed or developed.

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

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

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

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

    帮助诊断故障的工具

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

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

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

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

    解决故障的有效办法

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

    学习和借鉴

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

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

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

    • 检测:故障如何检测报警,仪表板的用户报告如何做?
    • 升级:相关的人员能够很快的介入吗?这些人可能是通过警报而不是手动引入吗?
    • 修复:应该采取怎样的措施来解决这个问题?这些步骤可能采取自动化吗?
    • 预防:哪些改进可以消除此种故障再次发生?怎样汲取教训,以减少此种故障发生概率? 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

    No Comments Yet
    About     Help     Advertise     Blog     API     FAQ     Solana     3521 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 54ms UTC 12:04 PVG 20:04 LAX 05:04 JFK 08:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86