新浪付穩(wěn):揭秘微博如何10分鐘快速應(yīng)對百億級訪問量
原創(chuàng)【51CTO記者 謝海平 北京報道】隨著公有云的逐漸成熟,Docker技術(shù)的興起,各大企業(yè)紛紛升級企業(yè)IT架構(gòu)。新浪微博幾億+的用戶量,熱點(diǎn)事件給其帶來數(shù)倍流量瞬間暴增,如何不影響用戶體驗(yàn),又不增加巨大的服務(wù)器成本投入對技術(shù)是一個挑戰(zhàn)。基于Docker的DCP混合云就在這樣的挑戰(zhàn)下應(yīng)運(yùn)而生,既解決了流量的瞬間暴增,同時又節(jié)約了大量的成本投入。
【講師簡介】付穩(wěn):新浪微博技術(shù)專家,14年初加入微博,混合云DCP項(xiàng)目技術(shù)負(fù)責(zé)人,借助公有云彈性計算資源平臺應(yīng)對爆發(fā)式峰值流量,基于Docker、Swarm等容器云技術(shù)體系實(shí)現(xiàn)分鐘級千臺規(guī)模機(jī)器創(chuàng)建及服務(wù)部署自動化運(yùn)維體系。參與微博混合云、Feed混合云多機(jī)房部署改造、微博春晚保障工作、Feed性能優(yōu)化、HBase改造等重量級架構(gòu)改造項(xiàng)目,對高可用架構(gòu)、混合云平臺建設(shè)、多機(jī)房部署、應(yīng)用性能跟蹤及分析、業(yè)務(wù)技術(shù)保障等方面有深入研究。
51CTO:新浪微博為什么會選擇采用混合云架構(gòu)的方式來做部署?Docker又為何成為***?
付穩(wěn):每年的元旦、春晚、紅包飛等會為微博帶來巨大的流量挑戰(zhàn),這些業(yè)務(wù)場景的主要特點(diǎn)是:瞬間峰值高、持續(xù)時間短。每一次峰值事件的互動時間在3小時左右,而明星事件、紅包飛等業(yè)務(wù),經(jīng)常會遇到高達(dá)多倍的瞬間峰值。微博IT的傳統(tǒng)應(yīng)對手段,主要是“靠提前申請足夠的設(shè)備保證冗余、降級非核心及周邊的業(yè)務(wù)”這兩種,除了需要提前預(yù)知相關(guān)IT成本外,還有業(yè)務(wù)負(fù)載飽和度不一、擴(kuò)縮容流程繁瑣且周期長等問題。由此我們開始深入研究云計算相關(guān)技術(shù)以及如何利用公共云應(yīng)對流量瞬時高峰,這就是微博采用混合云架構(gòu)的起因。同時,我們也調(diào)研了更多的業(yè)界實(shí)際案例如“12306搶票”“小米秒殺”,結(jié)果發(fā)現(xiàn)原有私有云比較困難的問題實(shí)際在公有云上比較容易解決,混合云也正在成為云計算的主要模式和發(fā)展方向,于是我們選擇基于 Docker 借助公有云彈性計算能力、改造原有多機(jī)房架構(gòu),構(gòu)建混合云架構(gòu)方式來做部署。
更快速的交付和部署、更高效的虛擬化、更輕松的遷移和擴(kuò)展、更簡單的管理是我們選擇Docker主要原因。
51CTO:對于您談到的原有私有云比較困難的問題在公有云上可以比較容易解決,能談?wù)劸唧w的做法么?
付穩(wěn):我們內(nèi)網(wǎng)至少有上千臺服務(wù)器,當(dāng)訪問量在正常范圍時,這些內(nèi)網(wǎng)的服務(wù)器足以支撐。但當(dāng)流量增加至數(shù)倍時,對于微博來說,需在十幾分鐘內(nèi)完成上千臺服務(wù)節(jié)點(diǎn)擴(kuò)容。如果僅為應(yīng)對流量高峰而常備一兩千臺空閑服務(wù)器,這對公司來說成本巨大浪費(fèi)。如果利用公有云彈性資源優(yōu)勢按需彈性調(diào)度,同時改造原有運(yùn)維體系實(shí)現(xiàn)分鐘級私有云、公有云彈性擴(kuò)縮容,這樣就可以做到在成本可控前提下提供很好峰值流量應(yīng)對能力。
微博基于云計算等新技術(shù)設(shè)計與實(shí)現(xiàn)了新一代基于Docker的混合云平臺DCP(Docker Container Platform)。DCP目前已經(jīng)具備20分鐘內(nèi)彈性擴(kuò)容千臺服務(wù)器規(guī)模,所謂20分鐘內(nèi)彈性擴(kuò)容千臺服務(wù)器規(guī)模,即公有云要滿足10分鐘內(nèi)完成上千臺服務(wù)器的創(chuàng)建與交付,同時,微博DCP平臺則在接下來的10分鐘內(nèi)完成服務(wù)器的初始化、服務(wù)調(diào)度、上線等全流程,包括操作系統(tǒng)的安裝、Docker及運(yùn)維軟件環(huán)境的安裝、各種授權(quán)、服務(wù)的啟動、流量的引入、上線等,這些全部在20分鐘內(nèi)完成。峰值來臨迅速調(diào)度部署云服務(wù)器為新浪微博的流量峰值分?jǐn)偭髁?,可以很好的解決私有云短時間無法迅速擴(kuò)容服務(wù)器的問題。公有云的按量彈性需求十分貼合新浪微博的需求,也可以降低大量成本。
51CTO:DCP混合云架構(gòu)您可以簡單介紹下么?
付穩(wěn):DCP項(xiàng)目的整個技術(shù)體系也是逐漸演變過來的。當(dāng)Docker容器興起的時候,我們就做了基于Docker的私有云。而當(dāng)微博現(xiàn)有的服務(wù)器難以支撐流量峰值時,我們就構(gòu)造了基于Docker的DCP混合云架構(gòu)。這個項(xiàng)目我們把它分成不同的模塊,每一塊都有專門小組在負(fù)責(zé),持續(xù)進(jìn)行迭代。
DCP混合云架構(gòu)主要分為三層。***層是物理主機(jī)資源,可以實(shí)現(xiàn)機(jī)器資源的管理和創(chuàng)建、機(jī)器初始化及成本核算等功能。
中間資源調(diào)度層,負(fù)責(zé)容器的資源調(diào)度。通過新浪自研Dispatch基于任務(wù)模板形式進(jìn)行容器資源調(diào)度。
上層是服務(wù)編排層,主要包含基本運(yùn)維操作。比如集群、服務(wù)池的管理、配置分發(fā)、滾動發(fā)布等。
整個混合云架構(gòu)依賴分布式鏡像中心、服務(wù)發(fā)現(xiàn)、監(jiān)控中心、容量評估等基礎(chǔ)設(shè)施模塊。
51CTO:企業(yè)的IT架構(gòu)不是一成不變的,從最初的文字到現(xiàn)在的視頻、直播,業(yè)務(wù)上云過程中DCP做了哪些調(diào)整?經(jīng)過了怎樣的挑戰(zhàn)?
付穩(wěn):從最初的文字到現(xiàn)在的視頻、直播,業(yè)務(wù)上云過程中DCP逐步發(fā)展成為公司層面基礎(chǔ)平臺,面對業(yè)務(wù)使用方增多同時帶來彈性調(diào)度規(guī)模及業(yè)務(wù)需求也是不斷增加。在一定程度借助公有云的優(yōu)勢,我們與阿里云的合作也在逐漸加深。原來的合作只用阿里云的ECS層面,現(xiàn)在擴(kuò)展到CDN、視頻直播服務(wù)、安全濾網(wǎng)、OCR圖片鑒黃、大數(shù)據(jù)服務(wù)等方面。
技術(shù)上我們進(jìn)行了架構(gòu)的拆解,同時也劃分了不同的項(xiàng)目組。有的項(xiàng)目組負(fù)責(zé)IaaS主機(jī)層,有的項(xiàng)目組負(fù)責(zé)鏡像倉庫的層面,有的項(xiàng)目組負(fù)責(zé)彈性調(diào)度,有的項(xiàng)目組負(fù)責(zé)服務(wù)發(fā)現(xiàn)。每個項(xiàng)目組都會遇到自己的問題,但是每個項(xiàng)目組有個目標(biāo)制和分配制的概念,各項(xiàng)目組重要的問題會拿出來一起討論協(xié)商出方案進(jìn)行解決。
在應(yīng)對流量峰值時,單單依靠管理員進(jìn)行人工操作是遠(yuǎn)遠(yuǎn)不夠的,因此“無人值守”的自動化擴(kuò)縮容顯得十分必要。要實(shí)現(xiàn)“無人值守”的擴(kuò)縮容,首先內(nèi)部的工具系統(tǒng)需要實(shí)現(xiàn)自動化,各系統(tǒng)之間通過API打通,實(shí)現(xiàn)全部系統(tǒng)間的聯(lián)動。
運(yùn)維自動化包含業(yè)務(wù)指標(biāo)和容量指標(biāo)監(jiān)控,將產(chǎn)生的數(shù)據(jù)提供給容量決策系統(tǒng),在容量決策系統(tǒng)的決策下,實(shí)現(xiàn)從運(yùn)維自動化進(jìn)化為無人值守的擴(kuò)縮容。
軟件質(zhì)量是我們在這個過程中發(fā)現(xiàn)的最重要問題,運(yùn)維系統(tǒng)為了保證成功率,我們需要在不同彈性擴(kuò)容階段有失敗的重試等等各種各樣的策略。保證成功率后隨著規(guī)模越來越大,擴(kuò)容次數(shù)由月為單位變?yōu)橥惶焱粋€時間段多次發(fā)布,擴(kuò)容規(guī)模由幾十臺至百臺甚至千臺級別。如何在這么短的時間內(nèi)做到性能上的絕對保障,也是一個很大的挑戰(zhàn)。
51CTO:新浪微博采用了怎樣的部署來實(shí)現(xiàn)混合云的安全?
付穩(wěn):最開始做Docker的時候,首先新浪內(nèi)網(wǎng)有一套自己完整的安全解決方案。私有云上用OpenStack做虛擬化,把安全性做的很好;公有云上有安全組,網(wǎng)絡(luò)基于公有云VPC網(wǎng)絡(luò)來規(guī)避安全風(fēng)險;內(nèi)網(wǎng)和公網(wǎng)之間還有一套嚴(yán)格的安全隔離體系。
51CTO: DCP未來的發(fā)展方向是什么?
付穩(wěn):混合云DCP項(xiàng)目已經(jīng)完成一套完備的基于Docker的全自動化運(yùn)維平臺的建設(shè),具備20分鐘擴(kuò)容部署千臺公有云服務(wù)器的能力,并完成了微博主要業(yè)務(wù)的改造覆蓋。在2017年春晚保障中,在不到一天的時間內(nèi)完成了近5000臺服務(wù)器的創(chuàng)新和部署上線,幫助微博實(shí)現(xiàn)了在新的流量峰值的情況下整體服務(wù)無降級的成績。
未來我們將在內(nèi)網(wǎng)私有云虛擬化、在線離線資源整合、DCP平臺支持機(jī)器學(xué)習(xí)、OpenDCP開源等方面進(jìn)行體系化建設(shè)。
為打造DCP技術(shù)品牌建設(shè),現(xiàn)在的DCP主要功能已通過OpenDCP開源。
OpenDCP是基于Docker技術(shù)的混合云管理平臺,全自動化實(shí)現(xiàn)機(jī)器創(chuàng)建、環(huán)境初始化、容器編排、服務(wù)發(fā)現(xiàn)一體化擴(kuò)容能力。涵蓋運(yùn)維配置管理、發(fā)布、變更環(huán)節(jié),實(shí)現(xiàn)敏捷發(fā)布的全自動運(yùn)維體系。功能覆蓋鏡像市場、多云對接、服務(wù)編排、服務(wù)發(fā)現(xiàn)等云資源管理主要環(huán)節(jié)。支持金山云、阿里云等主流云廠商及用戶私有云,支持Nginx、SLB等服務(wù)發(fā)現(xiàn)方式,支持Java、PHP、C/C++、Go等主流語言。今年開始我們會進(jìn)行OpenDCP開源推廣及持續(xù)建設(shè),接收業(yè)界與開源社區(qū)的反饋需求,打磨好OpenDCP開源產(chǎn)品。希望把OpenDCP做的更易用、更通用,推廣到業(yè)界更大范圍來使用,也歡迎大家來一起建設(shè)OpenDCP。
World Of Tech 專注互聯(lián)網(wǎng)IT技術(shù)領(lǐng)域
三大章節(jié),15大技術(shù)專場,
50+國內(nèi)外一線互聯(lián)網(wǎng)精英大咖站臺
打造兼顧技術(shù)視野、技術(shù)實(shí)戰(zhàn)、技術(shù)前瞻的
密集式干貨集中營!
【Tips】
使用優(yōu)惠碼【ED5DA1BE42016F1D】購買參會門票,立享200元優(yōu)惠!4月10日前支付有效。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】