云服務(wù)重塑了企業(yè)級應(yīng)用的架構(gòu),公共云成為了集成企業(yè)應(yīng)用、平臺軟件和服務(wù)的一個設(shè)計中心。API驅(qū)動的資源按需分配,與傳統(tǒng)的企業(yè)數(shù)據(jù)中心基礎(chǔ)設(shè)施有著很大的不同。企業(yè)應(yīng)用需要適應(yīng)云服務(wù)的架構(gòu)設(shè)計,同時又向云服務(wù)添加了企業(yè)屬性和服務(wù)的等級。
過去,企業(yè)級應(yīng)用的主要體系結(jié)構(gòu)是專用數(shù)據(jù)中心中構(gòu)建的系統(tǒng),其設(shè)計目的是為企業(yè)應(yīng)用程序提供有保證的服務(wù)級別。這與公共云多租戶體系結(jié)構(gòu)是完全不同的,本質(zhì)原因是應(yīng)用程序和服務(wù)作為分布式系統(tǒng)構(gòu)建在虛擬化的資源之上。而對于一些IT部門而言,云服務(wù)只是為了避免公司財務(wù)審核的麻煩。
盡管許多大型公司已經(jīng)成功地使用云服務(wù)交付了彈性而高效的應(yīng)用,但是讓企業(yè)應(yīng)用使用公共云仍然并非易事。靈活性和自動化可以簡化 IT 操作,云服務(wù)需要成為一個高性能的企業(yè)級平臺,需要能夠支持財務(wù)分析、 ERP系統(tǒng)和供應(yīng)鏈管理等業(yè)務(wù)級應(yīng)用。
企業(yè)級應(yīng)用的SLA對云服務(wù)的挑戰(zhàn)
企業(yè)級應(yīng)用需要額外屬性的業(yè)務(wù)環(huán)境,比如高可用性、安全性、可靠性或者性能,這些屬性對新舊應(yīng)用都是適用的。例如, 由于監(jiān)管或業(yè)務(wù)原因,數(shù)據(jù)安全性可能很重要。數(shù)據(jù)完整性的漏洞,可能導致錯誤的業(yè)務(wù)決策或財務(wù)結(jié)果,使公司損失真金白銀,甚至可能導致市場價值的損失。
SLA是企業(yè)服務(wù)的需求,通常采用提供者和消費者之間的契約,并對不遵守的行為進行處罰。具體和可測量的 SLO是用于測試 SLA 是否滿足的單個度量標準。在這里,云服務(wù)是指部署應(yīng)用和服務(wù)的平臺,許多IaaS和 PaaS提供商都提供了云服務(wù)。云服務(wù)通常包括按需分配的自助服務(wù)、廣域網(wǎng)訪問、資源池、快速彈性等等。云服務(wù)交付的服務(wù)級別與企業(yè)期望的服務(wù)級別存在著普遍的差距。很多云服務(wù)的SLA一般在99.95% ~99.99%之間,而且不保證性能。
可靠性和可用性
企業(yè)級應(yīng)用 SLA 的可用性可能是技術(shù)上的挑戰(zhàn)。例如,關(guān)鍵業(yè)務(wù)可能不能容忍每年超過5分鐘的停機時間,這需要99.999% 的可用性。相比之下,云服務(wù)中的資源經(jīng)濟性可能有相對較高的預(yù)期故障率。例如,AWS的EBS服務(wù)大約每年的故障率為0.1%-0.5% ,這意味著可能每年高達1/200的故障率。
關(guān)鍵業(yè)務(wù)對數(shù)據(jù)不一致和數(shù)據(jù)損壞的容忍度通常較低。許多企業(yè)應(yīng)用可能要被重新實現(xiàn),使用“最終一致性”的架構(gòu)來優(yōu)化性能和可用性。當業(yè)務(wù)風險或懲罰足夠高時,一些企業(yè)應(yīng)用更喜歡停機或數(shù)據(jù)丟失,而不是提供錯誤的結(jié)果。如果可用性足夠嚴格,它會給軟件施壓,使其實現(xiàn)快速恢復(fù)。
云服務(wù)鼓勵將“為失敗而設(shè)計”作為正常操作來實現(xiàn)高可用性。這就需要容錯軟件來補償那些不可靠的基礎(chǔ)設(shè)施,就像 RAID補償不可靠的物理介質(zhì)一樣??煽啃院涂捎眯砸呀?jīng)成為了軟件的問題?;蛟S,這是一個構(gòu)建健壯軟件的機會。
性能
企業(yè)應(yīng)用的性能需求各不相同。面向最終用戶的應(yīng)用可能被管理為特定的響應(yīng)時間。重要的業(yè)務(wù),如 ERP 和財務(wù)分析,可以同時管理響應(yīng)時間和面向吞吐量的 SLO,以支持特定的業(yè)務(wù)目標,例如隔夜交易策略的優(yōu)化。
在云服務(wù)中,許多性能挑戰(zhàn)都是多租戶的副產(chǎn)品。實際上,物理資源成為了排隊系統(tǒng): 多租戶的云設(shè)施超訂可能導致性能的巨大變化。無論存儲的性能,還是網(wǎng)絡(luò)的帶寬,都可能存在著“吵鬧的街坊”。計算的超訂也會對IO延遲產(chǎn)生負面影響,性能和成本之間存在著權(quán)衡。多租戶公提高了物理基礎(chǔ)設(shè)施的利用率,優(yōu)化了云服務(wù)的成本,但無法以盡可能低的固定成本來保證共享物理資源的性能。超訂物理資源的性能可以隨機波動,而靜態(tài)物理資源的性能可以得到保證,但是成本更高。
如果要保證性能,靈活地使用虛擬資源是云服務(wù)中的一個需求,必須對分布式系統(tǒng)進行積極管理才能實現(xiàn)性能目標。
安全性
安全需求隨企業(yè)應(yīng)用的類別而定,應(yīng)用或數(shù)據(jù)的業(yè)務(wù)價值越高,安全需求就越嚴格。除了避免DDOS,以及“數(shù)據(jù)泄露” ,還要實施多層次的安全控制,因為沒有一個單獨的系統(tǒng)是完全安全的。
從企業(yè)安全的角度來看,云服務(wù)是一個有趣的環(huán)境。一方面,多租戶被認為是一種新的令人擔憂的環(huán)境。另一方面,跨負載實施的邏輯安全控制和自動化策略管理提供了一個增加安全性的機會。邏輯控件比物理控件更加靈活、可審計和可執(zhí)行。網(wǎng)絡(luò)訪問的控制規(guī)則是邏輯控制的一個典型例子,可以直接應(yīng)用于虛擬機,可以動態(tài)地提供邏輯分區(qū),可以縮小適應(yīng)工作負載中的準確資源,并在工作負載移動時移動邏輯分區(qū)。
云服務(wù)需要新的安全工具和技術(shù),并重新思考傳統(tǒng)的安全技術(shù),可能需要以編程的方式表示安全性的 SLO。用戶、應(yīng)用和以數(shù)據(jù)為中心的探索,是應(yīng)對實現(xiàn)更高級別安全SLA的挑戰(zhàn)。
企業(yè)級應(yīng)用對云服務(wù)的適應(yīng)性
企業(yè)級的數(shù)據(jù)中心通常針對預(yù)定的用例集進行優(yōu)化。專用系統(tǒng)通過預(yù)集成組件實現(xiàn)具體的服務(wù)水平,具有固定的價格成本和性能,包括硬件設(shè)備、備份系統(tǒng),以及私有云等。供應(yīng)商垂直集成硬件和軟件組件以提供服務(wù)級屬性(例如,I/O速率、物理資源配置、故障隔離等)。通過將供應(yīng)商的部署與性能和可靠度的最佳實踐相結(jié)合,可以滿足更高等級的 SLA。
專用系統(tǒng)需要高帶寬的節(jié)點間通信,并提供了非常高的性能級別。企業(yè)可能會為特定的用例支付額外費用。
靜態(tài)集成VS動態(tài)分布
當然,專用系統(tǒng)和公共云之間的硬件差距正在縮小。云服務(wù)已經(jīng)創(chuàng)造了適合大規(guī)模部署和運營的硬件設(shè)計,這種趨勢可能會持續(xù)下去,因為合理規(guī)模的虛擬機資源具有實際的好處,例如,簡單的可擴展性問題、節(jié)點間數(shù)據(jù)移動的成本降低,或者價格/性能/功耗效率等等。此外,一些云服務(wù)廠商還提供了具有一定服務(wù)級別的專用系統(tǒng)。
云服務(wù)是動態(tài)的和分布式的,專用系統(tǒng)是靜態(tài)的和集成的。虛擬化資源針對自動化、成本和規(guī)模進行了優(yōu)化,還擁有平臺和硬件抽象層。抽象是提供更高級別SLA的一個挑戰(zhàn),由于不知道哪些虛擬資源位于相同的性能和故障域中,因此很難保證服務(wù)級別。
企業(yè)的基礎(chǔ)設(shè)施有機會進行轉(zhuǎn)換。在實現(xiàn)高可用性分布式系統(tǒng)這一具有挑戰(zhàn)性的工作中,應(yīng)用程序?qū)⒛軌虻钟M件故障,并且對高可用性基礎(chǔ)設(shè)施的需求將隨著時間的推移而減少。SLA 可以在云服務(wù)上的軟件中交付,為企業(yè)應(yīng)用提供企業(yè)屬性和服務(wù)級別。
云服務(wù)上企業(yè)級應(yīng)用的 SLA
相對于企業(yè)的需求,云服務(wù)中的按需資源實際上是無限的。雖然很少公開披露,但據(jù)保守估計,單個公有云的服務(wù)器數(shù)量達到了數(shù)十萬,而且還在快速增長。這已經(jīng)比一個擁有數(shù)萬臺服務(wù)器的大企業(yè)數(shù)據(jù)中心大了一兩個數(shù)量級。與大型網(wǎng)站上的數(shù)百萬最終用戶相比,50000最終用戶對于企業(yè)業(yè)務(wù)、批處理或分析應(yīng)用來說都是一個不小的數(shù)字。
云服務(wù)從根本上改變了當今企業(yè)應(yīng)用和基礎(chǔ)設(shè)施的體系結(jié)構(gòu),資源不再是固定的, 甚至有額外的CPU和 RAM 供應(yīng)給企業(yè)應(yīng)用。資源只受預(yù)算的限制。
雖然 云服務(wù)提供了有限的SLA,但通常需要應(yīng)用和平臺軟件圍繞著應(yīng)用的特性(如性能、彈性、可用性和成本)來提供保證。由于與多租戶相關(guān),需要通過設(shè)計來容忍任意的失敗,并實現(xiàn)自己的 SLA。
Software defined everything(軟件定義一切)。
軟件定義的SLA
軟件定義的SLA可能是個潛在的解決方案,提供了一種新的設(shè)計模式,將 SLA和 SLO形式化為云服務(wù)軟件組件中的可配置參數(shù)。然后,這些組件管理基礎(chǔ)資源,以滿足特定的SLO 需求。使用按需分配的資源,可以通過系統(tǒng)層來滿足某些 SLO,而這些 SLO 以前需要進行規(guī)劃、靜態(tài)分區(qū)和超額供給。最后,云服務(wù)的API將軟件定義的SLA合并為運行時配置。
軟件定義的SLA可以為基本服務(wù)級別指定度量,如響應(yīng)時間、I/O吞吐量和可用性,還可以指定抽象但可衡量的屬性,如地理分布或負載約束。軟件定義的SLA應(yīng)該是獨立于供應(yīng)商和技術(shù),在邏輯單元中指定,并且是客觀可測量的。
可能的實現(xiàn)
軟件定義的SLA需要在云服務(wù)中實現(xiàn),用于運行時可配置的 SLOs擴展,用于高可用性和容錯,以及用于按需分配計算能力和 I/O資源。
鑒于分布式系統(tǒng)開發(fā)的挑戰(zhàn),不太可能對軟件定義的SLA采用一刀切, 可以在應(yīng)用服務(wù)、平臺組件中實現(xiàn)各種編程式的 SLO。特定應(yīng)用的上下文確定了哪些組件適合給定的用例,由于云服務(wù)和企業(yè)應(yīng)用都是動態(tài)目標,可能會迭代云服務(wù)提供的屬性與企業(yè)應(yīng)用提供的屬性,以及介于兩者之間的軟件組件和服務(wù)。
運行時重新配置非常具有挑戰(zhàn)性。QoS技術(shù)是必要的,但還不夠,動態(tài)提供 RAM、 CPU 和存儲資源以滿足不斷變化環(huán)境條件下的 SLO是必需的。然而,軟件定義SLA的價值會證明重大的工程努力和成本是合理的。在考慮性能和數(shù)據(jù)可用性時,必須考慮計算能力和數(shù)據(jù)存儲的配置,這些可以減輕與多租戶網(wǎng)絡(luò)相關(guān)的一些性能問題。
一般來說,可以使用標簽來確定資源,特別是實現(xiàn)安全性的SLO?;谥鳈C的虛擬網(wǎng)絡(luò)和 OpenFlow 提供了更多的機會來標記網(wǎng)絡(luò)流中的用戶和組。安全性的 SLO可以通過將用戶和組標記與訪問控制關(guān)聯(lián)來實現(xiàn)。類似地,存儲服務(wù)元數(shù)據(jù)中的數(shù)據(jù)集標記有助于實現(xiàn)數(shù)據(jù)相關(guān)的 SLO(例如,數(shù)據(jù)可用性、復(fù)制、訪問控制和加密密鑰管理策略)。
成本優(yōu)化
即使使用私有云技術(shù),過度供應(yīng)仍然是保證服務(wù)級別的標準方法。專用系統(tǒng)的整個成本必須預(yù)先支付,包括SLA和隨時間推移不斷增加的超量供應(yīng)開銷。公共云服務(wù)中的資源可以根據(jù)需要分配和釋放,因此可以根據(jù)實際使用情況計費。就可變工作負載的運行效率而言,這是公共云服務(wù)超越專用系統(tǒng)的一個機會。
由于實現(xiàn)不同的 SLO可能需要可變資源,因此軟件定義的SLA與成本函數(shù)相關(guān)聯(lián)。面對不斷變化的基本條件(例如,不可預(yù)測的多租戶資源) ,成本是一個隨機變量,即使所有其他 SLO 都是固定的。
軟件定義SLA的限制
軟件定義的SLA在理論和實踐上都可能有著局限性。由于成本始終是需要管理的系統(tǒng)級參數(shù),因此有些組合可能不起作用。即使給定無限的成本,有些 SLO也可能在物理上無法實現(xiàn)。此外,設(shè)計糟糕的云服務(wù)可能不適合軟件定義的SLA。
在動態(tài)資源管理領(lǐng)域, 物理屬性可以分解為單獨的可消費單元。例如,計算資源可以獨立于 I/O、 I/O 吞吐量獨立于容量,CPU 和 RAM 獨立于彼此。這削弱了專用系統(tǒng)的縱向一體化優(yōu)勢。
公共云服務(wù)引入了根本的經(jīng)濟轉(zhuǎn)變——價格/性能指標需要考慮到工作負載和運行時間。由于公共云服務(wù)具有隨需應(yīng)變的特性,價格是隨時間分配資源的函數(shù),以工作負載運行后的小時或天計算,而不是標準的企業(yè)硬件生命周期。還有更多機會通過自動化測試基礎(chǔ)設(shè)施和分析來驗證軟件定義的SLA,這為第三方驗證SLA和適當評估懲罰提供了可能。
與云服務(wù)的同步成長
對于公共云服務(wù)來說,處理大量的企業(yè)計算用例將是一次有益的旅程。與過去一樣,企業(yè)應(yīng)用模型的轉(zhuǎn)換可以逐步進行,從非關(guān)鍵的應(yīng)用程序開始,并隨著生態(tài)系統(tǒng)的成熟而向上構(gòu)建。公共云創(chuàng)新的步伐是無情的,大量的能源和資金繼續(xù)涌入公共云基礎(chǔ)設(shè)施。從歷史上看,企業(yè)平臺的結(jié)構(gòu)發(fā)生了根本性的變化,這是計算經(jīng)濟學不斷變化的結(jié)果。
企業(yè)應(yīng)用和基礎(chǔ)設(shè)施可以構(gòu)建為分布式系統(tǒng),使用可重用的平臺組件。這可以幫助IT專業(yè)人員和開發(fā)人員部署快速可靠的應(yīng)用程序,而不必每次都重新造輪子。一些與可靠性、可用性、安全性和可靠性相關(guān)的企業(yè)特性可以在這個模型中連續(xù)運行。軟件定義SLA的運行時配置提供了一個對確切性能指標進行管理的機會,而不是基于原始硬件或預(yù)先打包SLA的物理特性。企業(yè)應(yīng)用可以利用云服務(wù)的規(guī)模、效率、快速發(fā)展的硬件同步成長,不是在專用系統(tǒng)中實現(xiàn),而是通過公共云資源實現(xiàn)的。
評論
查看更多