在最近的一篇文章中,谷歌宣布在他们的函数即服务产品云函数上支持 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 中搜索谷歌知识库或从图片中提取和翻译文本等应用程序。
已经有几篇博文展示如何开始在云函数上使用 Go,例如 Posse Productions 创始人 Luke Freeman。在这篇文章中,Luke 展示了如何设置这类项目的结构,如何创建函数,以及如何测试和使用它们。最后,他介绍了部署过程,对各个开发阶段进行了完整的概述。
查看英文原文:
https://www.infoq.com/news/2019/01/cloud-functions-go-support
评论