谷歌云为什么选择支持Go语言?(33)

发布于2019-04-21 20:34:09

在最近的一篇文章中,谷歌宣布在他们的函数即服务产品云函数上支持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