遷移云計算工作負載的四個基本策略
實際上,這說起來容易做起來難。IT工程師并不會突發奇想地將整個應用程序從一個云平臺移到另一個云平臺,這并不是云遷移這個術語真正想表達的意思。與其相反,工作負載可遷移性反映了短期選擇和長期靈活性都是可能的。決定在特定的云平臺或內部部署環境中運行特定的應用程序,并不意味著需要一直在這一運行環境中運行。
現代軟件開發和操作的容器化、編制和其他方面是運行環境的基礎。當然,工作負載可遷移性還表明,企業至少有兩個云平臺或內部部署/裸機環境可供選擇。
遷移云工作負載可能會遇到幾個重要的問題。Red Hat公司技術布道者Gordon Haff表示,工作負載可遷移性是混合云和邊緣架構的一個重要術語。
遷移云計算工作負載的4種方法
以下將深入探討遷移云計算工作負載的四種不同的方法,以幫助用戶更仔細地了解在多個運行環境中運行和遷移工作負載,以及制定整體混合云或多云策略。
(1)制定遷移云計算工作負載的標準
許多的混合云和多云環境以一種臨時的甚至偶然的方式開始。這是很自然的,但正如Haff指出的那樣,它們最終應該被一種更有目的性的策略所取代。
首先,要有明確的標準來在給定環境中運行和遷移工作負載。
Faction公司首席技術官Matt Wallace說:“有很多理由來決定將工作負載運行在何處。最困難的是,由于團隊或合作伙伴的工作負載位于不同的云平臺中,或者需要訪問不同的服務,所以沒有正確的答案。”
所以,把注意力集中在那些對企業很重要的具體原因上,讓它們來指導企業的選擇。Wallace分享了幾個例子:
- 接近其他應用程序和數據——也被稱為“數據引力”, 當性能/延遲成為主要問題時,這通常是一個驅動因素。
- 與其他團隊和合作伙伴合作——如果他們使用特定的云平臺,也可以這么做。
- 特定云平臺中可用的工具集——它們并不都是一樣的。
- 地理/位置問題。
- 成本。
- 規模——例如可預測的、穩定的工作負載與可能增長或資源需求激增的工作負載之間的差異。
有了一些標準,企業的目標或需求方面的額外特異性將是有益的。其性能是相當廣泛的,例如性能的平衡物是延遲。定義這些術語對企業及其應用程序的實際含義,將提供更精細的決策矩陣,以便將工作負載與正確的環境相匹配。
同樣,云平臺的選擇也不是一刀切的,特別是當超越核心基礎設施時。
Liberty Mutual Insurance公司高級架構師EricDrobisewski說,“在任何云平臺環境中,基礎設施服務都是桌面上的賭注。除了這些核心服務之外,還要確定公有云提供商的關鍵要素,這些要素可以為企業的業務帶來差異化的價值,并尋求利用這些要素更快地帶來更大的價值。”
(2)確保每個人和每件事都配合得很好
隨著時間的推移,混合云和多云環境通常會變得更加分布式和多樣化。有效管理和遷移工作負載的一個關鍵是在不破壞一切的情況下進行更改的能力,應該能夠添加新的工具或服務,并讓它與現有的技術棧兼容。
Wallace在這里將這一策略提煉為一個術語:“架構”。
他補充說:“設計架構避免了陷入解釋之中。利用提供可遷移性或一致性的抽象的工具是有用的。使用集中身份和安全斷言標記語言 (SAML)身份驗證對其他事情進行標準化也很有用。”
事實上,標準化是整合戰略中的一大優勢。開放標準甚至更好,特別是考慮到云計算領域的變化速度。Drobisewski指出,這對于初始集成成本和長期靈活性都是有益的。
Drobisewski說:“如果可能的話,利用各個云計算提供商采用的開放規范和標準將有助于簡化集成,并提高互操作性。”
SAS公司高級軟件開發經理Justin Dempsey表示,當不知道“一切”是什么意思時,很難讓一切保持和諧。他的團隊發現,創建一個跨多個云平臺的工具和應用程序矩陣清單非常有用。這可以幫助從識別差距到確保軟件供應鏈安全的所有事情。它還可以通知有關工作負載可遷移性的決策。
Dempsey說:“企業創建其控制的工具矩陣,并指出哪些工具是與云計算無關的、非云可遷移的或特定于云計算,這有助于企業評估從一個云平臺遷移到另一個云平臺所涉及的風險,或創建需要跨越云計算提供商的架構。”
盡可能多地管理代碼是這里的另一個重要策略。
Dempsey說:“朝著‘一切都是代碼’的方向工作是一種促進一致交付、遵守治理控制和強制測試標準的方法,這些標準可以確保新的運行環境與現有運行環境和諧相處。”
(3)管理和優化成本
云計算成本通常被過分簡化為絕對成本和極端成本,例如“采用云計算服務更便宜!”(這并不總是正確的)或“為什么我的云計算賬單這么高?”(可能有很多原因。)
這是另一個需要仔細設計和規劃的領域。Faction公司的Wallace指出,許多可能被歸類為基礎設施成本的內容實際上是應用層面的問題。
Wallace說:“如果在云計算中建立一個三層自動擴展架構,用API網關和無服務器功能來處理只需很少一部分成本就可以完成的事情,那么將為使用云計算服務付出巨大的代價。”
正如Red Hat公司的Haff之前所說的那樣,采用云計算服務的成本確實會變得更高昂。這并不意味著不應該使用它們,Haff解釋說,“但需要了解它們在哪些地方為企業提供了更高的價值,以及你該在哪里考慮在內部部署設施運行工作負載。”
全面了解成本至關重要,尤其是在做出有關運行和遷移工作負載和數據的明智決策時。Wallace使用深度冷存儲作為另一個例子,因此在使用初期的成本可能看上去并不昂貴。
Wallace說:“在某個云平臺中,用戶從云端取回數據的成本超過了4年的存儲成本。這并不是云計算提供商的問題,而是用戶對‘存儲并忘記’用例的巨大需求,這些用例可以替代離線存儲庫中的磁帶,但如果用戶不將服務與用例相匹配,那么將面臨高昂的成本。”
就工作負載可遷移性以及云計算成本而言,有兩個主要領域需要關注:
- 可見性:有效地管理云成本可以歸結為回答以下問題的能力:“誰在使用什么?”,優化云成本要能夠回答“為什么?”,Wallace使用金融術語明確地提出了這個問題:“誰在什么服務上花了多少費用?”,如果這是一個黑盒,那么將難以實現成本目標。
- 數據流:遷移云計算工作負載可能會產生額外的(有時是意外的)成本,這些成本與從環境中進出的數據流相關——通常稱為數據輸入和數據出口。
這兩種方式都需要支付費用,但數據出口的費用通常是需要注意的。
SAS公司的Dempsey表示:“數據出口費用可能會迅速增加,尤其是對于跨多個云平臺或云計算區域的數據遷移。”
Wallace提到的深度冷存儲示例是涉及數據出口費用導致意外云計算賬單的許多可能場景之一。
Wallace說:“這在網絡流量方面是最顯著的,例如某人在公有云中打開一個網絡網關來連接虛擬網絡,每天可能為使用網關支付2.4美元,但作為一個極端的例子,每天可以產生10800美元的數據傳輸費用。”
在云平臺之間遷移工作負載時,費用激增的可能性就會增加。
Wallace說:“當涉及到多云時,風險被放大了,因為云計算以外的網絡流量更有可能產生更高的費用高。這是一種概括,但需要注意的是,必須理解這些數據流。”
(4)開發人員需要保持簡單和快速
最后,不要忘記開發人員。開發者體驗如今就是一切。
隨著混合云和多云環境變得更加多樣化和復雜,具有的一些優勢(包括根據企業確定的標準將工作負載與最佳環境相匹配的控制和靈活性)取決于防止開發團隊發生不必要的摩擦。
Wallace指出,這實際上取決于很多不同的因素,例如開發人員、應用程序組合、代碼庫、你的使命等等。
Wallace表示,這是一個理想的場景,將多云的好處與開發人員的豐富經驗結合起來,可能是一個無服務器的模型,開發人員可以在內部部署或云計算開發環境中開發,幾乎沒有需要維護的基礎設施,并且在API網關等組件中內置了節流限制等工具,以避免開發中失控的代碼造成失控的成本。
將編寫、測試和部署代碼之間的摩擦降到最低的優秀工具對業務和開發人員都有好處,同時也是實現真正工作負載可遷移性的基礎。
Wallace說:“這種設計模式對于最大化任何云平臺、內部部署數據中心和邊緣部署之間的可遷移性也非常好。”
Drobisewski指出,混合云和多云生態系統帶來的好處可能會讓開發人員將其簡化。
Drobisewski說:“投資于統一技術支持并策劃一系列架構良好的模式的單一市場,這些模式既安全又可以優化成本,將加快開發人員的支持,同時培養重用文化。”
最后,如果云計算工作負載的可遷移性是優先考慮的問題,那么混合云和多云實際上可以很好地配合,它們可以相互依存,從而提高開發人員的開發速度。Dempsey建議避免過于專注于特定的方法或項目管理風格。
與成本一樣,也應該在應用程序級別對開發人員的開發速度進行審查。
Dempsey說,“企業的哪個應用程序沒有提供某種類型的抽象——應用程序棧的哪些方面與特定的技術或供應商緊密結合?它們可能是產生摩擦的來源,如果目標是解耦并專注于創建健壯的數據交付管道,這將為開發人員和數據消費者提供長期的靈活性和集成機會。”