10月8日中午12点,鹿晗和关晓彤宣布恋情,年近30的我并不关心小鲜肉们的分分合合,但是作为壹佰案例这个软件研发行业自媒体的小编,我更关注因此引发的微博宕机事件。

鹿晗公布恋情的微博获得462884次转发,986409条评论,25666617个点赞,再加上一时间舆论四起,各个明星大号都动起来了,虽然还没有看到微博公布访问数据,但想想也是很可怕的一次服务器冲击,很不幸微博服务器宕机了,微博客户端无法正常刷新,评论多个页面无法正常显示……
但是,一个小时之后,一切恢复正常,微博昵称“来去之间”的用户发微博称,刚加了1千台服务器。

那么问题来了,为什么阿里双十一都不会宕机,微博会被一场恋情搞崩溃?出现问题之后又是如何在1小时内解决问题,增加了一千台服务器呢?

首先,微博为什么会宕机

事实上,鹿晗事件并不是微博第一次出问题,从很久以前文章马伊琍的周一见,再到后来出轨队、吸毒队,再到宝宝事件、郭敬明事件、薛之谦事件,每次出现大的热点,微博的服务器就会受到一些影响,随之,是微博股价的上涨。
那为什么微博就不能应对高并发呢?阿里双十一那么大流量,也没看见宕机呀!
阿里每年双十一的高并发是可预见性的,提前会进行购买带宽资源、增加服务器资源、进行异地容灾等等准备工作。
而微博不可能为了不可预见的热点事件来准备应对高并发的资源,毕竟带宽和服务器都意味着运维成本。平时增加了服务器资源而又用不上,导致机器空载,也是一种浪费。
实际上,经过这么多次热点事件,微博应对突然的高并发是有非常多的经验的,就像这次能够1个小时解决问题。

其次,微博如何能够在1个小时内增加一千台服务器?

要知道,鹿晗宣布恋爱的那天还处于假期,大多数工程师被堵在返程路上或者刚出完午饭,就算临时召回也并不那么顺利。
有一个段子说微博工程师当天结婚,丢下新娘跑去处理程序,直到岳父来喊喝酒。假期并不能保持随时的工作状态,而值班人员的应急处理能力真的要看运气。

那么,微博如何快速解决问题呢?

微博的技术团队在最近两年建设完成了一套基于Docker的全自动化运维平台,具备半小时扩容1000台公有云服务器的能力,并完成了微博主要业务的改造覆盖。
以2017年春晚为例,不到一天完成近5000台服务器的创新和部署上线。

第三,微博DCP自动化运维系统的保障思路

新浪微博技术专家,同时也是混合云DCP(Docker Cloud Platform)项目技术负责人付稳介绍,微博自动化运维平台是借助公有云弹性计算资源平台应对爆发式峰值流量,基于Docker、Swarm等容器云技术体系实现分钟级千台规模机器创建及服务部署自动化运维体系。

每年的元旦、春晚等节点都会给微博带来流量挑战,瞬间峰值高但是持续时间短,当流量激增形成脉冲计算时,保证系统稳定性的唯一办法就是快速扩容甚至是实时扩容,微博引入阿里云的弹性计算资源来应对流量短时高峰的情况。
DCP系统最核心的部分是弹性伸缩,架构内部主要采用私有云,早期采用物理机部署,通过化零为整建立余池。另外通过 OpenStack+KVM 的虚拟化方式进行资源整合,建立VM池,在公有云方面通过采用阿里云等设施进行多云对接。

第四,微博DCP自动化运维系统有哪些值得借鉴的地方

微博通过DCP运维系统,让日常运维资源更加合理化,降低运维成本,而出现流量爆发情况时可以快速应对,对很多大型平台的运维工作都有借鉴意义。

DCP平台设计理念、DCP系统架构以及弹性伸缩的应用思路等方面都值得运维平台学习,而微博技术专家、混合云DCP项目技术负责人付稳也将在2017年TOP100全球软件案例研究峰会上发表主题为“应对鹿晗恋情爆发,微博如何应对短时间亿级用户访问——微博OpenDCP混合云设计与实践”的课程分享。

TOP100全球软件案例研究峰会已举办六届,甄选全球软件研发优秀案例,每年参会者达上万人次。包含产品、团队、架构、运维、大数据、人工智能等多个技术专场,现场学习谷歌、微软、腾讯、阿里、百度等一线互联网企业的最新研发实践。

更多TOP100案例信息及日程请前往[官网]查阅。4天时间集中分享2017年最值得学习的100个研发案例实践。本平台共送出10张开幕式单天免费体验票,数量有限,先到先得。免费体验票申请入口。

