降低雲成本已連續五年成為企業最關注的專案。根據 2021 年雲計算狀況報告,超過 60% 的組織計劃最佳化其雲成本。本文介紹了導致雲資源、時間和金錢浪費的最常見問題,以及相應的有效解決方案。
降低雲成本已連續五年成為企業最關注的專案。根據 2021 年雲計算狀況報告,超過 60% 的組織計劃最佳化其雲成本。那麼到底出了什麼問題,為什麼那麼多的工程團隊都在努力進行雲最佳化呢?
為什麼雲成本最佳化如此具有挑戰性?
公有云按使用付費模式給工程團隊帶來了更多的自由,但這種自由是有代價的。正如 Pinterest 等公司的雲賬單故事所表明的那樣,有時賬單數額驚人。
研究證明,大多陣列織都難以應對不斷增長的雲計算賬單。典型的公有云支出平均超出預算 24%。
有很多原因可以解釋為什麼這還在不斷髮生。這些問題通常歸結為低成本視覺化、複雜的雲定價以及預估未來需求的問題。所有這些問題都可能會影響到你企業的花費以及需要花費的金額。
雲服務供應商也不能完全幫助降低成本。僅僅解讀一張雲賬單就可能讓人望而生畏,以至於一些團隊選擇平日視而不見,待到月底收穫“驚喜”。
2022 年需要解決的 6 大雲成本最佳化問題
第 1 條:仍然受預留和儲蓄計劃的誘惑
當考慮在雲上節省開支時,首先想到的是為團隊使用的服務支付更少的費用。公司之所以選擇儲蓄(Savings Plans)或預留計劃,是因為與按需定價模式相比,它們可以享受到相當大的折扣。
為一個看起來可以預測的雲計算開支提前做支付計劃,聽起來很棒。但如果仔細觀察就會發現,你不是在解決問題,而是在這個問題上得到了折扣,並承諾在接下來的幾年裡繼續這樣做。
那麼,陷阱在什麼地方呢?
Pinterest 預定了亞馬遜雲科技(AWS)價值 1.7 億美元的服務,但隨後又不得不花費 2000 萬美元購買額外的資源。他們的故事說明了這樣一個事實,即瞭解企業從現在起一到三年內需要多少容量是一項艱鉅的任務。
長期依賴於一個供應商,你會失去靈活性,被鎖定,並且可能不得不為不斷變化的需求付出高昂的代價。
如何應對儲蓄計劃?最好的解決辦法是完全避免儲蓄計劃(Savings Plans)!
不要提前購買資源,而是考慮解決雲計算開銷的方法:
- 規模最佳化(Rightsizing)
- 自動伸縮(Autoscaling)
- 任務裝箱(Bin packing)
- 資源排程(Resource scheduling)
第 2 條:落入過度配置的陷阱
當團隊選擇的資源大於執行工作負載實際需要的資源時,就會發生過度配置(Overprovisioning)。這背後有一種安全的心態,因為沒有人希望自己應用程式的執行會受到干擾。
在某些業務設定中,團隊習慣於獲得超出其工作負載所需的更多資源,“以防萬一”。雖然從效能角度來看,這種方法對工程師來說非常有意義,但它會造成雲浪費,並增加雲成本。
過度配置有什麼問題?最直接的答案是,它會導致雲浪費和不必要的開支,並且這些開支可能會失控。
從長遠來看,讓過度配置成為團隊中的一種習慣是一個壞主意。如果為了安全起見,你習慣了選擇比工作負載所需更大的例項,那麼請考慮一下隨著公司和應用程式的增長,這會發生什麼事情。你將會收到一份會讓你付出巨大代價的賬單。
把這筆錢花在更重要的事情上不是更好嗎?例如,用在應對氣候危機方面——順便說一下,過度配置正在加劇這個問題。
如何應對過度配置?通常的做法是投資於定製的監控和成本管理解決方案。他們的規模最佳化建議可以幫助你減少對過度配置資源的依賴,但你仍然需要手動實施這些建議。
另一種解決方案是自動化。自動規模最佳化可以選擇最合適的例項型別和大小,以滿足應用程式的需求,同時降低成本。
每當叢集需要額外的節點時,AI 驅動的例項選擇演算法就會選擇能夠實現最高效能的資源。
最棒的是,你的團隊不需要動一根手指,因為一切都是自動發生的。
由於過度配置與許多組織的文化交織在一起,因此必須建立成本最佳化例程以平衡效能、可靠性和成本。在實現更廣泛的組織變革的道路上,自動化可能是向前邁出的重要一步。
第 3 條:被孤立的雲資源所困擾
為專案啟動一個例項,但最後忘記關閉它是很容易發生的。
因此,許多團隊都在努力處理沒有所有權但仍會繼續產生成本的孤立例項。
還記得 Adobe 的錯誤,即每天花費 80,000 美元計劃外的 Azure 費用嗎?這是一類你必須要避免的問題。
這一問題在大型組織中尤為嚴重,因為這些組織同時執行了許多活動,而沒有實現集中的資源視覺化。
在 IT 部門不知情的情況下(影子 IT)管理的活動可能佔公司所有 IT 支出的 40%。此外,研究表明,影子云的使用量可能是已知雲使用量的 10 倍。
孤立的雲資源有什麼問題?孤立的雲資源意味著資金的流失,具有複雜的可持續性影響。
簡而言之,資料中心消耗了大量的電力和硬體,大大增加了 ICT 行業的碳足跡(Carbon Footprint)。他們需要的能源量每四年翻一番,而 AWS 或 Azure 等供應商開放的每個新區域都會加劇這個問題。
這就是為什麼減少雲浪費是停止不必要的開支和相關碳足跡的關鍵。
如何應對這一挑戰?確保只執行真正需要的資源可能很有挑戰性,特別是在大型組織中。但是,如何識別並停用未使用的例項呢?這就是自動化再次發揮作用的地方了。
自動化的雲最佳化解決方案可以隨時不斷掃描你的使用效率,並儘可能壓縮資源。它們還可以關閉未使用的例項和程序,以降低雲成本。
第 4 條:管理需求量峰谷值的效率低下
構建過電子商務基礎設施的工程師非常清楚事物的變化有多快。例如,一個影響因素的提及可能意味著數百萬的新銷售額,或者網站在流量激增時出現下滑。
大多數其他的應用程式也會隨著時間的推移而發生使用情況的變化,但在開支和效能之間取得平衡仍然是一個持續的難題。
如果你將標籤頁始終保持開啟狀態,流量峰值可能會產生大量且無法預料的雲賬單,如果你嚴格限制應用程式的資源,流量峰值會導致應用程式崩潰。
當需求量較低時,你將面臨多支付的風險。當需求量很高時,你提供給客戶的服務可能會很差。
是的,有云成本管理解決方案可以監控你的使用情況,如果超過設定的水平或出現任何異常,會實時向你發出報警。這些工具可以為你提供有用的建議,幫助你根據當前需求量調整雲資源。
然而,手動伸縮雲容量既困難又耗時。
除了要注意跟蹤系統中所發生的一切外,你通常還需要注意:
- 優雅地處理流量高峰和低谷——並在你使用的所有服務中為每個虛擬機器垂直伸縮資源;
- 確保應用於一個工作負載的更改不會對其他工作負載造成任何問題;
- 自行配置並管理資源組,以確保它們包含適合你的工作負載的資源。
如何解決這個問題?這是雲自動化可以發揮作用的另一個領域,可以幫助你節省大量的時間和金錢。
自動伸縮可以自動處理上面列出的所有任務,並控制雲成本。如果使用容器編排器 Kubernetes,你可以從三個內建機制中受益。
- 容器水平自動伸縮(Horizontal Pod Autoscaler,HPA)新增或刪除 Pod 副本以匹配應用程式不斷變化的使用情況。它監控應用程式以瞭解其副本的數量是否應該變更,並計算刪除或新增副本是否會使當前值更接近目標值。
- 容器垂直自動伸縮(Vertical Pod Autoscaler,VPA)增加和減少 CPU 和記憶體資源請求,以便更好地將分配的群集資源與實際使用情況相匹配。
- 叢集自動伸縮(Cluster Autoscaler,CA)可在受支援的平臺上變更叢集中的節點數。如果它識別出具有可以重新排程到叢集中其他節點的 Pod 節點,則會將其驅逐並刪除備用節點。
在像 CAST AI 這樣的解決方案中,你只需要定義你的水平和垂直自動伸縮策略,自動最佳化工具則會為你處理其餘的工作。
第 5 條:沒有利用競價例項的機會
雲服務供應商以極低的價格出售其未使用的容量,尤其是當你將該成本與常規的按需付費進行比較時。
在 AWS 中,競價例項(Spot Instance)可享受高達 90% 的折扣。
競價例項有什麼棘手問題?由於你競標的是空閒的計算資源,因此你永遠不知道這些容量究竟能保持多長的可用時間。有些競價例項帶有預定義的持續時間;例如,AWS 提供了一種型別,可以為你提供長達 6 小時的不間斷時間保證。
但除此之外,供應商可以回收你正在使用的競價例項,並僅提前 30 秒到 2 分鐘的時間通知到你。
人類沒有足夠的時間做出反應。建立一個新的虛擬機器也需要更多的時間,因此你面臨著潛在的宕機風險。
這就是為什麼如果你決定使用競價例項,你需要接受這樣一個事實,即中斷必然會發生。對於至關重要或無法忍受的工作負載,它們顯然不是正確的選擇。
如何應對這一挑戰?儘管存在風險,但競價例項非常適合無狀態且可擴縮的服務(即具有多個副本)。幸運的是,在現代架構中,大多數服務都是無狀態的,因為 Kubernetes 就是為這種型別的設定而設計的。
使用競價例項的過程如下所示:
- 你需要限定你的工作負載以及它處理中斷的能力。
- 然後,你應該檢查供應商提供的例項,並選擇最適合你需求的例項。一個經驗法則是選擇不太流行的例項並檢查它們的中斷頻率。
- 現在是時候策略性地設定最高出價了,以避免價格上漲時可能出現的中斷。
- 你可能還需要考慮分組管理競價例項並請求多種型別以增加補充它們的機會。
你可以手動完成這些步驟,但要使這一切能正常執行,需要準備大量配置、設定和維護任務。
這就是自動化能再次派上用場的地方了。除了上述過程之外,當你需要的競價例項暫時不可用時,自動化解決方案可以立即提供幫助。
競價回退(Spot fallback)之類的解決方案透過將受影響的工作負載臨時轉移到按需節點上,並在競價節點可訪問時將其自動返回到競價例項來保證容量。CAST AI 的功能目前支援 EKS、Kops 和 GKE 叢集。
第 6 條:延遲採用自動化雲最佳化
在本文中,我已經提到了自動化雲最佳化,這是有原因的。
如果你已經採用了雲原生技術,那麼你正在執行 Kubernetes,甚至可能使用現代的 DevOps 方法——自動化這部分基礎設施絕對是一個好主意。
雲自動化被列為德勤(Deloitte)2021 年及以後的最大趨勢之一,為 IT 團隊帶來了切實的成果,尤其是在大型企業環境中。
首先,它減少了你在配置虛擬機器、建立叢集或選擇正確資源等方面所需的手動工作。這一變化節省了時間,讓工程師可以專注於更重要的任務、創新並更充分地利用雲基礎設施。
更重要的是,自動化工具允許更頻繁的更新,這是持續部署理念的關鍵。它還降低了人為錯誤的可能性,降低了基礎設施成本,提高了系統的安全性和彈性,並增強了備份流程。
最後,自動化使你能夠了解整個公司正在使用的資源,否則這些資源將難以控制。簡而言之,雲自動化已經成為科技行業的新常態。
如果雲自動化帶來了許多無可爭議的優勢,而且似乎是不可避免的,那麼為什麼不是所有的企業都欣然接受它呢?自動化可能會帶來許多挑戰,從對新解決方案的抵制,到對實施成本過高的擔憂,再到更新現有流程的需要。
與大多數數字化轉型專案一樣,成功的關鍵在於人,並鼓勵在人的層面上進行變革。說到工作場所,麥肯錫(McKinsey)的研究證明,工人們普遍擔心會被技術所取代。
然而,自動化帶來的好處遠遠大於風險。例如,在《2021 年 DevOps 狀況報告》(State of DevOps Report)中,97% 的受訪公司認為自動化提高了他們的工作質量。
在 2022 年推遲採用雲自動化等於錯過了以下好處:
- 為應用程式選擇最有效的例項型別和大小;
- 自動伸縮雲資源,以處理需求的峰值和谷值;
- 排除那些不能用於削減成本的資源;
- 透過管理潛在的中斷來最佳化競價例項;
- 減少其他領域的不必要開支,例如儲存、備份、安全、配置更改等——所有這些都是實時的,而且成本只相當於手動實現的一小部分。
如何克服人類對變革和新解決方案的抗拒,這是一個由來已久的問題。提醒團隊自動化雲最佳化能使他們從重複性的任務負擔中解脫出來,這可能還不夠。展示和體驗總是比講述更好。希望你能在 2022 年享受到自動化雲最佳化帶來的好處。
原文連結:
https://cast.ai/blog/6-top-cloud-cost-optimization-issues-to-avoid-in-2022-and-how-to-deal-with-them
