Dapr是一個可移植,事件驅動的運行時,它使開發人員簡單地去構建運行在云和edge上彈性、無狀態和有狀態的應用,并且包含多種語言和開發人員框架,
Any language, any framework, anywhere

今天,我們正在經歷一波云應用浪潮,開發人員熟悉web +資料庫應用程式架構(例如經典的3層設計),但不熟悉本質上是分布式的微服務應用程式架構,成為分布式系統專家很難,你也不應該這樣做,開發人員希望專注于業務邏輯,同時依靠平臺為他們的應用程式注入伸縮性、彈性、可維護性、彈性和其他本地云架構的屬性,
這就是Dapr的用武之地,Dapr將構建微服務應用程式的最佳實踐編入開放的、獨立的構建塊中,使您能夠使用自己選擇的語言和框架構建可移植的應用程式,每個構建塊都是完全獨立的,您可以在應用程式中使用其中的一個、一些或全部,
此外,Dapr與平臺無關,這意味著您可以在任何Kubernetes集群和其他與Dapr集成的托管環境上本地運行應用程式,這使您能夠構建可以在云和edge上運行的微服務應用程式,
Microservice building blocks for cloud and edge

在設計微服務應用程式時需要考慮很多因素,在構建開發人員可以以標準方式使用并部署到任何環境的微服務應用程式時,Dapr為通用功能提供了最佳實踐,它通過提供分布式系統構建塊來實作這一點,
每個構建塊都是獨立的,這意味著您可以在應用程式中使用其中的一個、部分或全部,在這個dpr的初始版本中,提供了以下構建模塊:
|
構建塊(Building Block) |
描述 |
|
Service-to-Service invocation (服務間呼叫) |
彈性的服務間呼叫,支持方法呼叫,包括重試,無論遠程服務位于受支持的托管環境中哪個位置 |
|
State management (狀態管理) |
有了用于存盤鍵值對的狀態管理,就可以在應用程式中輕松撰寫無狀態服務和長時間運行的、高可用的有狀態服務,狀態存盤是可擴展的,包括Azure CosmosDB、Azure SQL Server、PostgreSQL、AWS DynamoDB或Redis等, |
|
Publish and subscribe (發布和訂閱) |
發布事件以及訂閱主題 |
|
Resource bindings (資源系結) |
帶有觸發器的資源系結進一步構建在事件驅動的架構上,通過接受和發送事件到任何外部源(例如資料庫、佇列、檔案系統等),以實作伸縮與彈性, |
|
Actors |
一種用于有狀態和無狀態物件的模式,通過方法和狀態封裝使并發變得簡單, Dapr在其參與者運行時中提供了許多功能,包括并發性、狀態、參與者激活/去激活的生命周期管理以及喚醒參與者的計時器和提醒, |
|
Observability (可觀察性) |
Dapr 傳輸指標、日志和跟蹤,以除錯和監視Dapr和用戶應用程式,Dapr支持分布式跟蹤,使用W3C跟蹤背景關系標準和將開放遙測技術發送到不同的監控工具,從而方便地診斷和服務生產中的服務間呼叫, |
|
Secrets (隱私) |
Dapr提供隱私管理,并與公共云和本地秘密存盤集成,以檢索用于應用程式代碼的隱私 |
Sidecar architecture
Dapr將其API公開為sidecar體系結構,可以作為容器、也可以作為行程,不需要應用代碼包含任何的dapr運行時代碼,
Hosting Environments
Dapr可以托管寄宿在多個環境下,包括用于本地開發的自托管,或是部署到VM,K8S、Azure IOT edge等環境中,
Self hosted
在自托管模式下,Dapr作為隔離的side-car行程運行,你的服務代碼可以通過HTTP或是gRPC呼叫,在自托管模式下,你也可以將Dapr部署在一組VM上,

Running Dapr on a local developer machine in self hosted mode
可以將Dapr配置為在本地開發人員機器上以自托管模式運行,每個正在運行的服務都有一個Dapr運行時行程(或sidecar),它被配置為使用狀態存盤、發布/訂閱、系結組件和其他構建塊,您可以使用Dapr CLI在本地機器上運行啟用了Dapr的應用程式,

Kubernetes hosted
在容器托管環境下,例如K8S,Dapr作為side-car容器運行與應用容器在相同的pod上,

Running Dapr in Kubernetes mode
可以將Dapr配置為在任何Kubernetes集群上運行,在Kubernetes中,Dapr-sidecar注入器和Dapr-operator 服務提供了一流的集成,將Dapr作為一個sidecar容器作為服務容器在同一個pod中啟動,并提供Dapr組件更新到集群中的通知,Dapr -sentry服務是一個證書頒發機構,它支持Dapr sidecar實體之間的相互TLS,以實作安全資料加密,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/264733.html
標籤:架構設計
上一篇:互聯網大促運維實踐案例
下一篇:設計模式——策略模式
