提升應(yīng)用程序彈性:保障工作負載正常運行

責任編輯:editor005

作者:Stephen J. Bigelow

2017-08-18 14:18:08

摘自:TechTarget中國

通過集群化、復(fù)制、快照、微服務(wù)和應(yīng)用程序設(shè)計來提高企業(yè)工作負載的應(yīng)用程序彈性和可用性。

通過集群化、復(fù)制、快照、微服務(wù)和應(yīng)用程序設(shè)計來提高企業(yè)工作負載的應(yīng)用程序彈性和可用性。

應(yīng)用程序的彈性和可用性是現(xiàn)代企業(yè)工作負載的關(guān)鍵屬性。應(yīng)用程序需要在硬件故障發(fā)生后,扛過服務(wù)故障(例如負載平衡器和域名系統(tǒng)錯誤)保持工作狀態(tài),并且可以忍受局域網(wǎng)和互聯(lián)網(wǎng)中斷的影響。每個事件都可能會影響業(yè)務(wù)收入、聲譽甚至法規(guī)的符合性。以下五種方法幫助您增強應(yīng)用程序彈性和服務(wù)可用性。

集群化增加應(yīng)用程序彈性

群集幾乎是最普遍的用于增強應(yīng)用程序的彈性、性能和可用性的方法。應(yīng)用程序的某一實例擁有的吞吐能力是有限的—它只能在給定的時間內(nèi)做一定量的工作。如果您推送的應(yīng)用程序超出其容量—期望其每秒處理的比其可以處理的事務(wù)更多—應(yīng)用程序?qū)⒃庥鲂阅芙档蜕踔潦潜罎⒉⒆兊脽o法工作。該應(yīng)用程序工作負載的每個附加實例可以增加應(yīng)用程序的有效容量,并允許集群實現(xiàn)比單個工作負載實例能夠處理更多的工作。這是可擴展性聚類的概念。如果企業(yè)需要從應(yīng)用程序獲得更多的工作能力,您可以將更多負載平衡的節(jié)點部署到應(yīng)用程序集群。

但附加的節(jié)點將增強應(yīng)用程序的可用性,這對于應(yīng)用程序高可用性(HA)相當關(guān)鍵。如果某一節(jié)點出現(xiàn)故障,則集群中的其他節(jié)點將共享計算負載。負載平衡器可以識別故障節(jié)點,并將應(yīng)用流量重新分配給其余節(jié)點。這樣一來該應(yīng)用程序仍然可工作。在很多情況下,用戶永遠都不會注意到這一問題。節(jié)點可以在同一數(shù)據(jù)中心本地,也可以分布在不同的數(shù)據(jù)中心,以防止可能出現(xiàn)的設(shè)施故障、互聯(lián)網(wǎng)中斷和其他潛在的威脅。

RAID和復(fù)制是存儲可用性的基礎(chǔ)

RAID仍然是存儲可用性的重要特性。RAID 0(條帶化)不提供數(shù)據(jù)保護,而是將數(shù)據(jù)分散到多個磁盤上,同時主軸用以提高存儲性能。RAID 1(鏡像)將一個磁盤的數(shù)據(jù)復(fù)制到另一個磁盤。如果一個磁盤發(fā)生故障,則副本可無縫地接管,您可以從工作副本中替換和重建發(fā)生故障的磁盤。RAID 5在多個磁盤或RAID組之間分散數(shù)據(jù)和奇偶校驗。如果磁盤發(fā)生故障,剩余的奇偶校驗信息可以重構(gòu)丟失的數(shù)據(jù),并重建有缺陷的磁盤的內(nèi)容。這樣可以保護存儲設(shè)備組免受單磁盤故障的影響。RAID 6也可在多個磁盤間分散數(shù)據(jù),但包含雙層奇偶校驗信息。這可以容忍和重建兩個同時的磁盤故障——該技術(shù)被稱為雙重奇偶校驗。

