Dapr v1.9.0 版本已發布
Dapr是一套開源、可移植的事件驅動型運行時,允許開發人員輕鬆立足雲端與邊緣位置運行彈性、微服務、無狀態以及有狀態等應用程式類型。Dapr能夠確保開發人員專註於編寫業務邏輯,而不必分神於解決分散式系統難題,由此顯著提高生產力並縮短開發時長。Dapr 是用於構建雲原生應用程式的開發人員框架,可以更輕鬆幫助開發人員在 Kubernetes 上構建運行多個微服務,並與外部狀態存儲/資料庫、機密存儲、發布/訂閱代理以及其他雲服務和自託管解決方案進行交互。
2022年10月13日正式發布了1.9版本,Dapr v1.9.0 版本提供了幾項新功能,包括可插入組件、彈性指標和應用運行狀況檢查,以及核心運行時和組件中的許多修復。
- 詳細了解Dapr[1]
- 閱讀 Dapr 1.9.0 的發行說明[2]
亮點
可插拔組件
我們現在可以創建稱為「可插拔組件」[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: //docs.dapr.io/concepts/overview/
[2]閱讀 Dapr 1.9.0 的發行說明://blog.dapr.io/posts/2022/10/13/dapr-v1.9-is-now-available/
[3]可插拔組件: //v1-9.docs.dapr.io/operations/components/pluggable-components
[4].NET的模板例子://github.com/dapr/samples/tree/master/pluggable-components-dotnet-template
[5]對OpenTelemetry的支援://v1-9.docs.dapr.io/developing-applications/building-blocks/observability/w3c-tracing-overview/
[6]彈性能力: //github.com/dapr/dapr/blob/master/docs/development/dapr-metrics.md#resiliency
[7]應用運行狀況檢查://v1-9.docs.dapr.io/operations/observability/app-health
[8]默認策略://v1-9.docs.dapr.io/operations/resiliency/policies/#setting-default-policies
[9]服務到服務調用中間件組件://v1-9.docs.dapr.io/developing-applications/middleware/#configuring-app-middleware-pipelines
[10]用於發布/訂閱的命名空間使用者組: //v1-9.docs.dapr.io/developing-applications/building-blocks/pubsub/howto-namespace/