微軟在2019年釋出的分散式應用程式Runtime開源專案Dapr,現在已經達到1.0,可供開發人員正式用於生產環境。Dapr是一個開源、可移植,由事件驅動的Runtime,讓開發人員能更簡單地於雲端和邊緣,開發微服務、無狀態和有狀態等應用程式,開發人員不需要解決分散式系統難題,而能專注於業務邏輯的開發。

Dapr專案針對的目標,是那些想要在雲端建立現代應用程式,以及將現有應用程式與元件搬上雲端的使用案例,開發人員可以使用熟悉的技術,在雲端和微服務架構中,建構現代化應用程式。Dapr由一套建置模塊組成,模塊可透過標準HTTP或gRPC API存取,每個模塊都是獨立的,一個應用程式可以包含全部或是部分模塊。

在最新的1.0版本中,Dapr在效能、安全性和可用性等方面都獲得改進。Dapr 1.0現在使用Kubernetes作為主要的託管環境,與Dapr控制平面和邊車架構深度整合,讓開發者可以在無伺服器服務上使用Dapr。

微軟也下功夫強化Dapr的效能,現在Dapr具有極低的服務延遲,並且針對高吞吐量使用案例最佳化,而Dapr所擁有的70多個由社群開發的元件,也都通過一致性測試,以確保這些元件的效能。元件最初從Alpha狀態開始,最終成為正式版本,但只有在元件獲准成為正式版本後,才可用於Dapr 1.0和生產環境中。

官方提到,由於以微服務架構,建立分散式應用程式非常複雜,為了要防禦中間人攻擊,開發者可以使用Dapr透過控制平面服務所提供的x.509憑證加密,該憑證會自動更新。而Dapr也提供了ACL,開發者可以精細地控制儲存、機密、服務間呼叫等存取行為,在執行不同的應用程式時,可以使用不同的命名空間進行操作部署和隔離。

Dapr目標是擁抱所有開發社群的語言、框架和工具,開發人員可以透過HTTP和gRPC,在任何程式語言中使用Dapr,而官方提到,這意味著編譯時不會包含任何相依項目,Dapr 1.0中包含了Java、.NET、Python和Go的SDK,使用這些SDK,開發人員可以在熟悉的開發環境進行開發,像是VS Code或IntelliJ。目前JavaScript/Node.js、C++、Rust和PHP的SDK仍在預覽階段,會在1.0發布之後對外釋出。

Dapr 1.0版本的API都已進入穩定狀態,即便在未來需要變更,也會透過版本控制機制,確保API完全向後相容,當有重大安全問題出現時,也會支援當前與之前的版本。

熱門新聞

Advertisement