淺析面向雲架構的SLA

雲服務重塑了企業級應用的架構,公共雲成爲了集成企業應用、平臺軟件和服務的一個設計中心。API驅動的資源按需分配,與傳統的企業數據中心基礎設施有着很大的不同。企業應用需要適應雲服務的架構設計,同時又向雲服務添加了企業屬性和服務的等級。

過去,企業級應用的主要體系結構是專用數據中心中構建的系統,其設計目的是爲企業應用程序提供有保證的服務級別。這與公共雲多租戶體系結構是完全不同的,本質原因是應用程序和服務作爲分佈式系統構建在虛擬化的資源之上。而對於一些IT部門而言,雲服務只是爲了避免公司財務審覈的麻煩。

儘管許多大型公司已經成功地使用雲服務交付了彈性而高效的應用,但是讓企業應用使用公共雲仍然並非易事。靈活性和自動化可以簡化 IT 操作,雲服務需要成爲一個高性能的企業級平臺,需要能夠支持財務分析、 ERP系統和供應鏈管理等業務級應用。

企業級應用的SLA對雲服務的挑戰

企業級應用需要額外屬性的業務環境,比如高可用性、安全性、可靠性或者性能,這些屬性對新舊應用都是適用的。例如, 由於監管或業務原因,數據安全性可能很重要。數據完整性的漏洞,可能導致錯誤的業務決策或財務結果,使公司損失真金白銀,甚至可能導致市場價值的損失。 

SLA是企業服務的需求,通常採用提供者和消費者之間的契約,並對不遵守的行爲進行處罰。具體和可測量的 SLO是用於測試 SLA 是否滿足的單個度量標準。在這裏,雲服務是指部署應用和服務的平臺,許多IaaS和 PaaS提供商都提供了雲服務。雲服務通常包括按需分配的自助服務、廣域網訪問、資源池、快速彈性等等。雲服務交付的服務級別與企業期望的服務級別存在着普遍的差距。很多雲服務的SLA一般在99.95% ~99.99%之間,而且不保證性能。

可靠性和可用性

企業級應用 SLA 的可用性可能是技術上的挑戰。例如,關鍵業務可能不能容忍每年超過5分鐘的停機時間,這需要99.999% 的可用性。相比之下,雲服務中的資源經濟性可能有相對較高的預期故障率。例如,AWS的EBS服務大約每年的故障率爲0.1%-0.5% ,這意味着可能每年高達1/200的故障率。

關鍵業務對數據不一致和數據損壞的容忍度通常較低。許多企業應用可能要被重新實現,使用“最終一致性”的架構來優化性能和可用性。當業務風險或懲罰足夠高時,一些企業應用更喜歡停機或數據丟失,而不是提供錯誤的結果。如果可用性足夠嚴格,它會給軟件施壓,使其實現快速恢復。

雲服務鼓勵將“爲失敗而設計”作爲正常操作來實現高可用性。這就需要容錯軟件來補償那些不可靠的基礎設施,就像 RAID補償不可靠的物理介質一樣。可靠性和可用性已經成爲了軟件的問題。或許,這是一個構建健壯軟件的機會。

性能

企業應用的性能需求各不相同。面向最終用戶的應用可能被管理爲特定的響應時間。重要的業務,如 ERP 和財務分析,可以同時管理響應時間和麪向吞吐量的 SLO,以支持特定的業務目標,例如隔夜交易策略的優化。

在雲服務中,許多性能挑戰都是多租戶的副產品。實際上,物理資源成爲了排隊系統: 多租戶的雲設施超訂可能導致性能的巨大變化。無論存儲的性能,還是網絡的帶寬,都可能存在着“吵鬧的街坊”。計算的超訂也會對IO延遲產生負面影響,性能和成本之間存在着權衡。多租戶公提高了物理基礎設施的利用率,優化了雲服務的成本,但無法以儘可能低的固定成本來保證共享物理資源的性能。超訂物理資源的性能可以隨機波動,而靜態物理資源的性能可以得到保證,但是成本更高。

如果要保證性能,靈活地使用虛擬資源是雲服務中的一個需求,必須對分佈式系統進行積極管理才能實現性能目標。 

安全性

