TOP100summit 2017:微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增
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小时增加一千台服务器应对鹿晗恋情带来的流量暴增的更多相关文章
- TOP100summit 2017:【案例分享】魅族持续交付平台建设实践
本篇文章内容来自第10期魅族开放日魅族运维架构师林钟洪的现场分享.编辑:Cynthia 一.自动化建设历程1.1 魅族互联网发展的时间线 2003-2008年被称之为“互联网1.0时代”.2003年, ...
- TOP100summit 2017:亚马逊Echo音箱能够语音识人,华人工程师揭秘设计原理
本文编辑:Cynthia 2017年,人工智能的消费产品落地聚焦在了智能音箱上,谷歌.亚马逊纷纷推出智能音箱产品,国内的阿里巴巴推出天猫精灵,小米推出小米AI音箱.智能音箱通过语音可以发出指令,未 ...
- TOP100summit 2017:小米唐沐等大咖精心挑选的100个年度研发案例实践
2017年,机器学习.大数据.人工智能等词汇成为软件研发行业的主流,大前端.DevOps.区块链等技术方式成为热点方向:2017年,智能硬件开始成为新的焦点,这一年更被称为智能音箱井喷的一年:2017 ...
- TOP100summit 2017 七牛云许式伟:不用JAVA和C语言,我为什么坚持Go语言
本文编辑:Cynthia 2009年,谷歌发布第二款开源编程语言,Go语言.8年过去了,很多初创公司早期使用Go进行开发,包括云计算巨头Docker.而Go语言在中国的普及程度还比不上JAVA和C语言 ...
- TOP100summit 2017:投资千亿成立达摩院,揭秘阿里在人工智能领域的探索
今天上午,阿里巴巴云栖大会在杭州开幕,第一条重磅消息是阿里首席技术官张建锋宣布成立达摩院,在全球各地建立实验室,3年内投入千亿在全球建立实验室.和高校建立研究所.建立全球研究中心等事务. 该院由全球实 ...
- 有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍
昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬 ...
- 阿里云服务出现TCP连接快速增加尤其是NON_ESTABLISHED大量增加导致内存和CPU暴增系统无法使用的问题
TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放.网络服务器程序要同时管理大 ...
- 【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步
首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ...
- Java面试题精选,大型网站系统架构你不得不懂的10个问题
作者:JavaGuide(公众号) 下面这些问题都是一线大厂的真实面试问题,不论是对你面试还是说拓宽知识面都很有帮助.之前发过一篇8 张图读懂大型网站技术架构 可以作为不太了解大型网站系统技术架构朋友 ...
随机推荐
- Oauth2.0(一):为什么需要 Oauth2.0 协议?
假设有两家互联网企业 A 和 B,其中 B 是一家提供相片云存储的公司.即 B 的用户可以把相片上传到 B 网站上长期保存,然后可以在不同的设备上查看.某一天,A 和 B 谈成了一项合作:希望 B 用 ...
- iOS中js与objective-c的交互(转)
因为在iOS中没有WebKit.Framework这个库的,所以也就没有 windowScriptObject对象方法了.要是有这个的方法的话 就方便多了,(ps:MacOS中有貌似) 现在我们利用其 ...
- 如何用一个for循环打印出一个二维数组
思路分析: 二维数组在内存中默认是按照行存储的,比如一个二维数组{{1,2,3,},{4,5,6}},它在内存中存储的顺序就是1.2.3.4.5.6,也就是说,对于这6个数组元素,按照从0到5给它们编 ...
- 【代码审计】711cms_V1.0.5 目录遍历漏洞分析
0x00 环境准备 711CMS官网: https://www.711cms.com/ 网站源码版本:711CMS 1.0.5 正式版(发布时间:2018-01-20) 程序源码下载:https: ...
- Nginx 解析PHP
配置如下: [root@localhost ~]$ cat /usr/local/nginx/conf/vhost/test.com.conf server { listen 80; server_n ...
- ASP.NET MVC入门到精通——数据库仓储
业务层调用数据层对象,我不想每次都new一个数据层对象,而是在数据层创建一个仓储,统一管理所有的对象调用. 1.在IDAL项目中,新建IDBSession.tt模板 Ctrl+S后自动生成IDBS ...
- 在recycler中写的布局不起作用
把 LinearLayout 改成 RelativeLayout ok了 创建的两种方式 1.LayoutInflater.from(parent.getContext()).inflate(R. ...
- iOS - UICollectionView 瀑布流 添加表头视图的坑
UICollectionView 瀑布流 添加表头视图的坑 首先是,需求加了个头视图在顶部,在collectionView中的头视图跟TableView的不一样,TableView的表头只要设置tab ...
- open-falcon之query
功能 query组件,提供统一的绘图数据查询入口.query组件接收查询请求,根据一致性哈希算法去相应的graph实例查询不同metric的数据,然后汇总拿到的数据,最后统一返回给用户. 配置文件 { ...
- Git学习之Git恢复进度
================================================ 继续暂存区未完成的实践 ======================================= ...