扩展立方体 The Scale Cube
轉(zhuǎn)自:
https://akfpartners.com/growth-blog/scale-cube/
比例立方體
2018年4月25日|?發(fā)布者:Robin McGlothin
Scale Cube是用于定義微服務(wù)和擴(kuò)展技術(shù)產(chǎn)品的模型。AKF Partners于2007年發(fā)明了Scale Cube,最初于2007年在我們的博客上在線發(fā)布(原創(chuàng)文章),隨后在我們的第一本書“?可伸縮性藝術(shù)”和第二本書“?可伸縮性規(guī)則”中發(fā)布。?
Scale Cube(有時稱為“AKF Scale Cube”或“AKF Cube”)由3個軸組成:?
? ? ?X軸:服務(wù)和數(shù)據(jù)的水平復(fù)制和克隆
? ? ?Y軸:功能分解和分段 - 微服務(wù)(或微服務(wù))
? ? ?Z軸:沿客戶邊界的服務(wù)和數(shù)據(jù)分區(qū) - 碎片/盒
這些軸及其含義如下圖1所示。
?????????????????????????????????????????????????????????圖1
在設(shè)計(jì)解決方案和改進(jìn)現(xiàn)有系統(tǒng)時,Scale Cube可幫助團(tuán)隊(duì)牢記系統(tǒng)規(guī)模的關(guān)鍵維度。?
下面的圖2顯示了如何在現(xiàn)代體系結(jié)構(gòu)中分解多維數(shù)據(jù)集(如有時稱為微服務(wù)體系結(jié)構(gòu)),克隆服務(wù)和數(shù)據(jù)源以及將類似客戶(如客戶)分割為“pods”。
????????????????????????????????????????????????????????圖2
使用Scale Cube的X軸縮放
擴(kuò)展解決方案最常用的方法是在負(fù)載均衡器后面運(yùn)行多個相同的應(yīng)用程序副本,也稱為X軸縮放。這是提高應(yīng)用程序容量和可用性的好方法。
使用X軸縮放時,每個服務(wù)器都運(yùn)行相同的服務(wù)副本(如果已分解)或整體。X軸的一個好處是它通常在智能上易于實(shí)現(xiàn),并且從事務(wù)角度來看它可以很好地?cái)U(kuò)展。實(shí)現(xiàn)X軸的障礙包括繁重的會話相關(guān)信息,這些信息通常難以分發(fā)或需要服務(wù)器持久性 - 這兩者都可能導(dǎo)致可用性和可伸縮性問題。X軸的比較缺點(diǎn)在于,雖然在理論上易于實(shí)現(xiàn),但是數(shù)據(jù)集必須全部復(fù)制,這增加了操作成本。此外,隨著數(shù)據(jù)大小隨交易量的增加,緩存在許多層面上都會降低。最后,X軸不會產(chǎn)生更高水平的組織規(guī)模。
圖3解釋了X軸可伸縮性的優(yōu)缺點(diǎn),并介紹了傳統(tǒng)的3層架構(gòu),以解釋它是如何實(shí)現(xiàn)的。
?????????????????????????????????????????????????????????????????圖3
使用Scale Cube的
Y軸縮放Y軸縮放(認(rèn)為面向服務(wù)的體系結(jié)構(gòu),微服務(wù)或整體的功能分解)側(cè)重于沿名詞或動詞邊界分離服務(wù)和數(shù)據(jù)。這些分裂彼此“不相似”。商業(yè)解決方案中的示例可以是從瀏覽中分離搜索,從添加到購物車結(jié)賬,從帳戶狀態(tài)登錄等。在實(shí)現(xiàn)拆分時,Y軸縮放將單片應(yīng)用程序拆分成一組服務(wù)。每個服務(wù)都實(shí)現(xiàn)了一組相關(guān)的功能,如訂單管理,客戶管理,庫存等。此外,每個服務(wù)都應(yīng)該有自己的非共享數(shù)據(jù),以確保高可用性和故障隔離。Y軸縮放與多維數(shù)據(jù)集的所有軸共享增加事務(wù)可伸縮性的好處。
此外,由于Y軸允許對團(tuán)隊(duì)進(jìn)行分段以及代碼和數(shù)據(jù)的所有權(quán),因此增加了組織可擴(kuò)展性。高速緩存命中率應(yīng)該隨著數(shù)據(jù)和服務(wù)被適當(dāng)?shù)胤侄味黾?#xff0c;并且類似大小的存儲空間可以被分配給由相對較少的事務(wù)訪問的較小數(shù)據(jù)集。通常可以降低運(yùn)營成本,因?yàn)橄到y(tǒng)可以縮小到商用服務(wù)器的規(guī)模,或者可以使用更小的IaaS實(shí)例。
圖4解釋了Y軸可擴(kuò)展性的優(yōu)缺點(diǎn),并顯示了一個故障隔離的服務(wù)示例,每個服務(wù)都有自己的數(shù)據(jù)存儲,用于故障隔離。
????????????????????????????????????????????????????????圖4
使用Scale Cube的Z軸縮放
盡管Y軸解決了不相似事物的分裂(通常沿著名詞或動詞邊界),但Z軸解決了“相似”事物的分割。示例可以包括沿著customer_id的無偏模量或沿著有些偏差(但對響應(yīng)時間有利)地理邊界分割客戶。產(chǎn)品目錄可以按SKU拆分,內(nèi)容可以按content_id拆分。與所有軸一樣,Z軸縮放可提高解決方案的事務(wù)可擴(kuò)展性,如果故障隔離,則可用性。由于部署到服務(wù)器的軟件在每個Z軸分片中基本相同(但數(shù)據(jù)不同),因此組織可伸縮性沒有增加。緩存命中率通常隨著較小的數(shù)據(jù)集而增加,并且運(yùn)營成本通常會下降,因?yàn)榭梢允褂蒙逃梅?wù)器或更小的IaaS實(shí)例。
圖5解釋了Z軸可擴(kuò)展性的優(yōu)缺點(diǎn),并顯示了一個故障隔離的pod結(jié)構(gòu),在美國有2個獨(dú)特的客戶端,在歐盟內(nèi)有2個。請注意,Z軸刻度的另一個好處是能夠?qū)⒍骨v細(xì)分為符合當(dāng)?shù)仉[私法,例如歐盟的GDPR。
????????????????????????????????????????????????????????圖5?
摘要
就像Goldilocks和三只熊一樣,分解的目標(biāo)不是擁有太小的服務(wù),或者服務(wù)太大,而是確保系統(tǒng)在規(guī)模,成本,可用性,時間等方面“恰到好處”。市場和響應(yīng)時間。
總結(jié)
以上是生活随笔為你收集整理的扩展立方体 The Scale Cube的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 掌控谈话~确保执行
- 下一篇: Spring Data JPA 从入门到