LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > 开源资讯 >

Nurse:LinkedIn的运维自动化修复系统

时间:2015-08-04 09:28来源:infoq 编辑:infoq 点击:
目前,LinkedIn已经成为全球最大的职业社交网站,其会员人数超过3.6亿。随着网站的迅速发展,其维护成本也不断增加,公司员工从几百人增 加到数千人。为了维护网站能够正常运转和

目前,LinkedIn已经成为全球最大的职业社交网站,其会员人数超过3.6亿。随着网站的迅速发展,其维护成本也不断增加,公司员工从几百人增 加到数千人。为了维护网站能够正常运转和发展,LinkedIn设置了一个专门的运维工程师团队,来充分了解网站的每个组件,并确保能够迅速解决网站的问 题。然而,近些年网站遇到问题的数量增加了十几倍,使得人工解决问题越来越难。于是,LinkedIn近期开发了自动修复系统——Nurse
接下来,本文就LinkedIn的自动修复系统进行介绍。

LinkedIn的网站可靠性工程师Brian Cory Sherwin表示,LinkedIn 之前都是采用人工手段来探测和解决网站运行中出现的问题。站点的稳定全都依靠工程师的双眼进行发现,然后利用双手进行手动。然而,从2010年到2015 年,网站遇到问题的数量增加了18倍,而工程师数量却只增加了个位数。为了网站的稳定发展,LinkedIn高层面临了一个重要选择——是相应的增加工程 师数量还是设计一个自动的系统来完成大部分工作。当然,根据诸多网站发展的经验,LinkedIn选择了后者。

作为开发自动修复系统的第一步,开发工程师们需要确定如何利用计算机算法来发现并解决问题。之前,LinkedIn已经建立一个单独的监控系统。该 系统包括了几十万个传感器,能够迅速发现网站异常,并向工程师们发出警告。然而,对于一个自动修复系统,只是发现问题肯定是远远不够的。该系统需要能够自 行解决一些比较简单和常见的问题。只有对于无法自动解决的复杂问题,系统进行分类和简单分析后,将其提交给工程师解决。

那么,在发现一个问题之后,系统如何进行分析和解决呢?例如,对于一个具体的问题,基于现象的警告只能说明表相——服务器无法登陆或者应用掉线等。 然而,其背后的原因可能多种多样,包括进程失效、服务器崩溃等等。在人工处理情况下,运维工程师会进一步详细分析这些现象,发掘出具体的原因,并相应的执 行不同的修复步骤。自动修复系统采用了类似的处理方法。LinkedIn团队把监控系统所发现的问题送到具体的请求工作流中。这些工作流再根据工程师之前 内置的算法和动作来修复网站。以应用程序掉线为例,监控系统发现一台机器处于异常状态,无法服务数据流。之后,数据流会收集事件发生的原因、根据内置算法 重启相关进程并把整个数据流的结果放置到卡片中。通过这些自动化的流程,工程师就可以避免把大量精力用在简单问题的处理上,从而把更多精力放置到复杂、深 入问题方面的分析和研究中,保证网站长期健康发展。

此外,LinkedIn已经把Nurse与其他系统进行了完美集成。在多个系统中间,Nurse扮演着中间人的角色。监控系统会把修复工作流的请求 发送到该Nurse,进行问题修复。目前,LinkedIn已经把代码部署系统、售票系统、远程执行系统等与Nurse集成在一起。而且,公司允许站点运 维工程师和运维工程师把解决常见问题的方法放置到系统中,供系统自动学习。

在实际测试中,LinkedIn已经证实了Nurse系统的用途。Sherwin表示,针对突然断电导致的大量服务器掉线的情况,Nurse在数分钟即完成了服务器状态的恢复,执行速度大大优于人工解决的情况。而且,Nurse目前每周会执行150个小时的修复工作流,大大节约了工程师的时间和精力。

未来,LinkedIn会继续对Nurse进行改进。其考虑增加和完善的功能包括减少监控系统的资源消耗、减少从异常状态恢复的时间以及允许运维工 程师更多的关注基于现象的警告等。而且,该系统为同类型公司和其他网站提供了一定的借鉴。相信未来会有更多的公司推出自动修复系统。
原文:http://www.infoq.com/cn/news/2015/08/linkedin-nurse

转载请保留固定链接: http://www.linuxeye.com/news/2764.html

------分隔线----------------------------
标签:Nurse
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
栏目列表
推荐内容