Google Cloud Run 推出 beta 版,可运行 Serverless 容器
Google Cloud Run beta 版已可用,可以运行基于 Docker 容器的无服务器应用程序,当 HTTP 请求传入时,Docker 容器将被自动激活。Google Cloud Run 是一个基于KNative的全托管平台,可以让开发者轻松地将应用程序移植到任何基于 Kubernetes 的平台上。
在使用 Google Cloud Run 时,开发人员可以将他们的应用程序打包到 Docker 容器中,并将镜像推送到 Google Container Registry,然后在使用 gcloud 部署应用程序时配置应用程序所在的端点。当请求进入时,Google Cloud Run 将自动处理容器的运行,当没有更多的请求需要处理时,它将停止运行容器。这样可以降低应用程序的成本,因为客户只需要为容器实际运行的时间支付费用。Google Cloud Run 还会根据流量自动增加或减少运行的容器数量。
要想在 Google Cloud Run 上运行,应用程序必须是无状态的,因为容器会自动启动和停止。不过,谷歌还初步列出了其他的一些需求,比如应用程序需要针对 64 位 Linux 进行编译、监听端口 8080 上的请求、在不到四分钟的时间内启动和运行。
Google Cloud Run 看起来有点类似功能即服务(Function as a Service,FaaS)解决方案,包括AWS Lambda、Google Cloud Functions或Azure Functions,它们不需要依赖持续运行的服务器来处理请求。然而,实际上,Google Cloud Run 并不是一个 FaaS 解决方案。FaaS 解决方案倾向于通过运行 Function 来构建应用程序,这些 Function 将一些关键 Function(比如身份验证或数据库访问)委托给托管基础设施。更实际地说,Google Cloud Run 与 FaaS 解决方案的主要区别之一是开发人员可以自由地选择编程语言和基于 Linux 的技术组合来构建他们的应用程序。此外,使用 Docker 容器可以更容易地在本地测试应用程序,因为它可以像在云端一样运行本地应用程序。
Google Cloud Run 的直接竞争对手是Azure Container Instances和AWS Fargate,它们也可以在不关心具有类似特性的底层基础设施的情况下运行容器。与它们相比,Google Cloud Run 的主要区别在于它对容器的自动管理,并且是基于 KNative 的,而且为 Google Cloud Run 开发的任何应用程序都可以轻松地移植到其他基于 Kubernetes 的平台,包括Google Kubernetes Engine,甚至是一个自管理的 Kubernetes 集群