【DevOps Summit焦点】百度贴吧DevOps经验大公开,撑住每日30亿拜访次数的关键
2016-07-06 09:31:50 | 来源:ithome | 投稿:小艾 | 编辑:dations

原标题:【DevOps Summit焦点】百度贴吧DevOps经验大公开,撑住每日30亿拜访次数的关键

蔚为中国最大社群论坛的百度贴吧(简称贴吧),每天访问次数30亿人次、API呼叫百亿次,一日新增的贴文有4千万则,累积13年的贴文数量已经累积了930亿则,百度资深研发工程师陈建森在今年DevOps Summit大会上透露,必须靠超过1万台伺服器,才能应付如此庞大的业务需求。

同时,因应行动装置的发展,百度开始推出影像直播、电影及游戏等服务,每天交付至正式环境的程式码上传次数,也高达100次,对于工程团队产生相当大的压力。贴吧已经从最原始的论坛,变成「功能複杂的产品。」

陈建森表示,为了应付庞大的业务需求,百度在北京、广州及南京分别架设IDC机房,假如北京机房故障,可以将服务迁移至他处,「对容灾、容错都有帮助。」但只靠硬体建置还不够,在软体架构上还得配合才行,陈建森表示,百度採用LNMP架构(Linux、Nginx、MySQL、PHP),将系统拆分为微服务架构(Microservices),服务之间则透过HTTP协定互相沟通。最后,贴吧更将1万台伺服器内的系统全部容器化,总共达到5万个Container的使用规模,而容器化不仅提升部署效率,「也让系统水平扩展变得更加简单。」他表示,微服务化也能让各团队维运系统的责任分工更明确,「业务开发速度能更快。」

但是,即使大幅导入微服务、Container技术及异地备援等机制,贴吧服务的稳定性仍然是个痛点。在2015年时,贴吧2015年核心服务稳定性为99%,每天出现的系统异常总共超过200次,而精準定位系统故障问题,也往往超过了30分钟才能恢复正常。

陈建森解释,因为伺服器规模过于庞大,只要几台机器出现异常,就足以让百度的服务受到影响。再者,由于贴吧论坛的服务越来越庞杂,当系统出现异常状况时,光是找出问题也相当耗时,只靠工程师「逐一排除异常的作法,还是会让同样的问题层出不穷。」百度想办法找出新的作法才行。

建置线上服务自动保障系统,确保服务维持高可用性

加上贴吧底层子系统超过200套,也分散部署在三地的IDC机房,即使用光纤连线,还是会因距离过远,而产生传输延迟的问题。

所以,为了让系统更加稳定,百度着手建置线上服务自动保障系统,陈建森解释,此系统的目标是确保服务维持高可用性,同时,也要让维运作业尽可能自动化,具备排除系统异常的能力。不只如此,百度还希望打造贯穿两者的一站式平台,「让这样的系统也能变得更易用。」

而且这套自动保障系统,不只是用来排除故障,也因自动化,所以能快速解决问题,这套系统的设计核心是「在有限资源下,达到最佳的服务品质」,陈建森表示,百度用系统反应时间的数据,来定义这套自动保障系统所要维护的服务品质指标,所以,连带也解决另一个百度最关心的系统反应时间延迟问题。

针对不同伺服器规模,订定相异保护策略

陈建森归纳,系统发生异常时,往往从小部分模组开始,进而才扩散到整体架构中,因此,确保服务品质最关键的一环就是「确保系统模组的稳定性。」因此,贴吧锁定了三大方向,藉以落实服务高可用性:资源调度、服务降级,以及过载保护。同时,百度也会针对问题规模大小,来提供不一样的保护策略。

例如单台伺服器上,线上系统会分配每个网页请求的反应时间,万一某模组回应请求的反应时间过慢、等待时间过长,「该请求会停止,系统会自动降级,确保系统不会发生故障。」同时,由于贴吧採取LNMP架构的设计,团队也为Nginx、HHVM两大核心元件,开发远端程序呼叫(Remote Procedure Call,RPC)负载平衡模组,确保系统的稳定性。

