圖片來源: 

微軟

微軟釋出跨平臺Azure Functions Runtime 2.0正式版,現在將允許Functions應用程式跨平臺執行。Azure Functions Runtime經過重寫並以.NET Core 2.1運作後,效能大幅提升,開發者還可以在本機端的Windows、macOS和Linux電腦上,撰寫和執行Functions Runtime。

Azure Functions 2.0最讓人驚豔的是,現在可以在本機端執行,而且除了Windows外,連macOS和Linux電腦都支援,加上VS Code的整合,開發者可以在任何平臺都能舒適的開發無伺服器應用程式,也因為Azure Functions Runtime支援多平臺,使用者不用再被綁在Azure雲端平臺上,微軟提到,Azure Functions Runtime在其他平臺也可以運作的很良好,開發者可以選擇託管在其他雲端服務上。

微軟提到,Azure Functions 2.0效能比過去提升不少,部分原因除了歸功於主機的改進,還支援先進語言Runtime ,並且可以從套件檔案執行程式碼。開發人員現在能使用.NET Core 2.1編寫Functions,除了執行效能提升外,這也代表應用程式可以在更多的環境中執行,Functions現在會自行載入上下文,而這也表示開發者不會遇到太多的衝突,而且應用程式也更容易移植。

非.NET語言開發者可以從使用語言工作者模型(Language Worker Model)開始,不只可以使用JavaScript,在Functions 2.0現在也支援Node 8和Node 10,同時開發者還可以非常明顯的感受到效能提升。

Runtime 1.0和2.0有很大的不同,其中最大的改變便是微軟改變綁定和整合套件的方法。現在除了核心HTTP和Timer的支援,所有綁定都只被當作是和Functions工具一起安裝的擴充套件,而功能上仍與原本的程式編寫模型相同。微軟更改套件綁定的方式,目的是要讓分離的擴充套件,可以獨立於核心Runtime進行版本控制,讓開發者更好的控制應用程式和其運作的方式,尤其在開發者所相依的服務不斷的更新情況下,更顯得重要。

雖然Azure Functions有Visual Studio、VS Code和VS for Mac這些好用的本機開發工具,但是隨著無伺服器應用的發展,可能包含了許多不同的元件,開發者會更難以監控應用程式運作的情況。在Functions 2.0中,微軟擴充整合Azure Application Insights,以更透明的方式追蹤分散式架構,能自動追蹤相依關係,而且在跨服務間也會自動跨資料源關聯。

現在微軟正在著手打造無伺服器Linux服務,以提供執行Azure Functions的另一個選項,而且還要讓Functions 2.0 Runtime支援Python 3.6,微軟提到,無伺服器服務很適合用於資料操作、機器學習和自動化等應用,支援Python將能免除這些使用情境的開發者不少工作。


Advertisement

更多 iThome相關內容