真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建-創(chuàng)新互聯(lián)

java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建

創(chuàng)新互聯(lián)建站長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為烏恰企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,烏恰網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

世界上大多數(shù)的應(yīng)用程序,可能有90%,都是由單體結(jié)構(gòu)(monolithic)完美地提供服務(wù)的。

Randy Shoup在Summit 2018年峰會上宣布,為了避免過度設(shè)計,我們應(yīng)該從一個簡單的架構(gòu)開始,并根據(jù)需要進行演進。在他最近發(fā)表的演講中,他描述了自己與在一些公司的項目經(jīng)歷,這些公司起初規(guī)模很小,后來發(fā)展成為大型全球性互聯(lián)網(wǎng)公司,它們的架構(gòu)在那段時間是如何演變的,以及他從IT的角度對新公司或新產(chǎn)品的建議。

Shoup曾在eBay、谷歌和Stitch Fix工作過,目前是WeWork技術(shù)副總裁。他的第一個例子是eBay,它于1995年作為一個為期三天的周末項目啟動,目的不是驗證商業(yè)概念(PoC),而是為了看看是否有可能在網(wǎng)上做一些有趣的事情。今天,它已經(jīng)是第五次完全重寫基礎(chǔ)架構(gòu),Shoup將該公司描述為一個多語言的微服務(wù)集合,并補充說Twitter和亞馬遜都經(jīng)歷了類似的演變。

從某種形式的單體結(jié)構(gòu)(Monolith)開始,以一組微服務(wù)結(jié)束,這對于Shoup來說是大公司的一種常見模式,并注意到這一模式中有兩個部分:

  1. 沒有人從微服務(wù)開始
  2. 超過一定的規(guī)模,每個系統(tǒng)都以微服務(wù)結(jié)束

Shoup所提到的公司都非常龐大,在他們的規(guī)模下工作的架構(gòu)對大多數(shù)公司來說是完全不合適的。大多數(shù)應(yīng)用程序都是由單體結(jié)構(gòu)提供服務(wù)的,Shoup在構(gòu)建新應(yīng)用程序或系統(tǒng)時的建議是,從簡單的開始,并根據(jù)需要改進整個系統(tǒng)的體系結(jié)構(gòu)。

對于大多數(shù)公司和產(chǎn)品來說,一個常見的進展曲線包括:

  1. 構(gòu)思和開始階段
  2. 分布式系統(tǒng)可能相關(guān)的擴展階段
  3. 通常的優(yōu)化階段

java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建

構(gòu)思及開始階段

根本不應(yīng)該有任何花哨的架構(gòu)——這個時點最關(guān)鍵的是原型。為了避免過度設(shè)計,我們應(yīng)該不斷地問自己:“最想要解決的是什么問題?”這一階段的目標是盡可能快地探索解決方案,并以最小的成本來實現(xiàn):

  • 找到一種商業(yè)模式
  • 找到適合的產(chǎn)品市場
  • 獲得第一批客戶

在這一階段,如果可能的話,不需要引入任何不必要的技術(shù),例如使用谷歌廣告來查看是否有人點擊它,直接使用紙和筆或Excel電子表格就能解決大部分問題。

在構(gòu)思及開始階段時,目標是滿足客戶的短期需求,并盡可能地降低成本。通常這個階段可以由一個4-6人組成的小團隊來進行快速迭代,項目時間一般很短,大概3-4個月,快速的探索解決方案。此時,通常很難預(yù)見將來要構(gòu)建什么特性,因此只需要很少的架構(gòu),就足以讓我們快速前進。在這階段考慮的不是伸縮性的,而是應(yīng)該使用簡單和熟悉的技術(shù),并且絕對是單體架構(gòu)——比如,一個應(yīng)用程序和一個數(shù)據(jù)庫。而且基礎(chǔ)設(shè)施建議使用開發(fā)代價最小的,不要自己去構(gòu)建;相反,可以使用平臺即服務(wù)(PaaS)或類似的技術(shù)服務(wù)。

在這一點上使用單體架構(gòu)的優(yōu)勢包括:

  • 簡單快速,
  • 只有進程內(nèi)延遲(注:沒有服務(wù)間網(wǎng)絡(luò)調(diào)用開銷)
  • 簡單的構(gòu)建部署單元
  • 小規(guī)模上非常節(jié)約資源

除了缺乏可伸縮性和單點故障外,單體架構(gòu)的一個主要缺點是在模塊化方面不給力。但是在這個階段,這些都不是關(guān)注的重點。盡管如此,有意識地在單體架構(gòu)中使用組件或模塊來遵守模塊化原則,為了后續(xù)的擴展提前做準備是值得的,這將簡化未來的服務(wù)拆分與系統(tǒng)重構(gòu)。

什么時候需要重建這個龐然大物,以下是一些可供參考的征兆:

  • 交付速率:由于耦合和缺乏隔離,交付能力持續(xù)降低
  • 可擴展性:垂直擴展將不再起作用,或者系統(tǒng)的不同部分需要獨立擴展
  • 部署:不同的模塊以不同的速度在發(fā)展,因此需要獨立的部署

擴展階段

當我們進入擴展階段時,目標是領(lǐng)先于快速增長的業(yè)務(wù),并保持應(yīng)用程序正常運行。在組織環(huán)境中,這階段通常會增加團隊人員的數(shù)量,并在更長的時間范圍內(nèi)工作,通常還需要引入可重復(fù)的標準化流程(例如,開發(fā)流程、發(fā)布流程)。

在技術(shù)方面,擴展階段通常意味著向可擴展的技術(shù)遷移。現(xiàn)在可以從整體上拆分單體服務(wù),嘗試減少單個數(shù)據(jù)庫上的負載,例如創(chuàng)建一些數(shù)據(jù)的只讀副本實現(xiàn)讀寫分離。按業(yè)務(wù)拆分服務(wù)(例如,支付和計費服務(wù)),并引入中間件、消息服務(wù)等。

這個階段通常也是考慮是否應(yīng)該將單體服務(wù)遷移到微服務(wù)的時候。此外還必須考慮存儲,使用單點主存儲是否仍然是存儲數(shù)據(jù)的正確方法。在QCon紐約2017大會上,Shoup展示了如何將單體應(yīng)用程序增量遷移到不同領(lǐng)域的微服務(wù)和多個獨立存儲機制。

在《可伸縮性的藝術(shù)》一書中,描述了一個三維可伸縮性模型(AKF Scale Cube),其中三個軸表示不同類型的可伸縮性:

  • X:水平復(fù)制和克隆
  • Y:功能分解和細分(微服務(wù))
  • Z:水平數(shù)據(jù)分區(qū)(分片)

優(yōu)化階段

如果達到這個階段就是成功的標志。我們的目標是維持功能穩(wěn)定,并且使用更少的資源以及更少的團隊。這個階段可能會有更長的時間跨度,比如2-5年。

總結(jié)

重新構(gòu)建一個系統(tǒng)是成功的標志,而不是失敗的標志。重構(gòu)是由于業(yè)務(wù)發(fā)展的好,業(yè)務(wù)體量的增長對現(xiàn)有技術(shù)有了新的要求,而絕不是為了重構(gòu)而重構(gòu)。

今天就先講到這里。

一點后話

如果看了這篇文章之后有所收獲,歡迎收藏轉(zhuǎn)發(fā)。

如果你有自己的見解,也歡迎在下方評論。

總之,你可以關(guān)注一下我,我會有許多干貨分享。

java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


名稱欄目:java程序員須知增量架構(gòu)方法與系統(tǒng)構(gòu)建-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/cshhhe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部