TOP100summit 2017:微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增的更多相关文章

  1. TOP100summit 2017:【案例分享】魅族持续交付平台建设实践

    本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享.编辑:Cynthia 一.自动化建设历程1.1 魅族互联网发展的时间线 2003-2008年被称之为“互联网1.0时代”.2003年, ...

  2. TOP100summit 2017:亚马逊Echo音箱能够语音识人,华人工程师揭秘设计原理

      本文编辑:Cynthia 2017年,人工智能的消费产品落地聚焦在了智能音箱上,谷歌.亚马逊纷纷推出智能音箱产品,国内的阿里巴巴推出天猫精灵,小米推出小米AI音箱.智能音箱通过语音可以发出指令,未 ...

  3. TOP100summit 2017:小米唐沐等大咖精心挑选的100个年度研发案例实践

    2017年,机器学习.大数据.人工智能等词汇成为软件研发行业的主流,大前端.DevOps.区块链等技术方式成为热点方向:2017年,智能硬件开始成为新的焦点,这一年更被称为智能音箱井喷的一年:2017 ...

  4. TOP100summit 2017 七牛云许式伟:不用JAVA和C语言,我为什么坚持Go语言

    本文编辑:Cynthia 2009年,谷歌发布第二款开源编程语言,Go语言.8年过去了,很多初创公司早期使用Go进行开发,包括云计算巨头Docker.而Go语言在中国的普及程度还比不上JAVA和C语言 ...

  5. TOP100summit 2017:投资千亿成立达摩院,揭秘阿里在人工智能领域的探索

    今天上午,阿里巴巴云栖大会在杭州开幕,第一条重磅消息是阿里首席技术官张建锋宣布成立达摩院,在全球各地建立实验室,3年内投入千亿在全球建立实验室.和高校建立研究所.建立全球研究中心等事务. 该院由全球实 ...

  6. 有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍

    昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬 ...

  7. 阿里云服务出现TCP连接快速增加尤其是NON_ESTABLISHED大量增加导致内存和CPU暴增系统无法使用的问题

    TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放.网络服务器程序要同时管理大 ...

  8. 【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步

    首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ...

  9. Java面试题精选,大型网站系统架构你不得不懂的10个问题

    作者:JavaGuide(公众号) 下面这些问题都是一线大厂的真实面试问题,不论是对你面试还是说拓宽知识面都很有帮助.之前发过一篇8 张图读懂大型网站技术架构 可以作为不太了解大型网站系统技术架构朋友 ...

随机推荐

  1. python qq邮箱发送邮件

    使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...

  2. POJ 1459 && ZOJ 1734--Power Network【最大流dinic】

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 25108   Accepted: 13077 D ...

  3. Hibernate的Configuration和SessionFactiory

    Configuration: Configuration是hibernate的入口,负责管理Hibernate的配置信息,这些配置信息都是从配置文件hibernate.cfg.xml或者Hiberna ...

  4. Sharepoint文档的CAML分页及相关筛选记录

    写这篇文章的初衷是因为其他的业务系统要调用sharepoint的文档库信息,使其他的系统也可以获取sharepoint文档库的信息列表.在这个过程中尝试过用linq to sharepoint来获取文 ...

  5. RF失败案例重跑

    1.1        失败案例重跑 该功能主要是针对上次连跑失败的案例需要重新执行测试的情况,可自动识别上次执行失败的案例并进行重跑,无需手动选择相应的案例,简单高效. 1.5.1.        重 ...

  6. Selenium 基本用法

    如下,使用 Selenium 打开淘宝首页并获取页面源代码: from selenium import webdriver browser = webdriver.Chrome() # 声明一个浏览器 ...

  7. oracle URL参数获取

    改函数主要是从URL中获取参数例如 sssss.html?cur=aaa&ref=cccc 调用方式:f_querystr(url,'cur','&'); CREATE OR REPL ...

  8. Java枚举的小用法

    package com.lxc.wmb; public enum TestEnum { Success("200","成功!"), Faild("50 ...

  9. JSP中的动态包含和静态包含的区别

    本文转载自http://blog.csdn.net/xuxu198899223/article/details/8501044 1. 语法格式 (1)静态包含:<%@ include file= ...

  10. 关于PHP中的 serialize () 和 unserialize () 的使用(即关于PHP中的值与已存储的表示的相互转换)

    有时,我们会碰到这样的数据(字符串) 1 a:3:{i:0;s:44:"/Uploads/images/2017-07-21/5971a9a08ad57.png";i:1;s:44 ...