您還可以將RAID技術(shù)進行組合以實現(xiàn)多重優(yōu)勢。例如,將RAID 5或RAID 6組(RAID 1)鏡像到第二個磁盤組,其結(jié)合了性能并確保在重建故障磁盤時快速訪問數(shù)據(jù)。您可以制定最適合每個給定業(yè)務(wù)應(yīng)用程序的存儲保護方案。

復(fù)制可以在兼容的存儲子系統(tǒng)之間進行,但IT經(jīng)常使用它從一個數(shù)據(jù)中心站點定期復(fù)制數(shù)據(jù)到輔助站點或公有云——即某一非現(xiàn)場或遠程位置,可以幫助防止數(shù)據(jù)丟失一個嚴重的設(shè)施問題。您可以在本地存儲資源之間同步執(zhí)行復(fù)制,其中延遲不是重要因素,或遠程存儲資源之間的異步執(zhí)行,其中延遲可能很大。您可以同時使用和復(fù)制RAID。

快照和遷移提供的靈活性

虛擬化技術(shù)允許您在數(shù)據(jù)中心服務(wù)器上配置、部署和管理現(xiàn)代企業(yè)應(yīng)用程序作為虛擬機。虛擬機提供了巨大的靈活性,因為與物理服務(wù)器相比,計算資源的利用率更高,同時也保證了共享同一物理系統(tǒng)的每個虛擬機的充分邏輯隔離。即使虛擬機砸死服務(wù)器內(nèi)存空間中作為映像存在,但仍然必須保護這些映像不受服務(wù)器故障和應(yīng)用程序崩潰的影響,從而可能危及虛擬機并導(dǎo)致應(yīng)用程序無法使用。

然而,并不是所有的工作負載都那么重要,可以證明在集群和其他應(yīng)用程序可用性選擇方面的投資。快照是在服務(wù)器內(nèi)存中將虛擬機的時間點狀態(tài)復(fù)制到存儲中的文件的常見方法。您可以經(jīng)常捕獲并輕松恢復(fù)快照——將應(yīng)用程序恢復(fù)到當時時間點的狀態(tài)。通常情況下,應(yīng)用程序中斷時IT人員使用快照進行應(yīng)用程序回滾和快速恢復(fù)。您還可以使用快照創(chuàng)建重復(fù)的應(yīng)用程序?qū)嵗?mdash;—通常用于應(yīng)用程序測試、開發(fā)和評估。

在數(shù)據(jù)中心內(nèi)或遠程數(shù)據(jù)中心之間的虛擬化服務(wù)器之間遷移虛擬機非常簡單。遷移通常用于工作負載平衡等任務(wù)。這允許IT管理員調(diào)整固定服務(wù)器上的工作負載數(shù)量,以優(yōu)化可用的計算資源或通過將工作負載移動到具有更多計算資源可用性的另一臺服務(wù)器來提高應(yīng)用程序性能。為了防止工作負載中斷,在監(jiān)控和管理工具檢測到該服務(wù)器運行狀況的問題時,先將VM從服務(wù)器遷移出去。您還可以手動調(diào)用遷移以在服務(wù)器上執(zhí)行例行維護過程。

微服務(wù)和容器為虛擬化提供新的機會

應(yīng)用程序設(shè)計的一大新興趨勢是放棄傳統(tǒng)的單片設(shè)計并將應(yīng)用程序重新映射為使用API傳達命令和數(shù)據(jù)的更小的“無狀態(tài)”功能或服務(wù)的集合。這就是微服務(wù)的方法。您可以分別構(gòu)建、測試、部署和擴展每個組件。而且由于每個組件都是無狀態(tài)的,所以一個組件的故障或故障不會導(dǎo)致整體應(yīng)用中嚴重的數(shù)據(jù)丟失或不穩(wěn)定;您可以簡單地重新啟動某一出現(xiàn)問題的組件。

更新微服務(wù)應(yīng)用程序更加容易。盡管單片應(yīng)用程序更新將需要完整的功能回歸測試,但組件更新只需要測試該特定組件。由于組件是獨立存在的,因此在單片應(yīng)用程序中經(jīng)常存在的相互狀態(tài)關(guān)系并不存在而無需測試。

