微服務(wù)和數(shù)據(jù)層
一種看待微服務(wù)的方式是每個(gè)微服務(wù)都是一個(gè)隱式的三層獨(dú)立系統(tǒng)。不過(guò)我們通常不為每一個(gè)微服務(wù)都實(shí)現(xiàn)所有的層。了解之后,我們便能發(fā)現(xiàn)每個(gè)微服務(wù)都可以實(shí)現(xiàn)自己的數(shù)據(jù)層。這樣的優(yōu)勢(shì)在于增加了各服務(wù)之間的隔離。
【以我的經(jīng)驗(yàn)看,把企業(yè)的所有數(shù)據(jù)都放在一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)或至少
相同的數(shù)據(jù)庫(kù)類型里更加普遍。這種做法更常見,但不見得更好。
種方式各有利弊。若是系統(tǒng)之間的隔離很明顯,部署變更就會(huì)更簡(jiǎn)單。反之,把所有數(shù)據(jù)都存在同一個(gè)數(shù)據(jù)庫(kù)會(huì)讓數(shù)據(jù)模型更為簡(jiǎn)單。
DevOpS、架構(gòu)和彈性
我們已經(jīng)從DevOps的角度看到微服務(wù)架構(gòu)有許多值得擁有的特質(zhì)。DevOps的一個(gè)重要目標(biāo)是更快地為用戶交付新特性。這是微服務(wù)提供的大量模塊化所帶來(lái)的結(jié)果。
那些擔(dān)心微服務(wù)會(huì)提供一個(gè)毫無(wú)瑕疵的完美解決方案從而讓生活變得沒意思的人可以解脫了。微服務(wù)有它自己的挑戰(zhàn)。
我們想要能夠盡快部署新代碼,但是我們也想要可靠的軟件。
微服務(wù)在系統(tǒng)間有更多的集成點(diǎn),比起單塊系統(tǒng)來(lái)說(shuō)更有可能失敗。