首页>会议文档 >

新浪微博 侯青龙 - 新时代下的微博LNMP架构

page:
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构
新浪微博 侯青龙 - 新时代下的微博LNMP架构

新浪微博 侯青龙 - 新时代下的微博LNMP架构

所属会议:WOT 2017全球架构与运维技术峰会( World Of Tech 2017 )会议地点:北京


下载

手机看
活动家APP客户端

扫二维码下载
或点击下载
Android iOS

7978次
浏览次数
WOT 2017全球架构与运维技术峰会( World Of Tech 2017 )所有文档 搜狐畅游 黎志刚 - 畅游运维自动化探索之旅 苏宁 王富平 - 多维分析平台实践 苏宁云商 朱羿全 - 苏宁易购全站HTTPS实践之路:如何做到兼顾安全与性能 淘宝 陈康贤(龙隆) - 网游直充如何应对大促及突发的流量高峰 腾讯 赵志辉 - 腾讯蓝鲸DevOps类应用的设计与实践 听云 廖雄杰 - 全栈APM--打造端到云的全方位监控体系 豌豆公主 陈超 - 如何打造一支高战斗力的技术团队 玩多多 单泽兵 - 互联网+玩具租赁的典型技术实战 美团 王兴星 - O2O广告的探索之路 网易云 刘超 - 网易容器云实践与云计算的那些坑 网易 马进 - 网易NDC高可用实践 新浪微博 付稳 - 新浪微博混合云DCP平台介绍与业务上云实践 新浪微博 张雷 - 微博服务化的实践与演进 新美大餐饮平台 何轼 - 新美大外卖订单系统架构实践 一下科技 汤力嘉 - CTO的管理之道 一下科技 邓铮 - 高性能视频播放调度系统 美团点评 张宇石 - 美团点评移动网络优化实践 美团点评 家尤勇 - 美团点评分布式监控 CAT 系统架构演进 蘑菇街 丁小明 - 蘑菇街搜索推荐架构的探索之路 去哪儿网 马文 - 基于Mesos、Docker构建Elasticsearch as a Service 盛邦 李春鹏 - 可知、可感、可查、可控——打造新一代Web安全治理体系 思科 徐洪涛 - 构建面向威胁的企业网络安全防御体系 搜狗运维 张博 - 搜狗智能运维实践 ThoughtWorks 钟健鑫 - DevOps Transformation Design 阿里巴巴 李钰(绝顶) - HBase in Alibaba Search 阿里巴巴 王晶昱 - 阿里企业级互联网架构实践 阿里巴巴 李灼灵(千慕) - 客服SAAS实时分析架构演进-从NoSQL到时序数据库 百度外卖 张建 - 运维平台从0到1 博睿宏远 程捷 - Web应用网络性能优化浅谈 滴滴出行 许令波 - 大流量网站的高可用建设经验 饿了么 许锦洋 - 移动动态化方案在蜂鸟的架构演进 咕咚 唐平麟 - 第十年的选择 虎牙直播 刘亚丹 - YY游戏私有云建设历程 华为 马全一 - 基于容器技术实现 DevOps Orchestration 今日头条 王烨 - 今日头条大数据平台的演进 金山云 郝明非 - 金山云直播点播基础服务演进 京东 鲍永成 - 京东新一代容器集群平台 京东商城 张克房 - 京东全链路压测军演系统(ForceBot)分享 九合创投 王啸 - 技术真的只是青春饭? 58到家 沈剑 - 微服务架构解耦利器与最佳实践 58到家 任桃术 - 58到家消息平台架构优化实践 Airbnb 丁辰 - Airbnb的Streaming ETL AWS 张侠 - 云时代架构和运维的新趋势 Brocade SE manager聂小云 - WLAN容量设计和性能优化实践 Google 梁宇凌 - On-Device AI架构及案例分析 Hulu 李彬 - Hulu视频直播系统架构:挑战与关键技术 LinkedIn 罗轶民 - 微服务在大型互联网公司的应用及其挑战 Stitch Fix 王建强 - 数据驱动的决策辅助与产品智能化

文档介绍

新浪微博在2016年Q3季度公布月活跃用户(MAU)较上年同期增长34%,至2.97亿;日活跃用户(DAU)较上年同期增长32%,至1.32亿,总注册用户达8亿多。PC主站作为重要的流量入口,承载几乎所以PC端产品的落地,面对业务的高速增长,与之对应的技术架构也面临着新的挑战。在新的时代下,微博都面临着哪些挑战?对于这些挑战,又都是怎么应对的呢?本次分享,将会为你一一道来。

演讲实录

在第一天下午高可用架构的A会场,新浪微博主站研发负责人侯青龙发表了一场《新时代下的微博LNMP架构》的演讲。演讲结束后,记者采访了侯青龙,他与记者分享了他和新浪微博的技术团队关于新时代下的LNMP架构的一些部署经验,以及在新时代中遇到的一些挑战。此外他还从弹性角度介绍了新浪微博LNMP平台在开发时的思路和收获。

