3階段看懂互聯網銀行信息系統
今兒為大家科普一下新網銀行信息系統。
新網銀行的系統採用分散式微服務架構,他會給我們帶來什麼好處呢。
首先,我們先來看一下系統的演化:
第一階段單體應用:
所謂單體應用,即所有的功能都在一個服務內部,舉個現實生活的例子,大家應該都看過《雪國列車》這部電影,電影講述了一場突如其來的氣候異變讓地球上大部分人類滅亡,在一列沒有終點、沿著鐵軌一直行駛下去的列車上,載著地球上最後倖存的人們,「雪國列車」成為了他們最後的歸宿。
雪國列車相當於這裡的單體應用,人們所有日常生活都在列車上完成,一旦列車出軌,列車裡底層的平民和頂層的貴族都會Game Over。因此,單體應用最大的問題便是耦合性和容災能力,任何一點的故障,都會導致整個系統的不可用,所謂牽一髮而動全局。
因此,出現了第二種模式垂直服務化:
在這種模式下,原來單體系統中耦合在一起的功能被按照不同的功能垂直劃分為多個子系統。繼續以雪國列車為例,電影中最後地球溫度回暖到適合人類生存,僅存的兩個人終於踏出了列車,來到了外部的世界。
經過N多年,他們繁衍了自己的後代,建立起了一個生活基地,兩棟房子,一個用於生活,一個用於工作。這樣,生活和工作就分開了,用於生活的房子發生了火災不會影響到工作房子里的人,反之亦然。
將系統按照功能垂直化後,雖然在資源和管理上相比單體應用稍微有所增加,但是解決了功能之間相互耦合和影響的問題,保證了各功能子系統之間的相互獨立,整體來看,系統整體的服務能力提高了。
隨著規模的不斷擴大,系統基於不同的功能擴展出很多的功能子系統。但是很快新的問題出現了,子系統內部的資源也出現不夠用的問題。
繼續上面的例子,隨著人口的繁衍,很快原來建起的生活和工作的房子都容納不了所有的人口了,於是人們繼續擴建房子。按照原來生活的房子的標準建造了一組生活的房子,按照原來工作的房子標準建造了另一組工作的房子,於是房子多了,大家又可以happy了。
這裡反映了系統的幾個概念,朱望仔結合上面的生活實例給大家一一講解一下,
●上面用於生活或工作的每個房子對應一個獨立服務;
●上面用於生活或工作的一組房子對應一個服務集群;
●上面按照生活、工作等功能的不同擴展的不同功能類型,對應垂直擴展或scale up;
●上面同一個功能內部房子數量的增加對應水平擴展或scale out;
相應的,出現了第三種模式水平伸縮,微服務化:
到目前為止,我們的系統具備了按照功能進行垂直擴展和基於容量進行水平擴展的能力。隨著新場景的出現不斷的進行垂直地擴展,隨著容量的增加每個垂直場景在水平上又可以不斷的增加。大系統達到一定規模的時候,如何管理這些服務便成為了一個新的問題。
繼續上面的生活實例,隨著人口的進一步增長,功能數量和房屋數量不斷增加,和原來只有1棟房子的時候相比,現在要找一個人變得很複雜。有成百上千的住房,要找到人住在哪裡。
因此,出現了類似房屋管理中心的機構,專門負責管理登記住址信息。對應到我們的系統層面,這裡的房屋管理中心便對應到分散式系統的註冊中心,所有的服務會在這裡登記管理調度。
好了,講到這裡,我們已經能夠給新網銀行的分散式系統做一個最基本的定義了,即滿足了集群化,能夠實現垂直和水平擴展並且自我管理的系統。新網銀行的IT系統,通過分散式達到了上述的能力。
前面講了新網銀行的分散式架構的原理,那麼是否通過技術手段達到服務分散式部署就夠了呢?
分散式化後,意味著管理的服務多了,當系統規模達到成百上千的時候,服務的管理難度會突破線性變化而出現一個突變。這就是分散式服務管理領域的量變到質變的過程。因此,也出現了一個新的方式——服務治理。
技術發展到目前,治理的範圍已經不單單局限在服務的管理和監控,其範疇也擴展到了更大的範圍,包括:服務的註冊與發現;服務的生命周期管理;監控與報警;服務編排;柔性機制;容量管理等。
篇幅所限,朱望仔無法在此一一解釋,在後面的系列中再給大家做深入的講解。這裡,朱望仔再給大家介紹下新網銀行治理服務的其中一個原則,稱為SET模型。
大家都知道物流領域的集裝箱,有一種說法叫集裝箱改變世界。因為集裝箱通過標準化、模塊化使得物流可以規模化。不管什麼形狀的貨物,統一封裝入標準統一大小的集裝箱,而貨運方只需要考慮集裝箱的裝卸,這使得物流可以規模化的作業運轉,提高了貨物運輸效率,降低了成本。
分散式服務治理領域的SET模型正是借鑒了這種理念。大家回憶前面我們說的,分散式的伸縮有兩個方向,不管是垂直方向的功能擴展還是水平方向的資源擴展,其實管理的都是單個的服務。
如果把一個一個的服務類比成要運送的貨物,把對服務的治理當做物流的過程,那麼這種情況無異於面向貨物本身的運輸。貨物形狀各異、輕重各異、價值各異而服務功能各異、承載的請求量各異、優先等級各異。
仿照集裝箱的理念,把不同的服務根據業務特徵、用戶模型建立起一組資源模型,這一組服務就是一個SET,有了SET後,分散式化的服務擴展不在是基於單個的服務,而是一個SET,這樣便使得分散式服務的管理變得工程化、規模化。
在SET模型下,針對一個業務提供最小服務能力的服務集群,被稱為一個業務SET,SET內的服務集合是一個基於分散式框架的分散式服務集群。每個業務SET具備確定的單位服務能力指標,業務集群根據整體業務請求量及單位SET服務能力指標,計算得到需要部署多少SET單元。
長期上,根據請求量的動態變化,整個業務集群可以基於SET在水平上做動態的伸縮。另外,結合一定的路由策略,可以為業務提供基於SET的容災及柔性的能力。
好了,關於新網銀行的分散式系統今天朱望仔就跟大家介紹到這裡,更多的有關新網銀行信息系統的知識請期待後面的系列。
推薦閱讀: