微軟推出雲端原生時代的開源應用平台Radius
微軟今天宣布推出Radius,這是一個新的開源、語言無關的應用平台,用於建置和運行雲端原生應用程式。該專案由微軟Azure孵化團隊(Microsoft Azure Incubation team)推出,該團隊先前也推出了用於建置微服務的Dapr、KEDA事件驅動自動擴充解決方案和用於修補容器鏡像漏洞的安全工具Copacetic等開源專案。
Dapr和KEDA已經是雲端原生運算基金會(CNCF)穩定計畫的一部分,微軟最近也提交了Copacetic。因此,該公司還計劃在未來六個月內將Radius提交給CNCF也就不足為奇了。
有了Radius,開發人員就能將應用程式部署到私有雲、微軟自己的Azure 和亞馬遜的AWS,不久後也將支援Google雲端。這裡的總體思路是,雖然Kubernetes 使得建立至少在理論上可以在任何地方運行的應用程式變得更加容易,但這些應用程式也變得越來越複雜,從而增加了管理它們的難度。理想情況下,應用平台可以抽象化這一切,讓開發人員專注於編寫應用程式。
我們過去曾見過試圖將所有基礎架構從開發人員手中抽像出來的其他應用平台,包括Cloud Foundry 專案和圍繞它構建的商業服務,如VMware 的Tanzu 應用服務。但正如Azure首席技術長兼微軟技術研究員馬克-魯西諾維奇(Mark Russinovich)告訴我的那樣,Radius正在採用一種截然不同的方法來解決這個問題:
“我們正在做的與眾不同的事情之一是,我們希望Radius 能夠支援所有類型的應用程序,而不僅僅是對應用程式的架構有縱向意見,或者只支援某種模式的應用程式(如12要素),或要求應用程式本身以某種方式編寫。Radius 本身對應用程式的編寫方式不持任何意見,而且足夠靈活,可以支援企業中仍在構建的大量兩層和三層應用程式。雖然現在已經實現了容器化,但它們仍然是這種架構。此外,它還能支援複雜的基於微服務的應用,包括十幾或二十幾個微服務。”
他也指出,競爭對手的平台都非常注重描述應用程式或微服務的運算層之間的關係,但它們往往將構成現代應用程式的其他雲端資源作為外部關注點。
“Radius的目標是,作為開發人員,我可以完整地描述我的應用–不僅僅是計算部分,還有它們使用的資源,例如,在這個前端和這個後端之間有一個PubSub。這個微服務上有一個狀態存儲,所有雲端資源中的任何資源都可以這樣描述。因此,你最終會得到一個完整的應用圖。作為開發人員有動力利用Radius 來描述這些關係,因為它背後為你做了很多工作。”
微軟指出,它設計Radius 是為了滿足開發人員的需求。例如,它並沒有試圖完全重塑基礎設施即程式碼(infrastructure-as-a-code)的概念,而是利用了Terraform(也可能是OpenTofu,只要保持相容)和Bicep 等現有工具。它還整合了GitHub Actions 等CI/CD 服務。
Radius 的核心是一個通用控制平面,它基於Azure Resource Manager 部署引擎,也就是公司在Azure 中用於管理應用程式部署的部署協調器,公司將在未來六個月內開源這個資源管理器。他也指出,部署引擎之上的特定網域基礎設施即程式語言Bicep已經開源。
微軟也與康卡斯特(Comcast)和葡萄牙千禧銀行(Millennium BCP)合作,讓Radius可以在任何雲端上運作。
在許多方面,微軟對Radius採用了與Dapr分散式應用程式運行時相同的整體策略。它將該服務作為一個開源專案推出,並將其置於CNCF 的管理之下。隨後,Dapr 也催生了一些圍繞該專案的商業活動,包括Diagrid 等公司,也許有一天Azure 本身也會提供基於Radius 的應用平台。