透過 Radius 實現Dapr 雲原生應用程式開發協作

張善友發表於2023-10-19

Microsoft Azure 孵化團隊很高興地宣佈[1]推出一個名為 Radius 的新開放應用程式平臺,該平臺將應用程式置於每個開發階段的中心,重新定義應用程式的構建、管理和理解方式。Radius是一個開源專案,支援跨私有云,Microsoft Azure和Amazon Web Services部署應用程式,未來還會有更多雲提供商。

Microsoft Azure 孵化團隊專注於開源創新,該團隊還推出了多個流行的開源專案,包括Dapr[2]KEDA[3]和Copacetic[4],所有這些都是雲原生計算基金會(CNCF)專案, 像 Kubernetes 這樣的雲原生技術使得構建可以在任何地方執行的應用程式變得更加容易。與此同時,許多應用程式變得更加複雜,在雲中管理它們變得越來越困難,因為公司構建由互連服務組成的雲原生應用程式,並將其部署到多個公共雲及其私有云。雖然 Kubernetes 是一個關鍵的推動者,但我們看到許多客戶在 Kubernetes 上構建抽象,通常專注於計算,以解決其侷限性:Kubernetes 沒有正式的應用程式定義,它混合了基礎設施和應用程式概念,而且非常複雜。開發人員也不可避免地意識到他們的應用程式需要的不僅僅是 Kubernetes,包括對應用程式程式設計介面 (API) 前端、鍵值儲存、快取和可觀測性系統等依賴項的支援。面對開發人員面臨的這些挑戰,其企業 IT 同行還必須實施不斷增長的企業標準、合規性和安全要求矩陣,同時仍能實現快速的應用程式創新。微軟釋出的分散式應用程式執行時 (Dapr) 開發現代應用程式的新方法來應對微服務開發的複雜性,這是微服務和雲原生應用程式的一個平臺和語言無關的執行時。

Dapr 的體系結構對於開發人員來說非常迷人,尤其是那些熟悉 20 世紀 90 年代 COM 或 EJB 的開發人員。與 COM/DCOM 和 EJB 為在 Windows 和 Java 上執行的分散式應用程式提供管道的方式類似,Dapr 基於容器化、雲原生、微服務的應用程式所需的繁重工作。Dapr 有三大元素:執行時、 服務構建塊和SDK

image

Dapr 執行時可以安裝在任何可以執行 Docker 的計算機上。核心執行時是容器化的,可以部署在執行 Linux、Windows 或 Mac 作業系統的 x86/ARM 處理器上。它也可以安裝在多節點 Kubernetes 群集中,也可以安裝在資源受限的邊緣裝置(如樹莓派)上。

Dapr 使得使用在同一主機、內部或外部資料服務以及基於 pub/sub 模式的訊息傳遞服務中執行的其他微服務變得非常簡單。由於 Dapr 使用Sidecar 模式,因此可以輕鬆地整合在 Kubernetes 上執行的微服務,以利用構建基塊。Dapr 構建基塊充當配置為元件的內部/外部服務提供商和內部使用者之間的中間層。由於每個服務的使用者始終與一個眾所周知的終結點通訊,Dapr 只需將呼叫重定向到當前配置的元件。

為了使不同語言使用 Dapr 更自然,它還包括用於 Go、Java、JavaScript、.NET 和 Python 的語言特定 SDK。這些 SDK 透過語言封裝的 API 而不是呼叫標準 http/gRPC API 公開 Dapr 構建基塊中的功能,例如儲存狀態、釋出事件或建立Actor。這使開發人員能夠用自己選擇的語言編寫無狀態和有狀態函式和Actor的組合。

image

基於Dapr 開發的應用程式的構建、管理和運營存在很多挑戰。對開發者而言,基礎設施的管理複雜性以及缺乏對構成其應用程式資源的可見性已經成為障礙生產力提升的關鍵因素;對運維團隊而言,部署過程中缺乏標準化 / 自動化機制,則很可能導致其失去對基礎設施的控制能力、降低對所部署應用程式的信心。最終,開發團隊交付的成果在平臺和雲服務商之間出現使用體驗脫節。面對現實問題,陳舊的工件列表往往很難幫助開發者和運維者確切瞭解自己的應用程式在不同工具集中到底是怎麼組合起來的。

10 月 18 日,微軟 Azure 孵化團隊正式釋出開源應用平臺 Radius[5],該平臺將應用程式置於每個開發階段的中心,重新定義應用程式的構建、管理與理解方式。目前,Radius 維護團隊正在將 Radius 提交至 CNCF,微軟、BlackRock、Comcast 和 Millennium BVP 等企業也在共同努力,確保 Radius 能夠與更廣泛的雲原生社群同步發展。

GitHub 地址:https://github.com/radius-project

image

這是 Radius 的架構圖。它顯示了 Radius 的價值主張,就像應用程式圖一樣。它展示了與Radius配合使用的技術,例如Docker和Redis。它顯示了Radius執行的基礎設施,如Micorsoft Azure,Amazon Web Services和Kubernetes ,Radius 使開發人員能夠了解他們的應用程式,並且知道您的應用程式不僅僅是 Kubernetes。Radius 可幫助開發人員檢視構成其應用程式的所有元件,當他們新增新元件時,Radius 會透過處理許可權、連線字串等自動將這些元件連線到其應用程式。

Radius 還可確保應用程式使用的雲基礎架構滿足成本、運營和安全要求。這些要求在配方中捕獲,配方由支援雲原生開發人員的 IT 操作員、平臺工程師和/或安全工程師定義。Radius 將應用程式繫結到其依賴的基礎結構,這使 Radius 能夠提供一個應用程式圖,以準確顯示應用程式和基礎結構如何互連。此圖使團隊成員能夠檢視並直觀地瞭解應用程式的組成。

許多企業都是多雲的,並且希望解決方案不僅在 Azure 上執行良好,而且在其他雲以及本地上執行良好。因此,Radius從一開始就是開源和多雲的。

藉助 Dapr,Microsoft Azure 孵化團隊幫助開發人員編寫具有最佳做法、抽象、可移植性和與基礎結構分離的微服務。現在,我們正在做同樣的事情來定義應用程式的體系結構。這兩種技術相輔相成:Radius 與 Dapr 配合使用,簡化了 Dapr 配置。它們不僅支援可移植程式碼,還支援可移植應用程式


相關連結:

相關文章