Go 博客
Go 和 Google App Engine
Google 的 App Engine 提供了一种可靠、可伸缩、易于构建和部署 Web 应用程序的方式。目前有超过十万个应用程序使用 App Engine 基础架构托管在 appspot.com 和自定义域名上。该系统最初是为 Python 应用程序编写的,在 2009 年增加了 Java 运行时。今天,在 Google I/O 大会上,我们很高兴地宣布 Go 将是下一个支持的语言。目前,它被标记为一个实验性 App Engine 功能,因为还处于早期阶段,但 App Engine 和 Go 团队都对这个里程碑感到非常兴奋。
处于早期阶段意味着它仍在推广中。截至今天,适用于 Go 的 App Engine SDK 已可供下载,我们将很快启用将 Go 应用程序部署到 App Engine 托管基础架构的功能。今天,通过 SDK,您将能够编写 Web 应用程序,了解 API(以及语言,如果您是新手),并在本地运行您的 Web 应用程序。一旦启用完全部署,将您的应用程序推送到 Google 云端将变得很容易。
这个消息的一个很酷但不太明显的点是,它提供了一种非常简单的方式来试用 Go。您甚至不需要预先安装 Go,因为 SDK 是完全自包含的。只需下载 SDK,解压,即可开始编码。此外,SDK 的“dev app server”意味着您甚至不需要自己运行编译器;一切都令人愉快地自动化完成。
您将在 SDK 中找到许多标准 App Engine API,这些 API 以良好的 Go 风格定制设计,包括 Datastore、Blobstore、URL Fetch、Mail、Users 等等。随着环境的发展,将添加更多 API。运行时提供了完整的 Go 语言和几乎所有的标准库,但有一些在 App Engine 环境中没有意义的东西除外。例如,没有 unsafe
软件包,并且 syscall
软件包被精简了。(该实现使用了golang.org 上Go Playground 中设置的扩展版本。)
此外,虽然存在 goroutines 和 channels,但在 App Engine 上运行 Go 应用程序时,给定实例中只运行一个线程。也就是说,所有 goroutines 都在单个操作系统线程中运行,因此给定客户端请求没有 CPU 并行性。我们预计此限制将在某个时候取消。
尽管存在这些微小的限制,它仍然是真正的语言:代码以源形式部署,并在云中使用 64 位 x86 编译器 (6g) 进行编译,这使其成为第一个在 App Engine 上运行的真正的编译语言。Go 在 App Engine 上使得部署高效、CPU 密集型的 Web 应用程序成为可能。
如果您想了解更多,请阅读文档(从“入门”开始)。库和 SDK 是开源的,托管在http://code.google.com/p/appengine-go/。我们创建了一个新的google-appengine-go 邮件列表;如有 App Engine 特定问题,请随时在此联系我们。App Engine 的问题跟踪器是报告与新的 Go SDK 相关问题的地方。
适用于 Go 的 App Engine SDK 已可用于 Linux 和 Mac OS X(10.5 或更高版本);我们希望 Windows 版本也将很快推出。
我们感谢 Google App Engine 团队为实现此目标提供的所有帮助和热情。
下一篇文章:《2011 年 Google I/O 大会上的 Go:视频》
上一篇文章:《Go 在 Heroku》
博客索引