安全需求隨企業應用的類別而定,應用或數據的業務價值越高,安全需求就越嚴格。除了避免DDOS,以及“數據泄露” ,還要實施多層次的安全控制,因爲沒有一個單獨的系統是完全安全的。

從企業安全的角度來看,雲服務是一個有趣的環境。一方面,多租戶被認爲是一種新的令人擔憂的環境。另一方面,跨負載實施的邏輯安全控制和自動化策略管理提供了一個增加安全性的機會。邏輯控件比物理控件更加靈活、可審計和可執行。網絡訪問的控制規則是邏輯控制的一個典型例子,可以直接應用於虛擬機,可以動態地提供邏輯分區,可以縮小適應工作負載中的準確資源,並在工作負載移動時移動邏輯分區。

雲服務需要新的安全工具和技術,並重新思考傳統的安全技術,可能需要以編程的方式表示安全性的 SLO。用戶、應用和以數據爲中心的探索,是應對實現更高級別安全SLA的挑戰。

企業級應用對雲服務的適應性

企業級的數據中心通常針對預定的用例集進行優化。專用系統通過預集成組件實現具體的服務水平,具有固定的價格成本和性能,包括硬件設備、備份系統,以及私有云等。供應商垂直集成硬件和軟件組件以提供服務級屬性(例如,I/O速率、物理資源配置、故障隔離等)。通過將供應商的部署與性能和可靠度的最佳實踐相結合,可以滿足更高等級的 SLA。

專用系統需要高帶寬的節點間通信,並提供了非常高的性能級別。企業可能會爲特定的用例支付額外費用。

靜態集成VS動態分佈

當然,專用系統和公共雲之間的硬件差距正在縮小。雲服務已經創造了適合大規模部署和運營的硬件設計,這種趨勢可能會持續下去,因爲合理規模的虛擬機資源具有實際的好處,例如,簡單的可擴展性問題、節點間數據移動的成本降低,或者價格/性能/功耗效率等等。此外,一些雲服務廠商還提供了具有一定服務級別的專用系統。

雲服務是動態的和分佈式的,專用系統是靜態的和集成的。虛擬化資源針對自動化、成本和規模進行了優化,還擁有平臺和硬件抽象層。抽象是提供更高級別SLA的一個挑戰,由於不知道哪些虛擬資源位於相同的性能和故障域中,因此很難保證服務級別。

企業的基礎設施有機會進行轉換。在實現高可用性分佈式系統這一具有挑戰性的工作中,應用程序將能夠抵禦組件故障,並且對高可用性基礎設施的需求將隨着時間的推移而減少。SLA 可以在雲服務上的軟件中交付,爲企業應用提供企業屬性和服務級別。

雲服務上企業級應用的 SLA

相對於企業的需求,雲服務中的按需資源實際上是無限的。雖然很少公開披露,但據保守估計,單個公有云的服務器數量達到了數十萬,而且還在快速增長。這已經比一個擁有數萬臺服務器的大企業數據中心大了一兩個數量級。與大型網站上的數百萬最終用戶相比,50000最終用戶對於企業業務、批處理或分析應用來說都是一個不小的數字。

雲服務從根本上改變了當今企業應用和基礎設施的體系結構,資源不再是固定的, 甚至有額外的CPU和 RAM 供應給企業應用。資源只受預算的限制。

雖然 雲服務提供了有限的SLA,但通常需要應用和平臺軟件圍繞着應用的特性(如性能、彈性、可用性和成本)來提供保證。由於與多租戶相關,需要通過設計來容忍任意的失敗,並實現自己的 SLA。 

Software defined everything(軟件定義一切)。

軟件定義的SLA

軟件定義的SLA可能是個潛在的解決方案,提供了一種新的設計模式,將 SLA和 SLO形式化爲雲服務軟件組件中的可配置參數。然後,這些組件管理基礎資源,以滿足特定的SLO 需求。使用按需分配的資源,可以通過系統層來滿足某些 SLO,而這些 SLO 以前需要進行規劃、靜態分區和超額供給。最後,雲服務的API將軟件定義的SLA合併爲運行時配置。

軟件定義的SLA可以爲基本服務級別指定度量,如響應時間、I/O吞吐量和可用性,還可以指定抽象但可衡量的屬性,如地理分佈或負載約束。軟件定義的SLA應該是獨立於供應商和技術,在邏輯單元中指定,並且是客觀可測量的。

