Stefan Tilkov:跳过单体应用,从微服务开始
在過去的幾個(gè)月中,許多人都宣稱微服務(wù)架構(gòu)應(yīng)該總是從單體應(yīng)用開始,其中包括Martin Fowler和Sam Newman,但Stefan Tilkov認(rèn)為,那經(jīng)常是錯(cuò)誤的,構(gòu)建一個(gè)模塊邊界清楚、結(jié)構(gòu)良好的單體應(yīng)用然后再遷移到微服務(wù)在大多數(shù)情況下都非常困難,幾乎不可能。
\\Tilkov是innoQ的聯(lián)合創(chuàng)始人兼首席顧問。雖然他贊同只有在理由充分的情況下才選擇分布式系統(tǒng)的觀點(diǎn),但在他看來,最重要的原因是它可以推動(dòng)大型系統(tǒng)的單個(gè)部分快速、獨(dú)立的交付。他認(rèn)為,微服務(wù)的主要優(yōu)點(diǎn)是在系統(tǒng)的不同部分之間創(chuàng)建了清晰嚴(yán)格的邊界,使連接不同部分增加耦合度的風(fēng)險(xiǎn)最小化。他指出,如果遵循嚴(yán)格的規(guī)則,那么在單體應(yīng)用中也可以做到這點(diǎn),但是根據(jù)他的經(jīng)驗(yàn),這種情況很少出現(xiàn)。
\\在Tilkov看來,單體應(yīng)用的基本思想是系統(tǒng)不同部分之間互連。從技術(shù)的角度來看,系統(tǒng)的所有部分使用同樣的平臺(tái)、抽象概念和庫(kù),并以同一個(gè)過程中的所有東西為基礎(chǔ)進(jìn)行通信。從業(yè)務(wù)的角度來看,所有的領(lǐng)域?qū)ο笤谙到y(tǒng)的任何部分都可以使用,不同部分使用同樣的持久化模型,事務(wù)總是可以覆蓋所有變化。在他看來,所有這些事實(shí)都增加了耦合度,他再次強(qiáng)調(diào),分解現(xiàn)有的單體應(yīng)用極其困難。
\\Tilkov認(rèn)為,當(dāng)系統(tǒng)足夠大時(shí),我們從開始就應(yīng)該考慮構(gòu)建單個(gè)的子系統(tǒng),并盡可能地提高它們的自治程度,而不是總是從單體設(shè)計(jì)開始。
\\作為由微服務(wù)組成的系統(tǒng)的一個(gè)例子,Tilkov提到了Otto.de。這是德國(guó)的一家電子商務(wù)網(wǎng)站。在去年的QCon倫敦大會(huì)上,他就此作過演講。
\\早些時(shí)候,Tilkov比較了不同類型系統(tǒng)的特點(diǎn),并新創(chuàng)了一個(gè)術(shù)語(yǔ)“自包含系統(tǒng)(Self-Contained System,縮寫SCS)”來描述明顯比微服務(wù)更大的自治服務(wù),但只是針對(duì)一個(gè)特定的領(lǐng)域。
\\查看英文原文:Stefan Tilkov: Skip the Monolith, Start with Microservices
總結(jié)
以上是生活随笔為你收集整理的Stefan Tilkov:跳过单体应用,从微服务开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux软件源
- 下一篇: The application coul