精品主題,實(shí)戰(zhàn)科普,最新行業(yè)熱點(diǎn)話題,隨時(shí)掌握云上咨訊。
一年一度的 DDD Exchange 大會(huì)今年在倫敦如期舉行,David Dawson 為聽眾帶來了一場精彩的演講。他在演講中表示:要真正體現(xiàn)出微服務(wù)的強(qiáng)大能力,必須結(jié)合使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)。在5-10 年前,DDD 曾經(jīng)幫助我們解決了在軟件設(shè)計(jì)中所犯下的諸多錯(cuò)誤,而在微服務(wù)這一背景下,同樣的錯(cuò)誤又開始冒頭了。
Dawson 是 Simplicity itself 公司的 CEO,他首先從哲學(xué)的角度對架構(gòu)進(jìn)行了重新定義:這是你處理某個(gè)問題,或?qū)ζ溥M(jìn)行推理的方式,也是你用于解決某個(gè)問題的指導(dǎo)原則。但它本身并不是一種解決方案,而是一種設(shè)計(jì)。你所做的并非形成某種架構(gòu),而是根據(jù)這些指導(dǎo)原則逐步形成某種設(shè)計(jì)。有許多組織雖然已經(jīng)從技術(shù)角度實(shí)現(xiàn)了微服務(wù),但并未從中受益。在 Dawson 看來,這是因?yàn)檫@些組織遵從了不正確的指導(dǎo)原則。
Dawson 曾經(jīng)就微服務(wù)究竟是什么這一話題與許多人進(jìn)行過交流,他發(fā)現(xiàn)每個(gè)人的觀點(diǎn)都有所不同,但有一點(diǎn)是一致的:即通過某種網(wǎng)絡(luò)邊界實(shí)現(xiàn)隔離性。在他看來,這種隔離性是微服務(wù)價(jià)值的根本,也是痛苦的源頭。你需要在這方面做出大量的權(quán)衡,才能夠獲得豐厚的回報(bào),但其代價(jià)也同樣不菲。
Dawson 相信,為了創(chuàng)建優(yōu)秀的微服務(wù),我們真正所需關(guān)注的內(nèi)容與 DDD 中的概念是相吻合的,例如聚合根、網(wǎng)關(guān)、視圖和事件。他認(rèn)為事件改變了我們設(shè)計(jì)軟件的方式,并將事件稱為真正的統(tǒng)一語言。在與用戶進(jìn)行交流時(shí),他們總是說有什么事發(fā)生了,這就是事件。如果從事件的角度進(jìn)行設(shè)計(jì),那么微服務(wù)中所存在的大量問題將煙消云散。對于他來說,整個(gè)系統(tǒng)中唯一有意義的事實(shí)就是一個(gè)事件流,而靜止的數(shù)據(jù),例如數(shù)據(jù)庫中的數(shù)據(jù)是無用的。只有當(dāng)這種數(shù)據(jù)活動(dòng)起來時(shí),你才能夠從中獲得價(jià)值。當(dāng)你發(fā)起一次請求或查詢、發(fā)送一個(gè)命令,或是對數(shù)據(jù)進(jìn)行某種改變時(shí),這些數(shù)據(jù)就開始活動(dòng)起來了。
Dawson 認(rèn)為,如今在開發(fā)微服務(wù)時(shí),人們對于 HTTP 和 REST 的使用近乎癡迷,但這種技術(shù)是有局限性的。它只是一種集成風(fēng)格,但只提供了請求與響應(yīng)的功能,卻不支持事件廣播與流。而通過消息傳遞,你就能夠得到對廣播與流的支持,甚至更多的功能。他還相信,通過事件溯源所設(shè)計(jì)的微服務(wù)從根本上對你解決某個(gè)問題的方式產(chǎn)生了改變。
明年的 DDD Exchange大會(huì)預(yù)計(jì)于 2016 年 6 月 10 日舉辦,現(xiàn)在已開放注冊。