DDD(領域驅動設計)是微服務體系結構的核心和最重要的基礎 - Prabhat

banq發表於2020-06-28

DDD(域驅動設計)是微服務體系結構的核心和最重要的基礎。不瞭解DDD就無法掌握微服務架構真正的美麗之處。

微服務架構顧名思義是一種將後端應用構建為一組小型服務的方法。每個服務都在自己的程式中執行,並使用HTTP / HTTPS,WebSocket或AMQP等協議與其他程式進行通訊。每個微服務在特定的上下文邊界內實現特定的端到端域或業務功能,並且每個微服務必須自主開發並且可以獨立部署。

每個微服務都應擁有其相關的域資料模型和域邏輯(主權和分散資料管理)。

DDD(領域驅動設計)是微服務體系結構的核心和最重要的基礎  - Prabhat

微服務架構的服務應為多大?

在開發微服務時,大小不應成為重點。相反,重要的一點應該是建立鬆散耦合的服務。以下是鬆散耦合服務的好處(針對每種服務):

  • 開發自主權
  • 部署方式
  • 可擴充套件性

在識別和設計微服務時,請嘗試使其儘可能小,只要不需要與其他微服務有太多直接依賴關係即可。比微服務的大小更重要的是它必須具有的內部凝聚力以及與其他服務的獨立性。

為什麼使用微服務架構?

微服務架構優點是:“我提供長期的敏捷性。” 微服務使您可以基於許多可獨立部署的服務來建立應用程式,從而在複雜,大型和高度可擴充套件的系統中實現更好的可維護性,每個服務均具有細化和自主的生命週期。

另外一個好處是,微服務可以獨立擴充套件。您必須以一個單元為單位進行擴充套件,而不是擁有單個整體應用程式。例如藉助Docker和Kubernetes輕鬆擴充套件。

以下是重要的好處:

  • 您可以僅擴充套件需要更多處理能力或網路頻寬來滿足需求的功能區域,而不必擴充套件應用程式中不需要擴充套件的其他區域。
  • 微服務方法允許對每個服務進行敏捷更改和快速迭代,因為您可以更改複雜,大型和可伸縮應用程式的特定,較小區域。
  • 架構基於微服務的細粒度應用程式可以實現持續整合和持續交付實踐。它還加快了嚮應用程式中交付新功能的速度。
  • 應用程式的細粒度組合還使您能夠獨立執行和測試微服務,並在保持它們之間明確的合同的同時自主地發展它們。
  • 只要不更改介面或協定,就可以更改任何微服務的內部實現或新增新功能,而不會破壞其他微服務。

微服務架構如何在生產中提供幫助?

以下是使基於微服務的系統成功投入生產的重要方面:

  • 監視和健康檢查服務和基礎結構。
  • 服務的可擴充套件基礎架構(即雲和協調器)。
  • 多個級別的安全設計和實現:身份驗證,授權,機密管理,安全通訊等。
  • 快速交付應用程式,通常由不同的團隊專注於不同的微服務。
  • DevOps和CI / CD實踐和基礎架構。

結論

DDD是微服務架構的一個非常重要的概念。事件源,CQRS,API閘道器等是微服務架構師的重要組成部分。如今,DockerKubernetesLinux等是可伸縮性的重要組成部分。

在最重要的供應商的支援下,Docker正在成為容器行業的事實上的標準。此外,微服務架構正在成為分散式關鍵任務應用程式的重要方法。

在基於微服務的體系結構中,應用程式建立在可以獨立開發,測試,部署和版本控制的服務集合上。

 

相關文章