DDD(領域驅動設計)是微服務體系結構的核心和最重要的基礎 - Prabhat
DDD(域驅動設計)是微服務體系結構的核心和最重要的基礎。不瞭解DDD就無法掌握微服務架構真正的美麗之處。
微服務架構顧名思義是一種將後端應用構建為一組小型服務的方法。每個服務都在自己的程式中執行,並使用HTTP / HTTPS,WebSocket或AMQP等協議與其他程式進行通訊。每個微服務在特定的上下文邊界內實現特定的端到端域或業務功能,並且每個微服務必須自主開發並且可以獨立部署。
每個微服務都應擁有其相關的域資料模型和域邏輯(主權和分散資料管理)。
微服務架構的服務應為多大?
在開發微服務時,大小不應成為重點。相反,重要的一點應該是建立鬆散耦合的服務。以下是鬆散耦合服務的好處(針對每種服務):
- 開發自主權
- 部署方式
- 可擴充套件性
在識別和設計微服務時,請嘗試使其儘可能小,只要不需要與其他微服務有太多直接依賴關係即可。比微服務的大小更重要的是它必須具有的內部凝聚力以及與其他服務的獨立性。
為什麼使用微服務架構?
微服務架構優點是:“我提供長期的敏捷性。” 微服務使您可以基於許多可獨立部署的服務來建立應用程式,從而在複雜,大型和高度可擴充套件的系統中實現更好的可維護性,每個服務均具有細化和自主的生命週期。
另外一個好處是,微服務可以獨立擴充套件。您必須以一個單元為單位進行擴充套件,而不是擁有單個整體應用程式。例如藉助Docker和Kubernetes輕鬆擴充套件。
以下是重要的好處:
- 您可以僅擴充套件需要更多處理能力或網路頻寬來滿足需求的功能區域,而不必擴充套件應用程式中不需要擴充套件的其他區域。
- 微服務方法允許對每個微服務進行敏捷更改和快速迭代,因為您可以更改複雜,大型和可伸縮應用程式的特定,較小區域。
- 架構基於微服務的細粒度應用程式可以實現持續整合和持續交付實踐。它還加快了嚮應用程式中交付新功能的速度。
- 應用程式的細粒度組合還使您能夠獨立執行和測試微服務,並在保持它們之間明確的合同的同時自主地發展它們。
- 只要不更改介面或協定,就可以更改任何微服務的內部實現或新增新功能,而不會破壞其他微服務。
微服務架構如何在生產中提供幫助?
以下是使基於微服務的系統成功投入生產的重要方面:
- 監視和健康檢查服務和基礎結構。
- 服務的可擴充套件基礎架構(即雲和協調器)。
- 多個級別的安全設計和實現:身份驗證,授權,機密管理,安全通訊等。
- 快速交付應用程式,通常由不同的團隊專注於不同的微服務。
- DevOps和CI / CD實踐和基礎架構。
結論
DDD是微服務架構的一個非常重要的概念。事件源,CQRS,API閘道器等是微服務架構師的重要組成部分。如今,Docker,Kubernetes,Linux等是可伸縮性的重要組成部分。
在最重要的供應商的支援下,Docker正在成為容器行業的事實上的標準。此外,微服務架構正在成為分散式關鍵任務應用程式的重要方法。
在基於微服務的體系結構中,應用程式建立在可以獨立開發,測試,部署和版本控制的服務集合上。
相關文章
- 微服務架構設計基礎之領域驅動設計微服務架構
- 結合領域事件和微服務的實現領域驅動設計 - Alagarsamy事件微服務
- 領域驅動設計(DDD)中模型的重要性 - Jeronimo模型
- DDD領域驅動設計:領域事件事件
- 微服務領域驅動設計 - semaphoreci微服務
- 微服務與領域驅動設計,架構實踐總結微服務架構
- 淺談DDD(領域驅動設計)
- 淺談 DDD 領域驅動設計
- DDD-領域驅動設計示例
- 使用領域驅動設計DDD和CQRS實現身份驗證的微服務原始碼專案微服務原始碼
- 領域驅動設計DDD和CQRS架構模式落地實踐架構模式
- 領域驅動設計,中臺與微服務微服務
- DDD領域驅動設計總結和C#程式碼示例C#
- 什麼是DDD領域驅動設計的統一語言?
- 基於阿里開源的COLA架構和DDD領域驅動設計構建貨物運輸系統阿里架構
- 領域驅動設計 (DDD) 簡介 - jannikwempe
- 領域驅動設計(DDD)入門&概要
- 領域驅動設計DDD應用心得
- 領域驅動設計核心概念
- DDD領域驅動設計初探(7):Web層的搭建Web
- 戲說領域驅動設計(十三)——核心架構架構
- Java開發架構篇:領域驅動設計架構基於SpringCloud搭建微服務Java架構SpringGCCloud微服務
- 領域驅動設計(DDD)實踐之路(一)
- 領域驅動設計(DDD)高手養成記
- 行為驅動開發(BDD)如何與領域驅動設計(DDD)結合?
- 用 F#和EventStore實現DDD領域驅動設計
- 領域驅動設計之實戰許可權系統微服務微服務
- 分享我的:領域驅動設計(DDD)學習成果精簡總結
- dayatang/dddlib:DDD領域驅動設計庫
- 領域驅動設計(DDD:Domain-Driven Design)AI
- 領域模型驅動設計(DDD)之模型提煉模型
- 基於COLA架構建立運輸微服務應用和DDD領域建模架構微服務
- 微服務領域的軟體架構微服務架構
- .NET領域驅動設計—看DDD是如何運用設計模式顛覆傳統架構設計模式架構
- Java開發架構篇《初識領域驅動設計DDD落地》Java架構
- Java開發架構篇:初識領域驅動設計DDD落地Java架構
- DDD領域驅動設計架構模式:防腐層(Anti-corruption layer)架構模式
- SummerSoC 2020:基於領域驅動的服務設計(SOA/微服務) – Stefan Kapferer微服務