世界上大多數(shù)的應(yīng)用程序,可能有90%,都是由單體結(jié)構(gòu)(monolithic)完美地提供服務(wù)的。
Randy Shoup在Summit 2018年峰會(huì)上宣布,為了避免過(guò)度設(shè)計(jì),我們應(yīng)該從一個(gè)簡(jiǎn)單的架構(gòu)開(kāi)始,并根據(jù)需要進(jìn)行演進(jìn)。在他最近發(fā)表的演講中,他描述了自己與在一些公司的項(xiàng)目經(jīng)歷,這些公司起初規(guī)模很小,后來(lái)發(fā)展成為大型全球性互聯(lián)網(wǎng)公司,它們的架構(gòu)在那段時(shí)間是如何演變的,以及他從IT的角度對(duì)新公司或新產(chǎn)品的建議。
Shoup曾在eBay、谷歌和Stitch Fix工作過(guò),目前是WeWork技術(shù)副總裁。他的第一個(gè)例子是eBay,它于1995年作為一個(gè)為期三天的周末項(xiàng)目啟動(dòng),目的不是驗(yàn)證商業(yè)概念(PoC),而是為了看看是否有可能在網(wǎng)上做一些有趣的事情。今天,它已經(jīng)是第五次完全重寫(xiě)基礎(chǔ)架構(gòu),Shoup將該公司描述為一個(gè)多語(yǔ)言的微服務(wù)集合,并補(bǔ)充說(shuō)Twitter和亞馬遜都經(jīng)歷了類似的演變。
從某種形式的單體結(jié)構(gòu)(Monolith)開(kāi)始,以一組微服務(wù)結(jié)束,這對(duì)于Shoup來(lái)說(shuō)是大公司的一種常見(jiàn)模式,并注意到這一模式中有兩個(gè)部分:
Shoup所提到的公司都非常龐大,在他們的規(guī)模下工作的架構(gòu)對(duì)大多數(shù)公司來(lái)說(shuō)是完全不合適的。大多數(shù)應(yīng)用程序都是由單體結(jié)構(gòu)提供服務(wù)的,Shoup在構(gòu)建新應(yīng)用程序或系統(tǒng)時(shí)的建議是,從簡(jiǎn)單的開(kāi)始,并根據(jù)需要改進(jìn)整個(gè)系統(tǒng)的體系結(jié)構(gòu)。
對(duì)于大多數(shù)公司和產(chǎn)品來(lái)說(shuō),一個(gè)常見(jiàn)的進(jìn)展曲線包括:
根本不應(yīng)該有任何花哨的架構(gòu)——這個(gè)時(shí)點(diǎn)最關(guān)鍵的是原型。為了避免過(guò)度設(shè)計(jì),我們應(yīng)該不斷地問(wèn)自己:“最想要解決的是什么問(wèn)題?”這一階段的目標(biāo)是盡可能快地探索解決方案,并以最小的成本來(lái)實(shí)現(xiàn):
在這一階段,如果可能的話,不需要引入任何不必要的技術(shù),例如使用谷歌廣告來(lái)查看是否有人點(diǎn)擊它,直接使用紙和筆或Excel電子表格就能解決大部分問(wèn)題。
在構(gòu)思及開(kāi)始階段時(shí),目標(biāo)是滿足客戶的短期需求,并盡可能地降低成本。通常這個(gè)階段可以由一個(gè)4-6人組成的小團(tuán)隊(duì)來(lái)進(jìn)行快速迭代,項(xiàng)目時(shí)間一般很短,大概3-4個(gè)月,快速的探索解決方案。此時(shí),通常很難預(yù)見(jiàn)將來(lái)要構(gòu)建什么特性,因此只需要很少的架構(gòu),就足以讓我們快速前進(jìn)。在這階段考慮的不是伸縮性的,而是應(yīng)該使用簡(jiǎn)單和熟悉的技術(shù),并且絕對(duì)是單體架構(gòu)——比如,一個(gè)應(yīng)用程序和一個(gè)數(shù)據(jù)庫(kù)。而且基礎(chǔ)設(shè)施建議使用開(kāi)發(fā)代價(jià)最小的,不要自己去構(gòu)建;相反,可以使用平臺(tái)即服務(wù)(PaaS)或類似的技術(shù)服務(wù)。
在這一點(diǎn)上使用單體架構(gòu)的優(yōu)勢(shì)包括:
除了缺乏可伸縮性和單點(diǎn)故障外,單體架構(gòu)的一個(gè)主要缺點(diǎn)是在模塊化方面不給力。但是在這個(gè)階段,這些都不是關(guān)注的重點(diǎn)。盡管如此,有意識(shí)地在單體架構(gòu)中使用組件或模塊來(lái)遵守模塊化原則,為了后續(xù)的擴(kuò)展提前做準(zhǔn)備是值得的,這將簡(jiǎn)化未來(lái)的服務(wù)拆分與系統(tǒng)重構(gòu)。
什么時(shí)候需要重建這個(gè)龐然大物,以下是一些可供參考的征兆:
當(dāng)我們進(jìn)入擴(kuò)展階段時(shí),目標(biāo)是領(lǐng)先于快速增長(zhǎng)的業(yè)務(wù),并保持應(yīng)用程序正常運(yùn)行。在組織環(huán)境中,這階段通常會(huì)增加團(tuán)隊(duì)人員的數(shù)量,并在更長(zhǎng)的時(shí)間范圍內(nèi)工作,通常還需要引入可重復(fù)的標(biāo)準(zhǔn)化流程(例如,開(kāi)發(fā)流程、發(fā)布流程)。
在技術(shù)方面,擴(kuò)展階段通常意味著向可擴(kuò)展的技術(shù)遷移。現(xiàn)在可以從整體上拆分單體服務(wù),嘗試減少單個(gè)數(shù)據(jù)庫(kù)上的負(fù)載,例如創(chuàng)建一些數(shù)據(jù)的只讀副本實(shí)現(xiàn)讀寫(xiě)分離。按業(yè)務(wù)拆分服務(wù)(例如,支付和計(jì)費(fèi)服務(wù)),并引入中間件、消息服務(wù)等。
這個(gè)階段通常也是考慮是否應(yīng)該將單體服務(wù)遷移到微服務(wù)的時(shí)候。此外還必須考慮存儲(chǔ),使用單點(diǎn)主存儲(chǔ)是否仍然是存儲(chǔ)數(shù)據(jù)的正確方法。在QCon紐約2017大會(huì)上,Shoup展示了如何將單體應(yīng)用程序增量遷移到不同領(lǐng)域的微服務(wù)和多個(gè)獨(dú)立存儲(chǔ)機(jī)制。
在《可伸縮性的藝術(shù)》一書(shū)中,描述了一個(gè)三維可伸縮性模型(AKF Scale Cube),其中三個(gè)軸表示不同類型的可伸縮性:
如果達(dá)到這個(gè)階段就是成功的標(biāo)志。我們的目標(biāo)是維持功能穩(wěn)定,并且使用更少的資源以及更少的團(tuán)隊(duì)。這個(gè)階段可能會(huì)有更長(zhǎng)的時(shí)間跨度,比如2-5年。
重新構(gòu)建一個(gè)系統(tǒng)是成功的標(biāo)志,而不是失敗的標(biāo)志。重構(gòu)是由于業(yè)務(wù)發(fā)展的好,業(yè)務(wù)體量的增長(zhǎng)對(duì)現(xiàn)有技術(shù)有了新的要求,而絕不是為了重構(gòu)而重構(gòu)。
今天就先講到這里。
如果看了這篇文章之后有所收獲,歡迎收藏轉(zhuǎn)發(fā)。
如果你有自己的見(jiàn)解,也歡迎在下方評(píng)論。
總之,你可以關(guān)注一下我,我會(huì)有許多干貨分享。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱:java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建-創(chuàng)新互聯(lián)
分享鏈接:http://jinyejixie.com/article44/cshhhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、建站公司、商城網(wǎng)站、微信小程序、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容