構(gòu)成微服務(wù)應(yīng)用程序的組件經(jīng)常部署到虛擬化容器之中。容器是用于提供服務(wù)器資源的替代化虛擬化技術(shù)。每個虛擬機提供完全隔離的操作環(huán)境,每個容器共享相同的底層操作系統(tǒng)、驅(qū)動程序和其他依賴項。這種共享方法使每個容器的體積之小和資源有效性都達到極限,允許更多容器駐留在同一臺服務(wù)器上。容器可被快速創(chuàng)建和銷毀,因此您可以根據(jù)需要對構(gòu)成微服務(wù)應(yīng)用程序的組件進行啟動和擴展。

在設(shè)計階段預(yù)先構(gòu)造應(yīng)用程序彈性

應(yīng)用程序彈性通常涉及工作負載在其某一或多個組件中發(fā)生故障后的生存能力,以及仍可為業(yè)務(wù)及其用戶提供最佳可能的服務(wù)的程度。這意味著您本應(yīng)將可用性集成到現(xiàn)代應(yīng)用程序的設(shè)計和測試階段之中。

應(yīng)用程序靈活性討論的一部分以應(yīng)用程序架構(gòu)和設(shè)計為中心。微服務(wù)器方法只是構(gòu)建復(fù)雜高度可擴展應(yīng)用程序的新興設(shè)計范例的一種流行演示。自動化以及編排提供擴充組件,并根據(jù)流量需求隨時間變化自動平衡負載提供了相應(yīng)能力。例如,如果較大應(yīng)用程序的一個組件或功能需要處理更多的流量請求,那么您可以復(fù)制該組件(僅復(fù)制該組件)來處理額外的流量。

彈性應(yīng)用程序設(shè)計的思考

彈性的應(yīng)用程序設(shè)計,如微服務(wù)器,需要重新關(guān)注測試和審查每項對應(yīng)用程序的更改。了解每個組件、模塊、服務(wù)或依賴關(guān)系的損失將如何影響應(yīng)用程序的整體可用性。如果應(yīng)用程序在測試期間不符合既定目標,則不應(yīng)將其發(fā)布到生產(chǎn)環(huán)境中。有時,您必須改進相關(guān)服務(wù)或依賴關(guān)系(如存儲)的可用性,以滿足應(yīng)用程序的可用性目標。

您還必須評估應(yīng)用程序的安全性,作為用戶授權(quán)和對外部和內(nèi)部攻擊的硬度的測量方法。衡量業(yè)務(wù)數(shù)據(jù)的安全性,并確保只有授權(quán)用戶可以訪問應(yīng)用程序的數(shù)據(jù),并保護數(shù)據(jù)免遭丟失或被盜。這可能包括某種形式的身份和訪問管理框架,以及在運行和非運行狀態(tài)下一定級別的數(shù)據(jù)加密。

此外,評估應(yīng)用程序的可擴展性,以確定如何輕松地擴展工作負載以滿足流量需求?,F(xiàn)代模塊化應(yīng)用程序往往更加容易進行擴充,因為通??梢酝ㄟ^更少的計算資源來更快地(通常是自動的)部署其他組件并平衡負載。

所有這些概念經(jīng)常伴隨著綜合的應(yīng)用程序性能管理工具,旨在幫助您了解工作負載在生產(chǎn)環(huán)境中如何執(zhí)行其設(shè)計目標。

應(yīng)用程序也經(jīng)常設(shè)法接受無狀態(tài)設(shè)計?;旧?,無狀態(tài)功能從外部獲取所需要的所有數(shù)據(jù),執(zhí)行其各自的任務(wù),然后將其結(jié)果傳遞給用戶或其他功能——不考慮模式、選集、選擇或配置偏好對功能行為的負面影響。如果功能發(fā)生故障,您可以簡單地重新啟動它,而免受數(shù)據(jù)損失數(shù)據(jù)的風險。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號