【问题标题】:difference between app engine,serverless containers and gke serverless add-on应用引擎、无服务器容器和 gke 无服务器插件之间的区别
【发布时间】:2018-08-31 03:30:05
【问题描述】:

-App Engine 被宣传为无服务器

-google 新的serverless container 提供的是无服务器的,但有什么不同呢?他们是这样解释的:

许多客户告诉我们他们有自定义要求,例如特定运行时、自定义二进制文件或工作负载可移植性。他们通常会求助于容器来寻求答案

“特定运行时”和“自定义二进制文件”是什么意思,顺便问一下,为什么 App Engine 中的应用不可移植?

-GKE serverless add-on 是这样宣传的:

您可以即时从源转到容器,自动扩展基于容器的无状态工作负载

App Engine 不就是这样做的吗?

我现在很困惑,应该添加一些至少在哪里使用的示例

【问题讨论】:

    标签: google-app-engine google-kubernetes-engine serverless


    【解决方案1】:

    App Engine 被宣传为无服务器

    App Engine 绝对是现在称为serverless 的东西,因为您只需要担心代码,而不是操作系统或您拥有多少台服务器。举个简单的例子,我有一个使用 TLS 的 App Engine 应用,但我不必担心更新 OpenSSL。

    “特定运行时”和“自定义二进制文件”是什么意思? 那么,为什么 App Engine 中的应用不可移植?

    较旧的 App Engine 标准运行时使用自定义“沙盒”来管理您的应用。这意味着“正常”的 Python、Java 等运行时已被修改以添加限制,因此您的代码可以安全地在共享环境中运行,例如在与其他应用程序相同的服务器上。通常会提供一些额外的 API 来与其他云服务交互。这一切都意味着,至少从历史上看,如果您为 App Engine Standard 编写代码,则必须进行一些修改才能在其他环境中运行,并且某些库会因为遇到限制而无法工作。

    顺便说一句,有像 AppScale 这样的开源项目试图模拟 App Engine 标准环境,所以这样的应用在某种程度上是可移植的。

    将此与基于容器的较新运行时进行对比。您的应用程序及其依赖项在container 中运行,而不是提供隔离的自定义语言运行时,并且容器系统提供隔离。因为运行时几乎不再进行如此多的修改,所以许多限制都消失了,但是如果没有所有这些修改,自定义 API 也会消失,而只是让您使用执行相同操作的独立服务。一个简单的例子是,在 App Engine Python 2.7 中,有一个与 Datastore 服务接口的ndb 库。如今,Cloud Datastore 是具有自己 API 的独立产品,您只需使用该 API 与 Datastore 进行对话即可。一个 Python 3.7 应用程序。

    GKE serverless add-on 是这样宣传的……这不就是 App Engine 的作用吗?

    GKE Serverless 尚未发布,因此我们必须看看人们如何使用它,但这个想法似乎是为那些已经在使用 Kubernetes 并希望 App Engine 功能(如自动缩放以响应传入)的人准备的要求。不过在这里我可能会很困惑。

    【讨论】:

    • 容器是否像 App Engine 一样有 SSE、websocket 和 HTTP2 限制? stackoverflow.com/questions/49481903/…
    • 没有原生库的限制,你应该可以使用SSE,是的。我很确定 HTTP2 已经可以与 App Engine 一起使用。 Websockets 我不知道这个故事。
    猜你喜欢
    • 2012-09-23
    • 2018-04-24
    • 1970-01-01
    • 2022-11-27
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多