疫情期間,在線教育、在線辦公需求持續井噴,釘釘做爲不少企業首選的在線辦公軟件,用戶量激增,特別是釘釘視頻會議、直播的需求隨之飆升。同時,釘釘爲了響應教育部門「停課不停學」的號召,宣佈老師們能夠免費試用釘釘在線課堂。數據庫
流量如洪流般涌入釘釘,一場資源擴容的技術挑戰拉開了帷幕。中小學生集體對釘釘展開了五星分期與在線寫歌「泄憤」的策略,釘釘本釘不得不在線求饒。而在大戰間隙,一聲感嘆傳出:安全
流量這麼大,釘釘爲何不崩?服務器
從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做爲阿里雲上原生的自動化編排部署服務,讓雲計算的彈性發揮到極致,爲釘釘提供了強有力的支持,讓釘釘成爲使用最頻繁最流暢的平臺。
查看更多:https://yqh.aliyun.com/detail..._content=g_1000107087
上雲就看雲棲號:更多雲資訊,上雲案例,最佳實踐,產品入門,訪問:https://yqh.aliyun.com/