IT系統(tǒng)追求的是靈活性,以便隨時應對真實世界的業(yè)務變化,IT系統(tǒng)更像一個有機的生命體,需要不停的改變自己去適應外界變化,才能讓自身更有生命力。系統(tǒng)壓力是一個重要的變化維度,是否能夠隨著系統(tǒng)壓力的增減而動態(tài)的調整系統(tǒng)的某一部分體現(xiàn)了架構是否具有足夠的彈性。
? ? ? ? 水平擴展能力,是互聯(lián)網(wǎng)架構重要的彈性表現(xiàn)。當系統(tǒng)面對增加的用戶和訪問量時,是否能夠快速進行水平擴展,往往決定了互聯(lián)網(wǎng)應用的生死。另一方面,當訪問量回落后,是否能夠釋放掉資源以節(jié)約成本會變成核心競爭力之一。根據(jù)擴展的粒度不同,這種擴展可能是機器或組件粒度的,比如增加或減少云服務器的數(shù)量,也可能是整體架構粒度的,比如在線游戲開新服,就需要復制整個系統(tǒng)。
? ? ? ? 實現(xiàn)彈性架構有很多方法,重要的問題是,如何更優(yōu)雅的讓系統(tǒng)具備彈性?讓IT系統(tǒng)應對變化時能夠快速、可靠和自動化?
實現(xiàn)彈性架構的基本原則
數(shù)據(jù)化運維
? ? ? ? 讓系統(tǒng)具備彈性的目的是為了應對業(yè)務變化,而感知變化是首要的事情。這就需要系統(tǒng)能夠具備數(shù)據(jù)化的運維能力,從收集系統(tǒng)運行數(shù)據(jù),到最終根據(jù)數(shù)據(jù)做出是否需要觸發(fā)彈性變化的判斷。
按需獲取資源
? ? ? ? 系統(tǒng)的彈性變化最終會落到對資源的調整上,可能是流量增加時增加云服務器,流量減少時減少云服務器。這就需要系統(tǒng)能夠隨時根據(jù)需要獲取和釋放計算資源。
可復制和可維護
? ? ? ? 系統(tǒng)的彈性變化是隨時都有可能發(fā)生的,所以彈出來的部分一定是被內置到系統(tǒng)內部的,是可以無限次被執(zhí)行的。同時,又能夠很好的被開發(fā)人員維護,以代碼的形式成為系統(tǒng)的一部分,可以被修改、測試、追蹤版本等。