东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

  • 2015-08-03
  • 本文字数:1541 字

    阅读完需:约 5 分钟

目前,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 进行改进。其考虑增加和完善的功能包括减少监控系统的资源消耗、减少从异常状态恢复的时间以及允许运维工程师更多的关注基于现象的警告等。而且,该系统为同类型公司和其他网站提供了一定的借鉴。相信未来会有更多的公司推出自动修复系统。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-03 07:392695
用户头像

发布了 268 篇内容, 共 118.0 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

将渲染计算搬到云端,开启低成本、强交互、沉浸式体验

阿里云视频云

云计算 阿里云 云渲染 串流

搜电充电:创新“服务卡片”,让即时充电更便捷

HarmonyOS开发者

HarmonyOS

聊聊电商系统架构, 常见的9个大坑

Java全栈架构师

程序员 后端 架构师 电商 系统秒杀

有一说一!项目中引进这玩意,排查日志又快又准

程序员小毕

程序员 面试 微服务 后端 框架

20000节点云数仓在大型商业银行的“实践之路”

酷克数据HashData

金融科技 云数据仓库 数据库·

数据库原理及MySQL应用 | 多表查询

TiAmo

MySQL 数据库 12月月更

星环数据云平台 TDC 3.1 发布,新增滚动重启、存储回收站等八大核心功能

星环科技

民航二所马勇:数据安全防护体系的探索与思考

极盾科技

数据安全

五大亮点来袭!神州云科冬季发布会报名通道开启,千份精美礼品等你来拿!

云科通明湖

TiDB Operator数据导入

TiDB 社区干货传送门

迁移 集群管理 管理与运维 备份 & 恢复

GaiaX开源解读 | 给Stretch(Rust编写的Flexbox布局引擎)新增特性,我掉了好多头发

阿里巴巴文娱技术

开源 rust 后端 rust语言 GaiaX

中移链合约常用开发介绍 (一)开发基本流程

BSN研习社

中移链

TiCDC 在多种场景的新特性的应用

TiDB 社区干货传送门

安装 & 部署 OLTP 场景实践

公交车LED电子路牌宣传效果更好吗

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

破记录!国产数据库KunDB 单节点TPC-C事务性能超180万tpmC

星环科技

别再秃头背锅了!这个小技巧统计第三方接口耗时很安逸

Java永远的神

Java 程序员 后端 架构师 springboot

从TiDB搭建到监控闭环

TiDB 社区干货传送门

监控 管理与运维

重写Nacos服务发现:多个服务器如何跨命名空间,访问公共服务?

LigaAI

Java 测试 nacos 测试环境 12 月 PK 榜

手把手教你成为荣耀开发者:应用管理指南

荣耀开发者服务平台

前端 快应用 荣耀 honor 应用集成

TiDB增强型 StatefulSet 控制器--Advanced StatefulSet

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

Lightning checksum failed 报错实践案例

TiDB 社区干货传送门

XTransfer技术专家亮相Flink Forward Asia 2022

XTransfer技术

TiDB Operator扩缩容和集群的管理

TiDB 社区干货传送门

集群管理 管理与运维 安装 & 部署 扩/缩容

百TB级TiDB集群在线更换NVME磁盘优化实践

TiDB 社区干货传送门

性能调优 管理与运维 应用适配 6.x 实践 大数据场景实践

玩转OpenHarmony PID:教你打造两轮平衡车

OpenHarmony开发者

OpenHarmony

NineData:强大的ClickHouse图形客户端工具

NineData

数据库 云计算 开发者 Clickhouse 数据管理

全球首家!星环科技通过3TB TPCx-AI测试,实现大数据与AI的完美融合

星环科技

性能最大提升60%,阿里云发布基于第四代英特尔至强的第八代ECS实例

云布道师

阿里云

Kubernetes:Flomesh 服务网格与多集群通信

Flomesh

服务网格 K8s 多集群管理

RocketMQ Connect 构建流式数据处理平台

Apache RocketMQ

RocketMQ Connect

TiCDC 源码解读(1)-- TiCDC 的架构概览

TiDB 社区干货传送门

Nurse:LinkedIn的运维自动化修复系统_语言 & 开发_张天雷_InfoQ精选文章