疫情期間,在線教育、在線辦公需求持續井噴,釘釘作為很多企業首選的在線辦公軟件,用戶量激增,特別是釘釘視頻會議、直播的需求隨之飆升。同時,釘釘為了響應教育部門“停課不停學”的號召,宣布老師們可以免費試用釘釘在線課堂。
流量如洪流般涌入釘釘,一場資源擴容的技術挑戰拉開了帷幕。中小學生集體對釘釘展開了五星分期與在線寫歌“泄憤”的策略,釘釘本釘不得不在線求饒。而在大戰間隙,一聲感嘆傳出:
流量這么大,釘釘為什么不崩?
從 1 月 28 日開始,釘釘音視頻會議、直播的訪問流量倍數級增長。作為一個在云上成長起來的產品,釘釘開啟了在阿里云的資源擴容之路,滿足了用戶在家辦公及在家上課的需求,保證了用戶良好的體驗,釘釘如何做到的?
如此大型的擴容,面臨著兩大困境:效率與資源供應
人工擴容困境:效率低下
時間太短。 面對流量暴增,留給釘釘技術團隊時間只有幾天。從 1 月 29 日起,釘釘團隊就已在阿里云上 24 小時開始全力擴容,截止 2 月 2 日,從最初的 2W vCPU 擴容到 3W vCPU,僅做到了數倍擴容,還遠未達到業務需求。
購買與配置非常復雜。 釘釘的系統架構包含多種資源,不同于單一的云服務器 ECS 服務集群,還包含 SLB、MongoDB、Redis、EIP 等產品。這些資源都需要一個個購買,其之間的關系也需要技人工自行配置。
人工部署效率低、失誤率高。 釘釘用戶群量級大。如果人工部署集群,一個人部署 1 個集群需要 1 小時左右,同時也只能操作 3-4 個集群,還需要大量的配置操作,很容易失誤。
部署復雜度高。 集群的服務能力自閉環,支持無限擴展,但也會相應提升部署復雜度,而這次擴容涉及 8 個地域、16 個可用區,傳統部署方式擴容場景效率低下
大規模集群管理難度大。需要快速擴容近千集群,才能滿足幾億人在家辦公及學生在家上課的需求。當資源上千后,就很難管理資源之間的關系了,更何況超百萬的資源規模。
人工部署,容錯率比較差,排查困難。 集群之間經常出現偏差,某個集群的 SLB 監聽端口是 300,另一個集群是 3000,出現問題很難排查。
除卻以上困難,建立和運維如此巨大的集群規模還會帶來更多的技術挑戰。
利用資源編排服務 ROS,實現快速自動部署
早在 2 月 2 日流量洪峰帶來之前,釘釘就通過阿里云的資源編排服務(Resource Orchestration Service,簡稱 ROS)提高集群部署效率、幫助其快速擴容。而這款服務不負重托,幫助釘釘在短短 2 小時內新增部署了超過 1 萬臺云服務器,這個數字也創下了阿里云上快速擴容的新紀錄。
什么選擇資源編排服務?
資源編排服務是一款幫助阿里云用戶簡化云資源創建、更新和刪除的自動化服務。其通過資源棧 (Stack) 這種邏輯集合來統一管理一組云資源(一個資源棧即為一組阿里云資源)。利用資源編排服務,云資源的創建、刪除、克隆等操作都可以以資源棧為單位來完成。在 DevOps 實踐中,資源編排可以輕松地克隆開發、測試、線上環境;同時,也可以更容易實現應用的整體遷移和擴容。
基礎設施即代碼(Infrastructure as Code)
資源編排服務是阿里云提供的基礎設施即代碼(Infrastructureas Code,簡稱 IaC)的云產品,使用 ROS 可以幫助最快速地實踐 DevOps 中關于 IaC 的理念。
全自動托管服務
ROS 產品為全托管服務,無需購買維護 IaC 模板本身執行所使用的資源,只需要關注業務所需要使用的資源,即模板中定義的資源。尤其需要創建多個項目(對應多個資源棧)時,全托管的自動化可以更快地完成任務。
可重復部署
無論客戶是需要部署的環境是開發,測試和生產環境,都可以使用同一套模板進行創建。指定不同的參數可以滿足環境的差異化,例如,測試環境的 ECS 實例數是 2 臺,而生產環境的 ECS 實例數是 20 臺。或是客戶需要進行多地域的部署,使用同一套模板可以進行重復的部署,從而提高部署多地域的效率。
標準化部署
在實踐中,不同環境的細微差異往往帶來非常復雜的管理成本,延長了問題診斷的時間,從而影響了業務的正常運轉。通過使用 ROS 重復部署,可以將部署環境標準化,減少不同環境的差異,將環境的配置沉淀到模板中。再通過類似代碼的嚴格管理流程,從而保證部署的標準性。
統一的身份認證、安全和審計
和其它的同類產品對比,阿里云官方出品的 ROS 與其它阿里云產品有著最佳的集成。集成資源訪問管理(RAM)提供了統一的身份認證,而無需為單獨建立用戶認證體系。所有的云產品操作都通過 OpenAPI 調用,意味著您可以使用操作審計服務(ActionTrail)來審查所有的運維操作,包括 ROS 本身。
ROS 如何服務釘釘擴容?
定義資源模板
ROS 幫助釘釘快速創建了描述其所需要用到的阿里云資源(如 ECS 實例、數據庫實例等)的模板,以定義它的集群架構。ROS 提供可視化編輯器能力,可自動可使用的模板。模板完成后,ROS 將自動地創建并配置這些資源,即可實現基礎設施即代碼(Infrastructureas Code)的理念。
模板解析與執行
當 ROS 接收到用戶創建資源棧的請求時,在執行創建前,首先會對模板進行解析。解析包括語法檢查、參數校驗、依賴分析等。
依賴分析就是分析出資源間的依賴關系,目的有兩個:
保證資源創建的正確性:被依賴資源創建完成后才會創建依賴資源。
提供并行化創建的能力:無依賴關系的資源可以并行化創建。
模板解析完成后,ROS 會按照依賴關系創建資源,只有所有前置資源完成創建,后面的資源才會開始創建,類似狀態機的機制。
該資源模板可以快速地重復部署,尤其多地域、多可用區部署的情況;同時也可以減少環境之間的偏差,將部署過程和結果標準化,減少因為環境偏差引入的系統問題。
總結
釘釘使用資源編排服務 ROS,擴容效率就提升了 100 倍,陸續為釘釘完成了 10 萬臺云服務器的快速擴容和部署,創下了阿里云上快速擴容的新紀錄。
目前 ROS 已經擁有平均每分鐘 1 個集群的擴容效率、每天超百萬 vCPU 彈性能力。未來,可以預見到,疫情結束后,數百萬資源回收釋放也將是一個浩大的工程。資源編排服務 ROS 具有一鍵銷毀功能,自動回收集群內所有資源,避免繁瑣操作及遺漏。
彈性是云計算最大的優勢,也是云計算對整個社會提供的普惠和便利,而阿里云彈性計算資源編排服務 ROS 作為阿里云上原生的自動化編排部署服務,讓云計算的彈性發揮到極致,為釘釘提供了強有力的支持,讓釘釘成為使用最頻繁最流暢的平臺。
————————————————
本文為CSDN博主「CSDN資訊」的原創文章。
原文鏈接:https://blog.csdn.net/csdnnews/article/details/104662294
新時代鞋服物流與供應鏈面臨的變革和挑戰03月07日 20:38
點贊:這個雙11,物流大佬一起做了這件事11月22日 21:43
物流管理機構及政策分布概覽12月04日 14:10
盤點:2017中國零售業十大事件12月12日 13:57
2017年中國零售電商十大熱點事件點評12月28日 09:58