Facebook 运维内幕曝光:一人管理2万台服务器
Facebook 运维内幕曝光:一人管理2万台服务器
目前,Facebook 已经凭借它在网络基础建设上的可扩展能力成为了行业的领军者。Facebook 数据中心运维主管 Delfina Eberly(下图人物) 在“7x24 Exchange 2013 秋季会议”上的演讲中为我们透露了 Facebook 部分内部运维数据,下面我们来具体了解下。
Facebook 数据中心运维主管 Delfina Eberly
服务器数量惊人,一人管理 2 万台
Facebook 服务器数量惊人,其硬件方面的工作重点主要放在“可服务性”上,内容也涉及服务器的初期设计,一系列工作的目标就是为了保证数据机房的设备维修最简单、最 省时。她介绍说,每个 Facebook 数据中心的运维工作人员管理了至少 20,000 台服务器,其中部分员工会管理数量高达 26,000 多个的系统。
近期 Facebook 的服务器与管理人数比又创下了新高,目前已经超过 10000:1,可以查看文章高扩展性对此进行更加详细的了解。
大数据汹涌,运维工作不轻松
在 Facebook 数据中心做运维工作并不轻松,对工作人员的能力要求很高。他们每天面对的是海量数据。
据统计,Facebook 目前拥有 11.5 亿用户,日常登录用户约 7.2 亿。每天 Facebook 用户分享的内容达到 47.5 亿条,“赞”按钮点击次数近 45 亿次。Facebook 目前存储了 2400 亿张照片,每月照片存储容量约增加 7 PB(注,单位换算:1PB=1024TB)。
自动故障诊断系统:原为留住人才
为了管理运维工作,Facebook 已经开发了相应软件来自动化处理日常运维任务,如 CYBORG 可自动检测服务器问题并进行修复。如果 CYBORG 无法自动修复检查出的问题,系统将自动给订单系统发送警告,并分派给数据中心工作人员,以对相应问题进行详细追踪与分析。
Eberly 提到,自动化工作的目标是尽量避免将技术人员派往现场解决问题,除非必须对服务器进行现场处理。强调自动化不是因为 Facebook 对打造无人数据中心感兴趣,原因在于 Facebook 重视自己的员工。
Eberly 解释说:我们要留住人才,因为大家更喜欢高水平的任务,公司希望让他们留下来与我们一起进步成长,这对 Facebook 来说至关重要。
“可服务性”主导服务器设计:节时 54%
在 Facebook,运维团队的时间与工作量是根据 Facebook 硬件设计来安排的。比方说,全部服务器从头开始就坚持“可服务性”这一原则来进行设计,那么数据中心的工作人员就没有必要老钻机房了;服务器被设计成无需 工具就可以对磁盘和组件进行替换。这样做的结果就是:Facebook 用来修理服务器的时间减少了 54%。
Eberly 介绍说,Facebook 运维团队会仔细跟踪设备故障率,这一数据会为公司的采购提供参考。公司的财产管理和订单系统用序列号来跟踪硬盘和其他组件,这方便完整了解每个硬件的生命周期。
Eberly 还提到,虽然这些系统很复杂,但并不需要太多开发者。Facebook 的运维团队仅有 3 名软件工程师,但他们对数据中心的工作来讲至关重要。
最后
从 Eberly 的介绍中,我们可以看到 Facebook 在可扩展性网络建设上的实力。同时,这也为行业提供了一些可参考的经验,如:开发自动故障系统,根据“可服务性”设计基础架构。同时,运维也是一个系统工程,需要得到其他部门的配合支持才行。
Via Datacenterknowledge
想通过手机客户端访问开源中国:请点这里
We
Finally Cracked The 10K Problem - This Time For Managing Servers With 2000x Servers Managed Per Sysadmin
In 1999 Dan Kegel issued a big hairy audacious challenge to web servers:
It's time for web servers to handle ten thousand clients simultaneously, don't you think? After all, the web is a big place now.
This became known as the C10K problem. Engineers solved the C10K scalability problems
by fixing OS kernels and moving away from threaded servers like Apache to event-driven servers like Nginx and Node.
Today we are considering an even bigger goal, how to support 10
Million Concurrent Connections, which requires even more radical techniques.
No similar challenge was issued for managing servers in a datacenter, but according toDave Neary from
Red Hat, in a recentFLOSS Weekly episode, we have passed the 10K barrier for server management with 10,000 or more servers managed per
sysadmin.
Should We Let This Milestone Pass Without Mention?
Absolutely not! It’s a stunning accomplishment with 200x-2000x increases in productivity. Dave said he remembered in the 1990s it took one sysadmin to manage 4 or 5 Windows servers. A Linux sysadmin could
manage 50 to 60 servers.
Now companies are managing over 10,000 servers per sysadmin. This huge change is rooted both in IaaS,
treating a datacenter as an elastic programmable resource, divorcing operations from infrastructure deployment, and in the DevOps revolution,
with its emphasis on tools, culture, automation, metrics, sharing of resources, and infrastructure as code.
What Will It Take To Manage 10 Million Servers Per Sysadmin?
Who might know? Google of course.
As James Hamilton says, Counting Servers is Hard,
but Microsoft says they have 1 million servers,
and Google is planning for 10 million servers, so it may take a while before we can get to 10 million servers per sysadmin.
But when it does happen the base will be built on:
Treating The
Datacenter As A Computer.And within the datacenter Multiplex
Multiple Works Loads On Computers To Increase Machine Utilization And Save Money.But that’s just a single datacenter. That doesn’t get you 10 to million servers. For 10 million servers you have to exploit many datacenters, so you build a system likeSpanner that
can scale up to millions of machines across hundreds of datacenters and trillions of database rows.Then of course you’ll need to create an amazing world
spanning network to connect it all together.But to really get 10 million servers per sysadmin you’ll probably need a huge dose ofDeep
Learning to make sense of it all.
At a high level the approach of scaling to 10 million connections per server and scaling 10 million machines per sysadmin are the same: scalability is specialization.
But at lower level they differ completely. Scaling to 10 million connections is about removing layers and doing the work yourself. Scaling to 10 million servers is all about putting the intelligence into
smarter and smarter layers. A lot like how human body utilizes trillions of individual components mediated by many autonomous systems all directed by a parallelized and decentralized brain.
Related Articles
Facebook 运维内幕曝光:一人管理2万台服务器的更多相关文章
- 搭建jumperserver堡垒机管理万台服务器-2
搭建jumperserver堡垒机管理万台服务器-2 1 Jumpserver堡垒机概述-部署Jumpserver运行环境 2 安装Coco组件 3 安装Web-Terminal前端-Luna组 ...
- 搭建jumperserver堡垒机管理万台服务器-1
搭建jumperserver堡垒机管理万台服务器-1 1 Jumpserver堡垒机概述-部署Jumpserver运行环境 2 安装Coco组件 3 安装Web-Terminal前端-Luna组 ...
- puppet运维自动化之用户管理
系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户 ...
- 干货 | 运维福音——Terraform自动化管理京东云
干货 | 运维福音--Terraform自动化管理京东云 原创: 张宏伟 京东云开发者社区 昨天 Terraform是一个高度可扩展的IT基础架构自动化编排工具,主张基础设施即代码,可通过代码集中管 ...
- puppet批量管理500多台服务器
前言 puppet使用了有一段时间了,之前写的手顺书一直未发布到blog上来,今天正好有空,写下一点笔记.公司在用的服务器有500多台,基本都为CentOS,版本有5和6两种,管理起来很不方便,尤其是 ...
- Liunx运维(九)-Liunx进程管理命令
文档目录: 一.ps:查看进程 二.pstree:查看进程状态树 三.pgrep:查找匹配条件的进程 四.kill:终止进程 五.killall:通过进程名终止进程 六.pkill:通过进程名种植进程 ...
- 【mongoDB运维篇①】用户管理
3.0版本以前 在mongodb3.0版本以前中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据库.即 use admin , 相当于进入超级用户管理模式,mongo ...
- Linux运维六:用户管理及用户权限设置
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- 自动化运维工具Fabric - 密码管理(env.password and ssh key)
在使用 Fabric 的过程中,如果大批量服务器处理的话,我们就需要针对配置主机的密码,每台主机的密码相同还好,不同的话,就需要针对不同的主机做配置了,以下有两种配置方式 注:本文主要参考官方文档 P ...
随机推荐
- 原生js实现form表单序列化
当我们有form表单而且里面的表单元素较多时,咱们总不能一个个去获取表单元素内的值来进行拼接吧!这样会很让人蛋疼!为了方便与后台交互并且提高自己的开发效率,并且不让你蛋疼:我们一起用原生来写一个表单序 ...
- Gradle学习总结——抓重点学Gradle
前言 网上关于Gradle的教程很多,但很多都是以"面"切入- 通过大量讲解其用法及其API分类来阐述.但Gradle API使用技巧众多,API更是成千上百,臣妾记不住呀.个人深 ...
- poj 2914&&hdu 3002 全局最小割Stoer-Wagner算法模板
#include<stdio.h> #include<string.h> #include<iostream> #define inf 0x3fffffff #de ...
- 工具-docker01
- C#中的==和Equals
== 和 Equals 简要:==比较栈上的内容,Equals比较堆上的内容 object x = 5, y = 5; Console.WriteLine(x == y); // "==&q ...
- python的数据可视化库 matplotlib 和 pyecharts
Matplotlib大家都很熟悉 不谈. ---------------------------------------------------------------------------- ...
- 继续过Hard题目.0209
http://www.cnblogs.com/charlesblc/p/6372971.html 继续过Hard模式的题目吧. # Title Editorial Acceptance Diffi ...
- asp.net core 2.1开发环境下配置IIS
asp.net core 2.1是可以在开发环境下配置到IIS中的,这样就可以在vs中按F5直接运行了 在项目上右键点击属性,然后在Debug中配置如下参数 首先点击New按钮,输入IIS,点击确定 ...
- 关于 xftp 上传文件时,仅仅是上传了0字节的问题
有两次,上传的时候出现了问题.能上传.可是上传过去的文件都是0字节.查看了各种配置,都是正常的:百思不得解: 后来想起近期在linuxserver运行apt-get update时,中间曾失败过,于是 ...
- Fibbonacci Number(杭电2070)
/*Fibbonacci Number Problem Description Your objective for this question is to develop a program whi ...