官宣警告!月活4.31億的新浪微博,如何應對流量激增?
「提升運維自動化的自研佔比是非常重要的,它決定了後續自動化所能達到的高度。我們建設自動化運維平臺的目標是:更快的響應、更省的方案、更高的效率!要通過人工智慧技術,解放運維的雙手,擁抱美好未來!」
微博這兩天炸了!前有“趙麗穎 & 馮紹峰”官宣,後有“王寶強事件”後續,除了各位當事人輪番上熱搜之外,微博的各位運維大佬也是被網友輪番 @。截至小編寫稿時,趙麗穎的“官宣”微博已被轉發 123 萬次,被評論 147 萬……
“號稱能支援 8 位明星併發出軌的微博,支援不了明星戀愛結婚”也只是調侃,其實,微博的運維團隊,也默默地搞了很多大事情,而且有很多坑他們已經提前替大家踩好了!
InfoQ 有幸採訪到了新浪微博高階產品運維架構師劉然,看看新浪微博遇到過哪些高併發場景的典型問題,他們如何搭建自動化運維平臺?過程中踩過哪些坑,又是如何解決的?
InfoQ:介紹一下微博現在的流量情況,運維團隊處理過哪些突發大流量事件?
劉然:作為熱點事件及社會輿論的核心陣地,今年 6 月微博月活躍使用者數(MAUs)達到 4.31 億,日活躍使用者數(DAUs)達到 1.90 億。就微博平臺而言,整體 HTTP 介面呼叫量百萬 qps,視訊流 TBps 級吞吐。在熱點事件中,尤其以春晚、軍演、世界盃等定期事件以及王寶強事件、鹿晗事件、趙麗穎 & 馮紹峰事件等突發情況對服務穩定性的衝擊是最大的,也給運維同學們帶來了巨大的挑戰,同時收穫了很多解決高併發問題的經驗。
InfoQ:高併發場景的運維有哪些典型問題,一般怎麼解決?
劉然:高併發問題簡單來說就是木桶短板問題,整體服務各個環節哪怕是一行命令的效能不夠優,都可能在高併發情況下成為一個問題,引發一次故障,各公司的運維分工不盡相同,我們運維團隊承擔了服務穩定性的整體責任,所以我們會聯合各個兄弟部門,從應用層至網路層逐層進行容量評估,對於各種遇到過的、可以想象到的短板建設應急預案。尤其是核心路徑,經常會準備三套以上的應急預案互背及逐級互補。應急預案的主要思路包括擴容、流量轉移、降級、封殺等。監控指標實時採集,產出 Dashboard、報警、智慧決策。
所有應急預案的工具如面對風險可控、閾值準確的操作方案則採用自動生效策略,否則採用人工一鍵化操作。在彈性擴容方向採用混合雲模式,目前,既對外和阿里雲、華為雲等公有云服務開展深度合作,同時在內部離線業務中搭建私有云體系。經過持續的建設,當前可達到分鐘級彈性擴縮絨上千臺虛擬機器例項的速度。
InfoQ:介紹一下微博的自動化平臺,平臺目前主要運用的自動化工具有哪些?
劉然:我們的自動化平臺主要通過自研的中控平臺指導自研或者開源的子系統、子模組的輸入及產出。中控平臺類似於大腦,將 Collector 模組收集來的資料進行梳理、聚合、決策。提供 View 模組供人工干預,最後通過 Executor 模組將操作指令下發。其中使用到的開源元件包括 Flume、Graphite、Grafana,提供資料收集、儲存及展示。Puppet、Ansible,對系統級工具及配置進行配置管理。Docker,將服務程序容器化便於整體排程。以及一些公有云服務,比如阿里雲、華為雲。
InfoQ:微博運維平臺的演進過程是怎樣的,為什麼要搭建自動化運維平臺?
劉然:11 年我加入微博平臺運維團隊時,微博剛剛開始平臺化建設。作為產品運維我們所擁有的只有新浪良好的底層支援以及一些簡單的指令碼。為了快速填補產品運維需要,我們也是從指令碼化入手,將所有需要人工手動操作的流程指令碼化。在基本能滿足穩定性需求的同時,我們引入 Puppet、Ganglia、Nagios 等開源工具將伺服器配置管理、系統及業務監控工具化。
後續我們自研了 Jpool 中控系統,並將大部分指令碼的零散功能系統地整理並整合到 Jpool 系統。基本達到了簡單的自動化門檻,解放了運維同學大量手工重複操作的工作量,並且提高了整體變更的穩定性。在解決了生存問題之後,我們投入了更多的人力及時間,深化各運維方向的自動化程度,通過升級或調優提升各個自動化元件的功能及效能,向著更快的響應、更省的方案、更高的效率目標前進。
InfoQ:在微博的自動化平臺搭建過程中踩過什麼坑,有什麼經驗可以分享?
劉然:當前業界的開源元件很多,而盲目地引入開源元件並不一定會提高運維效率,有時候往往會適得其反。開源元件的優勢在於開發及維護成本相對較低,功能和效能相對比較穩定成熟。但問題在於開源元件是面對大多數場景的通用的方案,所以在一些定製性問題上很難得到解決方案。而且各元件之間的組合很多時候是十分僵硬的。
在後續二次開發的時候,開源元件需要的學習成本是巨大的。另外開源元件的版本更新問題也很讓人頭疼,我們之前使用過的 Scribe、TFS 等,在提供方不再發版後,我們在進行元件升級和替換的過程中是極其痛苦的。所以在滿足業務穩定性需求的同時,提升運維自動化的自研佔比是非常重要的,它決定了後續自動化所能達到的高度。
InfoQ:自動化運維平臺給微博帶來了哪些效益?
劉然:我們建設自動化運維平臺的目標是更快的響應、更省的方案、更高的效率。
簡單來說更快的響應是敏捷準確的發現問題、處理問題,最大化提供服務穩定度。
更省的方案指的是在資源和人力方面把控更加精確,儘可能節省所需的各項資源。比如我們通過實時的自動化的容量評估掌握服務可承載能力,並通過彈性擴容,降低面臨偶發峰值問題的業務的常備伺服器成本。通過智慧自愈功能減少了一線運維人員例如 7*24 值守等大量無效的工作量,節省了人力成本,並提高了變更的準確性。
更高的效率指的是我們在自動化建設的同時,會更側重於提升使用流暢度、學習成本、後續維護成本等隱性問題,提升自動化平臺的開發及應用的效率。
InfoQ:微博的自動化運維平臺未來會如何發展?
劉然:近年來 AIOps 似乎有給運維同學們打開了新世界的大門,我們在人工智慧方向也開始有所嘗試。但當前在應用落地方向上,還存在種種問題。不過我們通過一段時間的嘗試,在一些小的決策問題上引入深度學習演算法,深深感受到了人工智慧應該在運維領域會大有作為。後續我們還會繼續投入一部分力量進行探索,並積極和其他公司、團隊進行交流。通過人工智慧技術進一步解放運維的雙手,擁抱美好的未來。
作者簡介
劉然,新浪微博高階產品運維架構師,11 年加入新浪微博,主要從事原生視訊、微博直播、OpenAPI 等核心業務的穩定性保障工作。參與及主導了微博平臺自動化運維從無到有發展過程中的各項重大專案。主要包括服務平臺化、運維自動化、異地多活、容器化、混合雲等方向。目前帶領團隊主要致力於運維服務質量提升及運維體系建設。
由 InfoQ 主辦的第四屆 CNUTCon 全球運維技術大會,全方位、多角度向參會者闡述智慧運維時代的有哪些變革,Twitter、RIOT Games、BAT、華為等國內外一線大廠有哪些新技術和新實踐。
使用我的優惠【InfoQ】可以獲得更多優惠!有任何問題歡迎諮詢 Joy 小姐姐,電話:13269078023(微信同號)。