Dapr v1.9.0 版本已釋出

2022-10-21 09:00:47

Dapr是一套開源、可移植的事件驅動型執行時,允許開發人員輕鬆立足雲端與邊緣位置執行彈性、微服務、無狀態以及有狀態等應用程式型別。Dapr能夠確保開發人員專注於編寫業務邏輯,而不必分神於解決分散式系統難題,由此顯著提高生產力並縮短開發時長。Dapr 是用於構建雲原生應用程式的開發人員框架,可以更輕鬆幫助開發人員在 Kubernetes 上構建執行多個微服務,並與外部狀態儲存/資料庫、機密儲存、釋出/訂閱代理以及其他雲服務和自託管解決方案進行互動。

2022年10月13日正式釋出了1.9版本,Dapr v1.9.0 版本提供了幾項新功能,包括可插入元件、彈性指標和應用執行狀況檢查,以及核心執行時和元件中的許多修復。


亮點


可插拔元件

我們現在可以建立稱為「可插拔元件」[3]的私有元件。只需使用任何支援gRPC 的語言編寫一個帶有 gRPC 服務的元件,將二進位制檔案放入檔案系統中,即可開始使用。在Sample 倉庫裡提供了一個 .NET的模板例子[4]。

可觀察性:Open Telemetry(OTEL) 協定支援
OpenTelemetry(OTEL) 將OpenCensus、Zipkin 和OpenTracing等專案組合到標準 API 和規範集中,用於跟蹤和指標。在1.9 版本中,Dapr 包括了 對OpenTelemetry的支援[5]。
可觀察性:彈效能力指標

已新增用於彈效能力[6]的指標,能夠跟蹤以下各項的數量:

  • 已載入彈性策略
  • 執行彈性策略的次數
可靠性:應用程式執行狀況檢查

應用執行狀況檢查[7]是一項新功能,允許探測應用程式的執行狀況並對狀態更改做出反應。啟用應用程式執行狀況檢查後,Dapr 執行時將通過 HTTP 或 gRPC 呼叫定期輪詢應用程式。當 Dapr 檢測到應用的執行狀況出現故障時,它會代表應用程式停止接受新的請求。

可靠性:預設彈性策略

藉助彈性策略,我們現在可以設定預設策略[8],這些策略的範圍可能很廣。這是通過應用於給定策略的保留關鍵字來完成的。有 3 種預設策略型別:

    • DefaultRetryPolicy
    • DefaultTimeoutPolicy
    • DefaultCircuitBreakerPolicy

如果定義了這些策略,將它們用於對服務、應用程式或元件的每個操作。還可以通過對特定目標使用其他關鍵字來修改它們以使其更具體。

服務呼叫:應用中介軟體

現在,在進行服務到服務呼叫時,可以使用任何中介軟體元件。例如,用於零信任環境中的令牌驗證或應用 OAuth 策略。服務到服務呼叫中介軟體元件[9]適用於從 Dapr sidecar 到接收應用程式的所有傳出呼叫。

釋出/訂閱:名稱空間使用者組

將 Dapr 應用程式部署到所有共用相同app id的不同名稱空間,並將所有主題訂閱的範圍限定在名稱空間級別。使用用於釋出/訂閱的名稱空間使用者組[10],開發團隊可以重用相同的釋出/訂閱底層基礎架構,而無需根據他們執行的名稱空間更改其程式碼。


相關連結:

[1]詳細瞭解Dapr: https://docs.dapr.io/concepts/overview/

[2]閱讀 Dapr 1.9.0 的發行說明:https://blog.dapr.io/posts/2022/10/13/dapr-v1.9-is-now-available/

[3]可插拔元件: https://v1-9.docs.dapr.io/operations/components/pluggable-components

[4].NET的模板例子:https://github.com/dapr/samples/tree/master/pluggable-components-dotnet-template

[5]對OpenTelemetry的支援:https://v1-9.docs.dapr.io/developing-applications/building-blocks/observability/w3c-tracing-overview/

[6]彈效能力: https://github.com/dapr/dapr/blob/master/docs/development/dapr-metrics.md

[7]應用執行狀況檢查:https://v1-9.docs.dapr.io/operations/observability/app-health

[8]預設策略:https://v1-9.docs.dapr.io/operations/resiliency/policies/

[9]服務到服務呼叫中介軟體元件:https://v1-9.docs.dapr.io/developing-applications/middleware/

[10]用於釋出/訂閱的名稱空間使用者組: https://v1-9.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-namespace/