面對不期而至的流量高峰,在最短的時間內將服務器部署規模擴大1倍,微博是如何實現的?
近日,微博研發中心高級架構師劉道儒和阿里云云上技術服務負責人丁原接受CSDN記者專訪,介紹了微博如何基于阿里云的混合云方案和Docker等開源技術構建混合云平臺來應對業務發展中面臨的流量峰值挑戰。
微博的混合云需求
作為典型的社交媒體平臺,微博的IT架構面臨的一大挑戰就是流量峰值,包括可預期峰值流量和隨機峰值流量兩種。前者如春晚和紅包的雙重刺激,后者如范冰冰李晨事件,都會導致微博發布量和請求量暴增,包括大量的圖像和視頻,超出了冗余服務器所能實現的最大負載。
以2016年春節為例,新浪微博日活躍用戶達到1.34億,同比去年增長31%。春晚直播期間,討論春晚的微博達到5191萬條,網友互動量達到1.15億,增長76%,春晚相關話題的總閱讀量達到182億次。截至除夕24點,網友搶微博紅包的總次數超過8億次。
社交媒體如微博一直都是各類熱點事件的爆發地,除了過年過節的流量峰值之外,隨機熱點事件帶來的流量峰值是很難預測到和提前做準備的,系統對穩定性和彈性伸縮都有極高的要求。相比傳統的提前預估流量峰值去采購并部署服務,周期非常長,而且隨機熱點事件完全無法預測發生時間,很難做得到準實時的快速擴容,通過混合云架構,企業把公共云計算當做自有機房的延伸,利用云計算快速的應對節日和突發流量峰值帶來的海量彈性資源擴容需求,快速借用公共云的計算能力為己所用,充分發揮云計算的彈性伸縮能力,業務峰值流量過去后,又迅速將公共計算資源快速釋放掉,避免了高峰期后的閑置浪費。
當然,像微博這樣具有大量傳統IT資產的企業,短期把業務全部放到公共云計算也不太現實,這需要一個過程,混合云會架構是個很好的上云過渡路徑。對微博來說,混合云的部署對公共云平臺和微博技術團隊也存在很大的挑戰。
需要選擇性能指標能夠滿足微博高并發需求的公共云資源,例如充足的冗余資源、高速緩存以及網絡帶寬等,并且冗余資源具備一套快速分發、快速釋放的機制。
公共云資源需要和內部服務器資源實現無縫銜接,所有資源網絡對業務系統來說是一致的,同時還要保證數據訪問和傳輸的安全性。
內部業務系統的架構需要改造以適應新的擴展模式,能夠快速通過API擴容,具備成熟的發布體系。
微博的混合云實踐
從資源、技術、團隊各方面考慮,微博選擇基于阿里云構建混合云平臺。如前所述,實現混合云,微博方面需要做內部系統的改造,而對于阿里云來說,和微博的此次合作時間緊任務重,挑戰重重。
好在阿里云歷經2015年天貓雙11這一全球最大規模的混合云實踐考驗,丁原表示,對于現在的阿里云來說,通過ECS鏡像、ESS彈性伸縮等功能,應用快速部署1000臺的效率幾乎和1臺的效率是相當的,面對突發性業務峰值壓力可快速通過云服務器ECS速實現大規模的服務器擴容。
更重要的是,阿里云專門挑選經歷雙11考驗的資深技術專家組建了一個護航團隊,針對客戶業務壓力暴漲的情況提供全面的系統保障服務即護航服務,現場模擬業務狀況和排查問題。護航的內容包括:系統化現有瓶頸定位,模擬真實業務場景進行系統壓測和容量摸底,峰值系統容量評估和擴容方案設計,安全保障,應用優化,數據庫優化等,為客戶提供護航期間的全程應急技術保障,協同客戶一起保障系統順利度過業務峰值。同時,護航會針對系統現有問題設計改造方案,以更貼近云計算和互聯網架構來設計現有的業務系統,應對未來更大的流量峰值。
與此同時,微博也通過熱門的Docker技術來抹平業務差異性實現快速擴容。事實上,微博于2014年4月就開始研究Docker,2015年1月完成內網上線,經過2016年元旦的測試,在2016年春節進行首次大規模應用。大規模部署Docker的目的,很大程度上就是為了滿足快速、彈性擴展的需求。因此,微博對Docker的主要運用就是Registry,可以快速創建和銷毀,同時不需要為Docker目前存在的一些還不成熟的或者復雜的功能買單。
劉道儒介紹,微博對 Docker Registry做了如下的主要改進:
前端部署了Nginx,并配置轉發策略,兼容Docker1.3+所有版本。
后端存儲均使用Ceph,便于彈性擴容。
阿里云中使用二級緩存的部署結構,二級緩存可迅速擴容,提高分發效率,同時減小回穿內網的請求量。
高可用和性能的優化。
![應對年度峰值 微博基于阿里云與Docker的混合云實踐](http://big5.thethirdmedia.com/g2b.aspx/www.thethirdmedia.com/null.gif)
劉道儒說:“通過這樣的改造之后,阿里云資源和微博原有的資源組成的池子對業務系統來說并無區別,但擴容更加無邊界和靈活。由此,微博實現了從提前擴容到實時擴容服務器的升級,可以結合實際的流量負載與實時數據分析對預估峰值進行動態調整,一旦發現請求量有暴漲趨勢,就可以啟動應急方案,在最短的時間之內將服務器部署規模擴大一倍。”
微博在應對2016年春節峰值流量時上了1400多臺云服務器ECS,其中核心業務需要800多臺。當監控系統發現資源使用量達到預先設定的閾值,就會自動申請阿里云資源。通過混合云擴容,相對于之前提前擴容的方案,資源成本節約40%,同時運維工程師也擺脫了很多基礎類的手工運維的工作,將精力放在系統開發等工作。
關于未來的計劃,劉道儒表示,主要精力還是不斷完善系統。例如,PHP體系帶本地緩存,其機器日常的管理,如容量評估、上線/下線,還不能完全自動化,還需要提煉一個比較通用的解決方案。
阿里云的混合云觀
事實上,阿里云的混合云、護航服務不僅僅在于微博。其他的社交媒體公司,比如陌陌,在海量圖片存儲、大數據分析方面,也在通過阿里云技術提高用戶體驗。丁原介紹,除了社交媒體行業,護航保障服務基本覆蓋到了各行各業,包括游戲,金融,網站,電商,物流,網站,政企行業等,典型的包括12306春運,新浪微博,芒果TV,天弘基金,世界互聯網大會,紅嶺創投等。
在阿里云看來,優秀的混合云技術架構需要滿足如下特點:
對客戶來說,公共云和專有云要有一致的開發和管理體驗,業務體驗是無縫的。
從IaaS到PaaS的全棧架構,讓客戶能夠真正按照資源配比實現混合云,實現如傳統虛擬化的功能。
要做到無縫的體驗,VPC是一個重要的功能,VPC完全當做物理網絡的隔離,實現多租戶,并允許客戶定制自己的網絡,這是公共云多租戶無法實現的。阿里云VPC在開始設計的時候充分考慮企業級應用對網絡穩定性、靈活性、高性能、高可用、大容量和功能豐富性的要求,在架構設計和功能實現上兼顧了多方面的要求。同時,阿里云VPC還可以輕松實現不同地域之間的互聯,用戶點點鼠標就可以擁有一條跨地域的專線。
丁原表示,阿里云是一個開放的平臺,在選擇混合云合作伙伴的時候,主要關注合作伙伴是否可以和阿里云形成優勢互補,通過技術或者商業合作給客戶提供真正有價值的混合云解決方案,解決客戶的痛點問題。客戶的IT環境是多種多樣的,發展階段和發展路徑也不盡相同,阿里云會持續擴展生態,和合作伙伴一起,提供多種解決方案滿足不同客戶的不同應用場景。
(新聞稿 2016-03-31)