使用Dapr和.NET 6.0進行微服務實戰系列

大家好,我是張飛洪,感謝您的閱讀,我會不定期和你分享學習心得,希望我的文章能成爲你成長路上的墊腳石,讓我們一起精進。

本文是《使用Dapr和.NET 6.0進行微服務實戰》的第1篇引言部分,本文大致介紹了Dapr產生的背景,系列目標,思路以及可能涵蓋的主題範圍(注意,主題不會固定這些章節,會根據自己的實踐和學習動態伸縮),以及一些其他事項。閒話不說,我們開始系列旅程吧。

1.前言

1.1背景

截至目前,Dapr已更新到v1.9.5版本了,github上的Star也達到了20.2k。其實在v1.0.0的時候,Dapr就可以用於生產環境了,現在已經變得越來越成熟了,國內的阿里算是它的忠實的貢獻者和使用者。作爲分佈式和微服務的實踐者,當我們瞭解了它的目標和能力之後,我們沒有理由不去學習和擁抱它,不僅僅是因爲它代表了下一代微服務的趨勢,更因爲它能實實在在地幫助我們擺脫微服務的底層基礎設施的束縛,讓我們更加專注業務的開發。
本系列內容想通過Dapr和.NET 6.0來實踐我們的微服務,我會結合Dapr裏的九大Building Block以及示例來分析和講解。希望能讓你對Dapr有個更加深入的瞭解。

在過去的十多年中,從單體應用到更精細的微服務,現代軟件架構發生了巨大的轉變。Dapr通過提供構建塊作爲API,幫助開發人員構建雲原生應用。它爲公有云、本地甚至邊緣設備上運行應用提供了平臺無關、語言無關的能力。

1.2目標

本系列內容旨在讓您熟悉微服務架構,同時瞭解Dapr的本質。我們將探討Dapr是如何爲我們提供一個可移植的、事件驅動的、語言無關的運行時。同時,我們還會探討跨雲和邊緣的能力以及如何做到構建微服務所需的基本功能,例如服務調用、狀態管理以及發佈和訂閱。

1.3思路

本專欄會通過創建一個基於Dapr的示例貫穿整個系列,並將其部署到Kubernetes。在整個案例中,您將學習如何使用Zipkin、Prometheus和Grafana監視Dapr應用。同時瞭解如何在Kubernetes中對Dapr應用進行負載測試,如何使用serverless容器服務來部署Dapr。

2.文章讀者對象

本專欄面向希望探索微服務架構,並使用.NET6.0開發基於Dapr應用程序的開發人員。無論您是微服務的新手,還是對這種架構方法有所瞭解,並希望獲得使用Dapr的實際經驗,你應該都會有所收穫。

3.專欄涵蓋內容

第一部分:Dapr介紹

第1章,Dapr簡介,將向您介紹Dapr的基礎知識,簡要介紹Dapr的特性以及對雲原生應用及微服務的好處。

第2章,調試Dapr解決方案,將重點介紹如何在VS Code中設置Dapr開發環境,以及如何在本地調試Dapr。

第3章,微服務架構與Dapr,將討論微服務架構的相關性,並開始探討Dapr作爲運行時如何更容易採用這種風格。

第二部分:Dapr的部署和擴容

第4章,本章主要介紹“服務調用”,指導我們如何通過Dapr的基礎架構進行服務發現和調用。通過示例,您將瞭解如何從其他Dapr組件或外部客戶端調用它們。

第5章,介紹狀態管理,介紹Dapr如何管理不同存儲類型的狀態。管理服務和單線程模型(actors)的狀態是Dapr的核心。

第6章,“發佈和訂閱”將向您介紹發佈和訂閱,這是Dapr用來實現組件之間解耦交互的消息傳遞模式。輸入綁定使您能夠使用傳入的Twilio SMS或Azure Service Bus消息觸發微服務。

第7章,“資源綁定”將詳細介紹Dapr如何基於輸入綁定使您能夠設計事件驅動的微服務,並通過可插拔配置調用外部資源。

第8章,單線程模型(actors)介紹,將幫助您瞭解Dapr提供的強大的單線程模型,以及如何在微服務架構中使用它,以及不同方法的利弊。

第三部分:基於Dapr構建微服務

第9章,介紹部署到Kubernetes當中,並區分本地獨立模式和Kubernete模式在操作方面的基本區別。特別是使用Azure Kubernetes服務,我們將向Kubernete部署一個由多個微服務組成的Dapr示例程序。

第10章,公開Dapr應用程序,探討我們如何向用戶公開Dapr應用程序。特別是使用Azure Kubernetes服務,我們將通過NGINX和Azure API管理在Kubernete上的Dapr示例程序。

第11章,跟蹤Dapr應用程序,將通過探索如何使用Zipkin、Prometheus和Grafana在Dapr中發送和收集跟蹤、日誌和度量,以及概述Dapr中的可觀測性。

第12章,負載測試和Dapr服務的伸縮,將詳細說明Kubernetes中Dapr服務和參與者的伸縮是如何工作的,讀者還將瞭解如何通過Locust測試工具模擬用戶行爲來負載測試Dapr。

第13章,利用Dapr的無服務容器,指導我們如何藉助Azure等商業雲服務,並介紹如何將Dapr應用部署到Azure容器。

4.其他注意

雖然專欄的示例是在Windows 10上編寫的,但所使用的技術堆棧是支持跨平臺的:VS Code、.NET 6、Dapr、Kubernetes和Locust都爲多平臺提供了工具和類庫。
在Windows 10上,建議安裝WSL 2,並在Docker中啓用WSL 2引擎。
有關如何設置環境的詳細說明,請參閱第1章Dapr簡介的“設置Dapr”部分。
本書中的示例和腳本已經用Dapr 1.9版和.NET6進行了測試。

如果能提供訪問Azure服務更好,因爲文中示例是跑在它們上面,當然國內讀者可以利用阿里雲或者華爲雲也是可以的。閱讀完本專欄後,你也可以通過瀏覽Dapr官方文檔繼續學習,您也可以關注社區,它是一個學習、提問和與他人分享Dapr經驗的機會。

5.溝通和反饋

一般反饋:如果您對本專欄的任何方面有疑問,請添加我的微信或者加入QQ共享羣進行提問。
勘誤表:儘管自己盡一切努力確保內容的準確性,但個別錯誤難免會發生。如果您在專欄中發現錯誤,也可以通過郵箱或者微信給我留言。您的評論對我提供優質的內容十分重要,再次感謝。

如果您想提前閱讀Dapr系列文章,請移步,這裏會優先發布我的最新成果,歡迎您不吝賜教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章