谷歌云爲什麼選擇支持Go語言?

在最近的一篇文章中,谷歌宣佈在他們的函數即服務產品雲函數上支持Go 1.11。在這項聲明中,除了之前就支持的Node.js和Python之外,Go也加入了這一陣容,成爲雲函數支持的編程語言。

Go是谷歌設計的一種開源編程語言,在1.11版本中,他們添加了模塊概念。這些模塊管理Go項目中使用的第三方包的依賴關係,與.NET的NuGet和node.js的NPM類似。令人驚訝的是,儘管Go有谷歌背景,但谷歌雲函數並不是第一個支持這種語言的FaaS,因爲IBM 雲函數和AWS Lambda去年已經宣佈了這項支持。儘管如此,社區歡迎對該語言的支持,因爲他們發現它與FaaS實現結合效果非常好。

最後,Go非常適合雲函數,因爲其函數的冷啓動速度非常快。

去年,我在lambda上測了有數據庫連接的node.js和Golang函數,冷啓動時間分別爲3148毫秒和1648毫秒。

函數即服務是一個流行的概念,所有主要的雲供應商都有它自己的實現,無論是谷歌雲函數、Azure函數,還是AWS Lambda。通常,函數會在事件發生時運行一段代碼,並且經常實現爲無服務器架構的一部分,Stackify創始人兼首席執行官Matt Watson有過下面這樣的描述。

FaaS的概念是通過無服務器架構進行無服務器計算。軟件開發人員可以利用這一點來部署單個的“功能”、操作或一塊業務邏輯。它們可以在幾毫秒內啓動並處理單個請求,然後進程結束。

谷歌雲函數的用法沒有什麼不同,它提供了兩種不同的調用方法。第一個是HTTP函數,它使用HTTP請求調用,並允許從任何兼容HTTP的客戶端使用。另一方面,還有後臺函數,由事件觸發,例如從雲存儲或Firebase觸發。通過這些事件,可以實現各種場景,其中,雲函數的教程中有幾個例子。相應地,這包括從Slack中搜索谷歌知識庫或從圖片中提取和翻譯文本等應用程序。

image

已經有幾篇博文展示如何開始在雲函數上使用Go,例如Posse Productions創始人Luke Freeman。在這篇文章中,Luke展示瞭如何設置這類項目的結構,如何創建函數,以及如何測試和使用它們。最後,他介紹了部署過程,對各個開發階段進行了完整的概述。

查看英文原文:

https://www.infoq.com/news/2019/01/cloud-functions-go-support

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章