万一故障从单一伺服器逐渐扩散,进而影响了整体服务品质,贴吧也订定了不同的对策因应。第一种方式是利用百度异地机房的备援架构,分散单一机房的流量压力,藉此维持使用者的用户体验。

再者,当系统资源不足以应付用户流量需求时,贴吧则透过页面快取(pagecache)及业务降级解决。陈建森解释,贴吧在使用者进行访问介接层中,实作可水平扩展的Nginx模组,并且在json文件中,告知系统哪些页面要存入快取。

当使用者的需求得到系统回应时,系统会将请求结果储存在快取丛集中(cache cluster)。一旦请求失败、后端系统失灵,Nginx模组则会从快取丛集中,读取先储存的内容,并且转给使用者,「即使后端失灵,我们仍然可以提供服务给用户」。另外,浏览次数较高的页面,由于储存快取的频率高,读取成功的机率也比较大。

同时,系统也会开始进行服务降级,限缩可以进行访问的系统模组,降低资源消耗。最后,为避免过载,系统也开始针对异常流量,进行限流管理。

儘管自动化能大量减少异常发生,不过仍无法100%避免,面对庞大的系统,万一每个系统问题都必须被排除,势必会浪费大量的人力及时间。因此陈建森表示:「必须精简问题,不将所有异常列入考虑」,已维持服务稳定性为最高优先。例如,某台伺服器失灵,但是没有对服务造成伤害,此时便不需要特别排除其故障问题。

架构革新让系统异常次数陡降8成

透过一连串的架构革新,陈建森表示,目前,整体服务稳定度达到了99.95%,每天系统异常次数从200次,下降到30次,而定位系统异常的时间从30分钟,更减少到10分钟。在百度贴吧的经验中,陈建森也得出了两大心得。他表示,如果想要实现自动化,标準化、规範化是关键。此外,自动化系统也要能因应技术演进,持续发展,「确保业务不断发展的同时,自动化系统仍然可继续沿用。」

tags:撑住   次数   关键   经验   焦点

上一篇  下一篇

相关:

边防战士持枪杀人 [焦点]

边防战士持枪杀人 已联系部队愿自首 7月5日晚上九点多,有人在网上发布了一张协查通告,在这张协查通告上,写着一名武警战士因枪杀队友,持枪躲进山林。其手持一把微型冲锋枪,里面有19颗子弹。 对于这样的通告,经

安庆万头猪爬屋顶求生 [焦点]

安庆万头猪爬屋顶求生 养殖人员徒手救援 7月3日,安庆怀宁发生一起洪涝灾害,境内一处圩堤在持续的降雨冲击下溃口,洪水迅速涌入圩堤内的一处养殖企业,造成该企业的房屋被淹,大量生猪溺亡,所幸附近群众已被提前转

武汉女孩背男友过马路 [焦点]

武汉女孩背男友过马路 网友夸奖其善解人意 近日,武汉地区连续降下大雨,不少路段都已经被水淹没了。就在这时,一张淌水过马路的照片很快就走红了网络。在这张照片中,过马路的是一对小情侣,并且一个背着另一个过马

动画续集抢钱…四大关键

夏季强档电影“海底总动员2:多莉去哪儿?”人气强滚滚,已在全球横扫逾5亿美元票房,可望超越“玩具总动员3”成为皮克斯在美国最卖座的电影。要让动画续集获得成功,有以下四大关键秘诀。热门动画永不过气“海底总动

独/汤尼陈从小受霸凌 年过半百不曾有过性经验!

记者阮馨仪/台北报道日前小S在第27届金曲奖大开性别气质玩笑,失言惹风波,也唤醒社会大众对性霸凌及性别议题的关怀。台湾最有名的“温柔汉”汤尼陈,因为性别气质阴柔,从小就被嘲笑“娘娘腔”,贴上同性恋标签,成

站长推荐: