阅读更多
目前,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
  • 描述: Facebook 数据中心运维主管
  • 大小: 27 KB
12
0
评论 共 8 条 请登录后发表评论
8 楼 aa87963014 2013-11-28 10:40
负责2w 台电脑重启?
7 楼 ray_linn 2013-11-26 11:41
2万台,以服务器99.99%的鲁棒性要求,一天也没几台有故障...
6 楼 longshaog 2013-11-25 17:42
这不是让别人非死不可吗?
5 楼 bbbbb1202 2013-11-25 15:50
好犀利的样子~~~
4 楼 178789175 2013-11-25 09:44
牛逼啊。。。
3 楼 vfate_linux 2013-11-23 22:10
看看国外的牛x技术...发现中国很落后...
2 楼 vcok 2013-11-22 21:34
你这不是让别人非死不可吗?
1 楼 tuhaihe 2013-11-22 16:14
Facebook很牛!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • calm-cloud:实践搭建:springcloud + nacos +网关+ springsecurity

    实践建造springcloud的maven工程 项目中的技术选型是: 服务注册中心,服务配置: 纳科斯 服务之间的调用: 开放式 服务网关: 网关 用户登录: Spring安全 持久层框架: mybatis-plus 数据库驱动: mybatis-...

  • springboot + spring security验证token进行用户认证

    SecurityContextHolder是spring security最基本的组件。用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限等这些都被保存在SecurityContextHolder中。...

  • spring boot项目整合spring security权限认证

    2、项目配置文件,连接数据库 3、一个简单接口 ...用户认证通过去访问系统资源时spring security进行授权控制,判断用户是否有该资源的访问权限,如果有则继续访问,如果没有则拒绝访问。张三的权限是p1 李四的

  • Spring Security——认证、授权的工作原理

    二、Spring Security认证流程 (源码跟踪) 1、AuthenticationProvider 2、UserDetailsService 3、PasswordEncoder 三、Spring Security授权流程 (源码跟踪) 1、授权决策 一、Spring Security 原理 跳转到目录...

  • 使用Spring Security框架处理认证和授权

    Spring Security主要解决了认证与授权相关的问题。认证:判断某个账号是否允许访问某个系统,简单来说,就是验证登录授权:判断是否允许已经通过认证的账号访问某个资源,简单来说,就是判断是否具有权限执行某项...

  • Spring Security OAuth2.0认证授权

    什么是认证1.2 什么是会话1.3什么是授权1.4授权的数据模型1.4 RBAC1.4.1 基于角色的访问控制2、基于Session的认证方式3、整合案例3.1 SpringMVC+Servlet3.0模拟认证、会话、授权3.1.1引入依赖3.1.2 Spring 容器配置...

  • Spring Security OAuth2.0认证授权知识概括

    Spring Security OAuth2.0认证授权知识概括安全框架基本概念基于Session的认证方式Spring SecuritySpringSecurity应用详解 安全框架基本概念 什么是认证: 进入移动互联网时代,大家每天都在刷手机,常用的软件有...

  • Spring Security 之多AuthenticationProvider认证模式实现

    多AuthenticationProvider认证模式实现原理及源码分析可参考:https://github.com/mingyang66/spring-parent/blob/master/spring-security-oauth2-server-redis-service/providermanager.md 多...

  • 【SpringBoot高级篇】SpringSecurity认证 (三)

    SpringSecurity认证(三)工作原理认证方式内存用户信息认证PasswordEncoder连接数据库用户信息认证创建数据库pomapplication.ymlentitymapperservice使用BCryptPasswordEncoder测试 工作原理 Spring Security所解决...

  • 三.SpringSecurity基础-认证原理

    SpringSecurity是基于Filter实现认证和授权,底层通过FilterChainProxy代理去调用各种Filter(Filter链),Filter通过调用AuthenticationManager完成认证 ,通过调用AccessDecisionManager完成授权。流程如下图: ...

  • java认证授权(Spring Security)

    由于本项目基于Spring Cloud技术构建,Spring Security是spring家族的一份子且和Spring Cloud集成的很好,所以本项目选用Spring Security作为认证服务的技术框架。Spring Security 是一个功能强大且高度可定制的身份...

  • Spring Security 认证研究

    FilterChainProxy是一个代理,真正起作用的是FilterChainProxy中SecurityFilterChain所包含的各个Filter,同时这些Filter作为Bean被Spring管理,它们是Spring Security核心,各有各的职责,但他们并不直接处理用户的...

  • 看源码,重新审视Spring Security中的角色(roles)是怎么回事

    在网上看见不少的博客、技术文章,发现大家对于Spring Security中的角色(roles)存在较大的误解,最大的误解就是没有搞清楚其中角色和权限的差别(好多人在学习Spring Security时,是不是对于到底加不加“ROLE_”...

  • SpringSecurity权限管理框架系列(四)-Spring Security结合MySQL数据库实现自定义权限认证

    1、自定义权限认证的实现思路 自定义一个实体类LoginUser用来保存SygUser用户信息以及权限信息Set<String> permissions 让这个LoginUser实体类实现Userdetails接口 自定义的MyUserDetailsServiceImpl类...

  • Spring Security+jwt+redis+自定义认证逻辑 权限控制

    Spring Security+jwt+redis+自定义认证逻辑 权限控制

  • 学习Spring Boot:(二十八)Spring Security 权限认证

    主要实现 Spring Security 的安全认证,结合 RESTful API 的风格,使用无状态的环境。 主要实现是通过请求的 URL ,通过过滤器来做不同的授权策略操作,为该请求提供某个认证的方法,然后进行认证,授权成功返回授权...

  • springsecurity oauth2.0 springboot整合 spring security认证与授权4

    一 spring security DaoAuthenticationProvider和UserDetailsService的职责搞混淆,其实UserDetailsService只负责从特定的地方(通常是数据库)加载用户信息,仅此而已。而DaoAuthenticationProvider的职责更大,它...

  • 两张图疏通Spring Security认证流程

    最好自己是已经跟着文档或者视频做过一次Spring Security认证流程可以看看我的上一篇博客更加优雅的认证授权——Spring Security_Hzq958的博客-CSDN博客所以我们的编码流程自顶向下的方式是非常合理, 避免了反复...

  • 一个使用Androidstudio开发的校园通知APP

    一个使用AndroidStudio开发的校园通知APP,支持注册登录,支持聊天,后端技术:http get post 方法(分别有json数据格式和form数据格式),websocket长连接,用于接收消息,mqtt协议用于查看数据。

Global site tag (gtag.js) - Google Analytics