前文傳送門:
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上維護。
Ref
- https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
- ?後臺回覆 cloud-native,獲取微軟出品《Architecting Cloud Native .NET Apps》PDF
- ?後臺回覆 microservices,獲取微軟出品《.NET Microservices: Architecture for Containerized .NET Applications》PDF