App Engine、无服务器容器和 gke 无服务器附加组件之间的区别

difference between app engine,serverless containers and gke serverless add-on

-App Engine 作为无服务器

销售

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

many customers tell us they have custom requirements like specific runtimes, custom binaries, or workload portability.More often than not, they turn to containers for an answer

"specific runtimes" 和 "custom binaries" 是什么意思,顺便问一下,为什么 App Engine 中的应用程序不可移植?

-GKE serverless add-on 是这样打广告的:

You can go from source to containers instantaneously, auto-scale your stateless container-based workloads

这不是 App Engine 所做的吗?

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

App Engine is marketed as serverless

App Engine 绝对就是现在所谓的 serverless,因为您只需担心代码,而不是操作系统或您拥有的服务器数量。作为一个简单的例子,我有一个使用 TLS 的 App Engine 应用程序,但我不必担心更新 OpenSSL。

What do they mean by "specific runtimes" and "custom binaries", by the way, why an app in App Engine is not portable?

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

顺便说一句,有像 AppScale 这样的开源项目试图模拟 App Engine 标准环境,因此此类应用程序具有一定的可移植性。

将此与基于容器的较新 运行 时代进行对比。不同于自定义语言 运行 时间提供隔离,您的应用程序及其依赖项 运行 在 container 中,容器系统提供隔离。因为 运行time 几乎不再修改那么多,许多限制消失了,但如果没有所有这些修改,习俗也会 APIs 消失,只支持让你使用独立的服务同一件事情。一个简单的例子是,在 App Engine Python 2.7 中,有一个 ndb 库与数据存储服务交互。如今,Cloud Datastore 是一个独立的产品,拥有自己的 API,您只需使用它 API 与 Datastore 进行通信,例如Python 3.7 应用

GKE serverless add-on is advertise like this ... Isn't that what App Engine does?

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