可能的實現

軟件定義的SLA需要在雲服務中實現,用於運行時可配置的 SLOs擴展,用於高可用性和容錯,以及用於按需分配計算能力和 I/O資源。

鑑於分佈式系統開發的挑戰,不太可能對軟件定義的SLA採用一刀切, 可以在應用服務、平臺組件中實現各種編程式的 SLO。特定應用的上下文確定了哪些組件適合給定的用例,由於雲服務和企業應用都是動態目標,可能會迭代雲服務提供的屬性與企業應用提供的屬性,以及介於兩者之間的軟件組件和服務。

運行時重新配置非常具有挑戰性。QoS技術是必要的,但還不夠,動態提供 RAM、 CPU 和存儲資源以滿足不斷變化環境條件下的 SLO是必需的。然而,軟件定義SLA的價值會證明重大的工程努力和成本是合理的。在考慮性能和數據可用性時,必須考慮計算能力和數據存儲的配置,這些可以減輕與多租戶網絡相關的一些性能問題。

一般來說,可以使用標籤來確定資源,特別是實現安全性的SLO。基於主機的虛擬網絡和 OpenFlow 提供了更多的機會來標記網絡流中的用戶和組。安全性的 SLO可以通過將用戶和組標記與訪問控制關聯來實現。類似地,存儲服務元數據中的數據集標記有助於實現數據相關的 SLO(例如,數據可用性、複製、訪問控制和加密密鑰管理策略)。

成本優化

即使使用私有云技術,過度供應仍然是保證服務級別的標準方法。專用系統的整個成本必須預先支付,包括SLA和隨時間推移不斷增加的超量供應開銷。公共雲服務中的資源可以根據需要分配和釋放,因此可以根據實際使用情況計費。就可變工作負載的運行效率而言,這是公共雲服務超越專用系統的一個機會。

由於實現不同的 SLO可能需要可變資源,因此軟件定義的SLA與成本函數相關聯。面對不斷變化的基本條件(例如,不可預測的多租戶資源) ,成本是一個隨機變量,即使所有其他 SLO 都是固定的。

軟件定義SLA的限制

軟件定義的SLA在理論和實踐上都可能有着侷限性。由於成本始終是需要管理的系統級參數,因此有些組合可能不起作用。即使給定無限的成本,有些 SLO也可能在物理上無法實現。此外,設計糟糕的雲服務可能不適合軟件定義的SLA。

在動態資源管理領域, 物理屬性可以分解爲單獨的可消費單元。例如,計算資源可以獨立於 I/O、 I/O 吞吐量獨立於容量,CPU 和 RAM 獨立於彼此。這削弱了專用系統的縱向一體化優勢。 

公共雲服務引入了根本的經濟轉變——價格/性能指標需要考慮到工作負載和運行時間。由於公共雲服務具有隨需應變的特性,價格是隨時間分配資源的函數,以工作負載運行後的小時或天計算,而不是標準的企業硬件生命週期。還有更多機會通過自動化測試基礎設施和分析來驗證軟件定義的SLA,這爲第三方驗證SLA和適當評估懲罰提供了可能。

與雲服務的同步成長

對於公共雲服務來說,處理大量的企業計算用例將是一次有益的旅程。與過去一樣,企業應用模型的轉換可以逐步進行,從非關鍵的應用程序開始,並隨着生態系統的成熟而向上構建。公共雲創新的步伐是無情的,大量的能源和資金繼續湧入公共雲基礎設施。從歷史上看,企業平臺的結構發生了根本性的變化,這是計算經濟學不斷變化的結果。 

企業應用和基礎設施可以構建爲分佈式系統,使用可重用的平臺組件。這可以幫助IT專業人員和開發人員部署快速可靠的應用程序,而不必每次都重新造輪子。一些與可靠性、可用性、安全性和可靠性相關的企業特性可以在這個模型中連續運行。軟件定義SLA的運行時配置提供了一個對確切性能指標進行管理的機會,而不是基於原始硬件或預先打包SLA的物理特性。企業應用可以利用雲服務的規模、效率、快速發展的硬件同步成長,不是在專用系統中實現,而是通過公共雲資源實現的。

關聯閱讀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章