用新的思路规避传统架构弊端
新浪微博作为一个重要的社交平台,经常会遇到一些突发事件,海量转发给服务架构带来极大的考验。传统做法存在一些不足之处,例如传统设备采购申请周期长、扩缩容繁琐、设备运营成本高。当面临流量压力时,常规做法是IT设备会做一部分冗余,但不能无限冗余,毕竟还需要考虑到成本问题。侯青龙以CPU为例,一般情况下,CPU利用率可能在20%~ 30%这个区间,是一种常态,新浪内部有要求,每台服务器CPU要运行到40%左右才不会被认为是闲置。但如果CPU运行到了60%,那技术团队可能就需要考虑扩容。
面对流量压力,还有一个常规做法是服务降级,将那些不是很重要的功能模块依次关闭,保证最主要功能运行无虞。但是这样做的弊端是,在最严重情况下,微博很多模块不再显示,用户体验非常不好。
在这样的情况下,新浪微博的技术团队开始思索如何既降低设备运营成本,又能增强业务的弹性扩容部署。侯青龙告诉记者,最终新浪微博选择了基于混合云平台的PHP弹性扩容部署方案,搭建了DCP平台,既可以实现业务的弹性调度,基础设施又可以跨云操作,非常好地解决了突发流量的问题。

之前在会场,有一位与会者问了一个问题:如果流量突然之间暴增,那么临时去扩容也存在一定时间差,这时该如何处理,确保服务无损?侯青龙表示这时候就需要去做提前预判。如果CPU在60%的运营状态就处于危险边缘,那么在50%的时候就应该提前去做扩容处理,如果时间紧张,那就先进行降级处理,因为我们降级比较方便,后台很多级只需要动个按钮就可以完成,优先去进行一个降级,等到扩容完成立刻恢复,尽量缩短降级的时间。
DCP的价值
那么,新浪的这个DCP平台究竟是如何解决弹性扩容和跨云问题的呢?

侯青龙告诉记者,弹性扩容是把所有环境差异通过容器化镜像进行打包,尽量让底层主机变得透明。为什么要这么做呢?是因为之前部署PHP服务器还有Java服务器,各自操作系统的选择和业务环境的部署差异非常大,即使处于冗余状态,也无法使用。但是通过DevOps Community化的技术,把这些技术全部分流到镜像中去,部署一模一样的Docker引擎,当新浪微博需要部署某个服务时,可以快速地将镜像下载下来并立即启动。
而基础设施跨云,其实等于抹平了主机的差异,让用户不再关心扩容需要多少服务器,减轻了过去在基础设施环节的工作量。

在侯青龙看来,DCP的价值在于把所有的行为在事前都以系统的方式组织起来,当需要去部署某一个服务或打包某个镜像时,都可以基于系统通过按钮的方式快速完成,细节的东西完全做到了自动化。
DCP带来的另外一个明显的好处是降低了运维的难度,因为运维人员不再需要精通技术,只需要懂得操作系统就可以了,所有技术化的东西都已经被隐藏在后端,前端呈现的就是自动化的操作界面。
为什么选择Docker?
侯青龙透露,其实以前他们也考虑过不用Docker技术,用虚拟机来代替,新浪微博在做一个开发机或者测试环节时,实际上已经有了一套纯虚拟机,完全可以直接使用。而如果基于Docker,那就意味着所有的接入方式必须以Docker方式接入。
但是最后技术团队认为,他们更希望新的服务架构对于开发的同事而言是没有感知差异的,不希望内部有两套体系,因为同一个配置实际上可以部署到弹性扩容平台,也可以部署到传统的平台,没有差异,所以最终选择了Docker技术。

此外,新的服务架构也遇到了一些难题。因为弹性扩容时代码随时会删,环节比较复杂,最稳妥的做法是全量部署,但由于PHP代码和Java代码不一样,Java代码是本地打包完了以后,直接把那个打包文件推送就行。而PHP文件完全是散的,传统方式是通过rsync去推送,但是Docker化之后,他们发现,每次全量部署都需要重新推送,哪怕代码只改动了一个指令。后来经过一些测试,他们发现镜像部署特别好,1G的镜像可能几十秒钟就下载完了,全量部署比想象中快很多。
经验分享:如何让架构变得有弹性?
侯青龙介绍到,新浪微博的业务系统都是基于PHP开发,技术团队过去做镜像、做优化时,大多都会进行单独部署,单独做成一个镜像。但当遇到需要扩容的时候,系统运行的时间就变得非常慢。原因在于过去编辑镜像的时候,技术人员会针对每一个镜像做一个打包,相当于每个镜像都包含一个操作系统,假设一个操作系统600兆大小,那么即便是镜像安装100兆大小的PHP加起来也有700兆,下载特别慢。
后来他们把这个镜像打成镜像包,所有的组件都共用一个操作系统,大小被压缩了好多,下载速度也更快。这样部署新系统功能时,以前可能要半个小时,现在只需几分钟就搞定。
在采访结束时,记者询问侯青龙对于服务架构未来发展趋势的一个预测,他表示,从宏观角度看,当企业在发展初期时,服务架构的宗旨就是怎么方便怎么做,但是当企业已经具备了一定规模,这时候服务架构就需要去考虑如何用工具解决所有问题,尽量用自动化的角度解决问题,这是他的经验分享,希望能够对大家有所帮助。

×

打开微信扫一扫,分享到朋友圈