我目前正在研究GCP app engine,并且正在弄清楚如何部署具有多个服务的大型应用程序。我也想使用mongodb。 GCP文档说,应用引擎允许dockerfiles和图像。如果我在应用程序引擎上使用mongo docker映像作为服务会怎样?它会如何扩展实例?一致性会发生什么?我知道GCP为mongo提供了第三方解决方案,但是由于它们允许使用docker镜像,是什么阻止了我使用它?
答案 0 :(得分:2)
App Engine通常会拆除并创建新实例。如果您的实例正在运行MongoDB,则该实例中存储的所有数据都将丢失。
这就是Google Cloud提供其他永久状态存储状态的原因,例如Datastore和CloudSQL。您也可以自己在Google Compute Engine上运行MongoDb。
答案 1 :(得分:0)
如果我在应用程序引擎上使用mongo docker映像作为服务会发生什么?
Flexible App Engine允许您使用docker映像来构建自己的应用程序,如本文档[1]所述:“ App Engine灵活环境实例是Compute Engine虚拟机,这意味着您可以利用自定义功能库,使用SSH进行调试以及部署自己的Docker容器。” 因此,在灵活的App Engine中使用自己的docker映像没有问题。
它将如何扩展实例?
App Engine中的每个活动版本必须至少具有一个实例来处理请求,在App Engine中有两种扩展实例的方式:自动和手动。
根据文档[2]所述: 自动扩展会根据请求率,响应延迟和其他应用程序指标创建实例。您可以为这些指标中的每一个指标指定阈值,以及可以始终保持运行的最小实例数。 手动缩放指定无论负载级别如何,连续运行的实例数。这样就可以执行诸如复杂的初始化之类的任务,以及随时间推移依赖于内存状态的应用程序。 配置这些功能的方法是通过app.yaml文件,建议您阅读本文档[3]
一致性会发生什么?
由于可以根据其负载配置App Engine扩展,因此可以在服务执行中提供良好的性能,并提供操作和资源优化的一致性。
[1] https://cloud.google.com/appengine/docs/flexible#features [2] https://cloud.google.com/appengine/docs/flexible/go/how-instances-are-managed#instance_scaling [3] https://cloud.google.com/appengine/docs/flexible/go/configuring-your-app-with-app-yaml