不同企業上雲後,其成本節省程度是不一的。從 IT 資源成本節省量來看,低的企業不到 10%,高的企業可達 60%-70%。究竟為何會造成這麼大的差異?又有什麼組織管理手段和產品技術手段可以降低企業上雲成本?
在 2021 年 QCon 全球軟件開發大會【北京站】中,騰訊雲專家工程師於廣游發表了《1000+ 企業雲原生改造成本優化總結》的主題演講,介紹了騰訊云云原生團隊,通過大範圍的客戶調研和訪談,解答了企業如何藉助雲原生進行更深層次的成本優化,以及騰訊內部和騰訊容器服務客戶在容器化過程中進行成本優化的最佳實踐。
「從我加入騰訊以來,主要做了兩件事情:第一件事情是主導了騰訊雲容器產品從 0 開始的設計、研發和運營工作,第二件事情是把騰訊內部的全部自研業務上雲。」
在 2017 年時,我們經常跟客戶講容器和雲原生的優勢,客戶會問它到底有什麼好處,能降低多少成本?為此,我們與騰訊內外部的客戶進行了多次訪談,最後通過數據分析,得出了雲原生、容器跟資源利用率之間的關係。
大家應該知道,把 IDC 中的設備和業務搬到雲上,在架構不變的情況下,資源利用率肯定不會提升。事實上,我們的調研數據跟預期是一致的,將業務從 IDC 搬到公共雲,它的資源利用率平均值一般還是低於 10%。
在 TKE 中,70% 客戶的平均資源利用率低於 20%;40% 客戶的資源利用率只有不到 10%。也就是說,把業務從 IDC 搬到雲上,資源利用率沒有提升;接着,把業務容器化以後,資源利用率竟然還是沒有提升多少,這是一件非常奇怪的事情。因此,我們針對以下三類客戶,進行了一次更深層次的分析:
第一類:業務有波峰、波谷,但是波峰其實不高,波谷更低;
第二類:全天的資源利用率都非常低,一直不到 10%;
第三類:晚上會跑一些離線的計算業務,這類客戶資源利用率稍微高一點,但平常也不高。
我們總結了資源利用率低的兩大類原因:
沒有進行業務容器化的企業,這類型企業的業務沒有應用的編排調度管理工具,資源以整機的形式交付,使得業務間無法進行有效隔離,只能被迫把設備交給業務。不同業務獨占資源池,資源碎片的現象會比較嚴重;
企業已經將業務容器化了,但資源利用率依舊較低,這類企業本質原因是並沒有雲原生化,展開講就是業務微服務改造不徹底,沒有用雲原生的方式運行業務;還有雲原生的彈性伸縮能力本身不夠成熟,導致業務架構無法彈性伸縮、擴容不及時,且雲上資源存在售罄的可能性,因此業務需要提前冗餘地占用較多資源量。
舉個例子,假設一家公司在雲上共有 1 萬核,資源利用率每提高 10%,每年就能省 100 萬,如果能從 10% 提升到 40% 左右,企業一年其實能省幾百萬,想必沒有企業會拒絕如此大的成本優化吧?為此,我們又進行了一個調研,總結出了企業資源利用率優化失敗的典型模式,我們稱它為四步失敗法。
在第一階段中,公司業務高速發展,老闆告訴 IT 團隊要全力保障業務發展,要多少機器給多少機器,業務就能夠隨便用,但是資源利用率非常低。
第二階段是公司業務發展沒那麼快,老闆一聲令下讓 IT 團隊優化成本,但由於業務下降,團隊都在尋求新的增長點,所以依舊沒有精力進行成本優化。在這種情況下,無論是業務還是平台,大家都開始在百忙之中建設資源運營平台、彈性平台,推動業務團隊改造。
到了第三階段,某天業務突發了線上故障,企業內部就會組織一場復盤大會,業務團隊復盤認為是 IT 團隊推動成本優化,架構冗餘減少,擠占研發人力造成的;而 IT 團隊則認為是業務技術能力差,提出不合理接入需求、團隊人力少所導致的。最終在一次次的博弈中,成本優化就無疾而終了,進而走向了第四個階段,業務與 IT 團隊關係極度惡化,所有團隊都覺得成本優化是件吃力不討好的事情。
根據上述提到的企業成本優化的失敗路徑,我們發現成本優化其實是由三對本質矛盾組成的,且這三對矛盾不可調和。
第一對是業務穩定性跟資源利用率間的矛盾,很多業務沒有人維護,其穩定性全靠冗餘來支撐,而冗餘天然跟資源利用率就是一個互斥的話題,沒有冗餘,業務的穩定性就會降低;
第二對是業務投入與技術投入的矛盾,假設部門只有一個 hire count,到底應該去做業務,還是去把架構搞得可彈性,這其實也是一個不可調和的矛盾;
第三對是企業內不同角色 / 組織的矛盾,不同團隊由於各自目標,最終演化成了業務團隊與資源團隊之間的矛盾。
雖然這些矛盾是本質性的,無法完全解決,但企業可以通過技術手段和組織手段減少這些矛盾。組織手段可以分為兩個方面:一方面可以通過獎勵進行驅動,拿騰訊舉例,只要能夠觀測到每個業務真實的成本和資源利用率,接下來也不需要強制做什麼,只需要掛一個紅黑榜,給資源利用率前十名的團隊獎勵,請排名後三位的團隊回覆郵件,解釋說明資源利用率低的原因。
另一方面,企業還可以設置一些增強手段——建立成本文化,這是剛剛興起的一個名詞叫 FinOps,意思是代碼設計之初就需要考慮冗餘和架構,企業要監控性能、穩定性等數據的指標。它讓每個團隊都可以像監控業務可用性一樣監控業務成本,像優化業務可用性一樣去持續優化成本。
此外,組織手段雖然可以使不同團隊目標對齊、促進協作,但關鍵難點還在於技術複雜度的處理,沒有技術投入和技術實力,成本優化就是無休止的扯皮和甩鍋。實際上,資源利用率提升的本質是消除浪費,一種方式是推動業務按需使用,即為彈性伸縮,用多少申請多少,不用就把它縮下去;第二種是業務不用動,平台方進行資源騰挪復用,即為在離線混部。這兩種方式分別有不同適用的場景:
彈性伸縮
彈性伸縮是根據實際負載,對業務和資源進行橫向和縱向的動態調整,它的核心是業務資源的按需使用,一般資源池大小是動態的。所以它有兩個限制條件,一是純 IDC 環境效果有限,縮容的資源依舊空閒;另外是業務方需要進行微服務化改造,無法無痛接入。
目前,騰訊雲已經在這方面做了一系列工作,並且主要圍繞及時性、靈活性、可用性做了優化。其中,及時性支持基於預測的提前擴縮容,基於 Buff 的節點預擴容,基於配置擴容等等;靈活性是從業務層載體的擴縮容算法、支持多種指標擴縮容;可用性則能夠動態感知資源售罄,智能調整擴容策略,提高擴容成功率;在大數據方面,騰訊雲基於 Yarn Operator 和存算分離實現了大數據等業務的彈性擴縮容。
那彈性該怎麼落地呢?騰訊內部推出了一個雲原生彈性成熟度模型,用來監控業務組件在過去一周中是否發生過伸縮。如果監測到從來沒有發生過伸縮業務,就讓它能夠伸縮,有這個能力之後,再去推動彈性改造,最終,通過這種方式資源利用率提升了 30%-40%。
在離線混部
在離線混部的本質是將分配給應用,但應用實際未使用的資源,再動態分配給其他應用,其核心是資源的騰挪、再利用,一般資源池大小是固定的。它的優勢非常明顯,業務幾乎不需要做過多的改造,且平台可後台對資源進行靈活騰挪和復用。
但是它同樣也是有限制的,首先,總資源池大小固定,無法應對流量突發的場景;其次,需要有離線業務能夠填補在線低峰。在騰訊雲的在離線混部實踐中,提出了如意 RUE 的解決方案,它能夠讓機器分別部署高優業務和低優業務,當高優業務起來的一瞬間,能夠對低優業務進行絕對的壓制,並且對在線業務零干擾。最終,能夠使資源利用率提升 60%-70%。
前面提到的兩種方案都有各自的優缺點,所以最好的方式就是互補,在離線混部 + 彈性伸縮才是提升 IT 資源利用率的絕佳組合。
在 2020 年時,有一個騰訊雲的外部客戶對整個在線業務進行了容器化改造,他們也是非常驚訝地發現,容器化改造之後,資源利用率的提升是有限的,所以就希望在 2021 年進一步提升。
顯而易見,這家公司內部已經將全部業務進行彈性化改造了,另外,他們業務的波峰、波谷非常明顯,而且離線業務非常大,以至於離線業務跑起來的時候,在線業務的池子是不夠用的,所以騰訊云為他提供了混部 + 彈性的方案。
客戶的集群本身部署了在離線混部的特性,同時騰訊雲又給他們提供了一個大數據的容器化方案,使其現有的大數據系統不用做任何改造,只需部署一個組件,就能夠把大數據系統的 Job 任務運行在 K8s 集群中。
客戶進行了非常穩健的內部推廣,前期只在業界把離線業務往在線業務平台上發布,但整個實施過程其實非常簡單,因為絕對壓制的 OS 內核能力,使其並沒有用太多的調度能力。
此外,TKE 可以在一個集群中插入虛擬的 Node,正常情況下插入一個真實的節點,用戶需要創建一個容器。當創建虛擬動作時,最終會到騰訊雲的資源大池中創建一個輕量的虛擬化 Pod。在這種情況下,就完成了在線和離線的統一。最終,通過優化資源碎片、在離線混合部署、自動擴縮容,這家企業的整體計算成本下降了 43%。
最後再介紹下騰訊內部自研上雲混部的實踐,遊戲、金融、社交等 6 個騰訊 BG ,每一個業務的技術棧都是不一樣的,所以進行混部優化的過程非常艱難,但騰訊公司內部還是通過自上而下的支持,進行了全面雲原生的改造,把全部的增量業務全部放在 TKE 進行,存量業務逐漸往 TKE 遷移,共用 TKE 這樣的調度系統進行混部。最終,平均資源利用率達到了 46.5%,樣板集群資源利用率達 65%。
演講最後,於廣游對成本優化的關鍵點進行了總結,他提到,僅把設備搬到雲上,資源利用率是無法提升的,企業會驚訝地發現他們把業務容器化以後,資源利用率的提升竟然也是有限的。當企業去實施成本優化方案時,對其自身企業的技術實力和管理能力,又是一個真正的大考核,但這個大考也是有答案的,那就是 TKE ,雲原生能夠把握效率和成本的平衡點。
演講嘉賓介紹:
於廣游 騰訊雲專家工程師,騰訊雲容器技術總監
主導了騰訊雲容器產品從 0 開始的設計、研發和運營工作,並在騰訊雲海量 Kubernetes 集群的治理和落地過程中積累了大量的經驗。騰訊自研業務全面雲原生上雲的主要參與者之一,在雲原生領域有豐富的實踐和思考。目前致力於 Kubernetes 在成本節省、Serverless、混合雲等場景的探索。
隨着雲計算、5G、AI 等新一代信息技術的迅猛發展,數字經濟儼然成了產業發展的新風口。身處技術革新浪潮下,企業該如何順勢而為,抓住時代的機遇?
為了幫助更多中國互聯網行業的同仁們一窺前沿技術的創新與探索,《騰訊雲技術實踐精選集 2021》收錄了 20 余位騰訊雲技術專家的真知灼見,覆蓋雲原生、數據庫與存儲、前端以及架構四個技術領域。掃描二維碼,即可獲取全部精彩內容!