.NET 微服務

_小碼甲發表於2021-02-07

前文傳送門:

  • 什麼是雲原生?
  • 現代雲原生設計理念

Microservices

微服務是構建現代應用程式的一種流行的體系結構樣式,雲原生系統擁抱微服務。

微服務是由一組(使用共享結構互動的、獨立的小塊服務)搭建的分散式集,具有以下特徵:

  • 在大型的領域上下文中,每個微服務實現特定的業務功能
  • 每個微服務都自主開發的,且可以獨立部署
  • 每個微服務都獨立封裝了自己的資料儲存技術(SQL,NoSQL)和程式設計平臺。
  • 每一個微服務都執行在獨立程式,並使用標準的通訊協議(例如HTTP/HTTPS、WebSocket或AMQP)與其他程式進行通訊。
  • 它們一起組成一個應用程式。

下圖對比單體與微服務應用:

請注意,單體應用由分層架構組成,在單個程式中執行,通常使用關係型資料庫。
但是,微服務方法將功能分為包含邏輯和資料的獨立服務,每個微服務都託管自己的資料儲存。

微服務依然遵守"十二要素應用"中的One Codebase, One Application”原則。

每個微服務儲存在獨立程式碼倉庫,通過版本管理進行跟蹤,可以部署到多個環境。

Why microservices?

微服務提供了敏捷性。

上一段落,我們已經對比了單體和微服務,我們看到了一些明顯的好處:

  • 每個微服務都有自治的生命週期,可以獨立演進、多頻次部署。
    你不必等待發布視窗即可部署新功能或更新,你可以只更新複雜應用的一小部分割槽域,減少破壞整個系統的風險。

  • 每個微服務都可以獨立擴充套件。
    不需要以應用整體為單位擴充套件,而僅擴充套件那些需要更多處理能力或網路頻寬的微服務,這種細粒度的伸縮方法提供更好的控制力和成本優勢。

學習微服務的最佳指南是《.NET Microservices: Architecture for Containerized .NET Applications》,這本書深入探討了微服務設計和架構,它是微服務實踐https://github.com/dotnet-architecture/eShopOnContainers的閱讀搭檔。

Developing microservices

可以使用任何現代開發平臺來建立微服務。

微軟.NET平臺是一個絕佳的選擇,免費、開源,內建許多功能以簡化微服務開發。 .NET是跨平臺的,可以在Windows、macOS和大多數Linux上構建和執行應用程式。

.NET的效能很高,在TechEmpower組織的效能基準測試中,.NET相當優秀。

.NET由Microsoft和.NET社群在GitHub上維護。

相關文章