Google App Engine与Google Container Engine vs Google Compute

时间:2017-09-06 09:04:44

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

我有以下常见情况,我不确定哪种Google云端工具最适合。我是谷歌云的新手。

我有一个进程(收集器),它每隔N分钟从生产者收集数据并将其合并到数据库中。数据已发布,但在某种意义上是暂时的,如果收集器在几个时间段内没有收集它,则会丢失数据。收集器是一个全天候运行的后台进程,并具有用于诊断的终端日志记录接口。目前,收集器作为python脚本在服务器/ PC上运行,但我想将其移至云端。但是,我不确定是否需要将此脚本部署为Google App Engine上的Google应用程序或Container Engine上的docker容器,或者只是在计算引擎节点上运行它。

编辑:

我完成了我的研究,并在Google App Engine上部署了该脚本。但是,我的理解是,App Engine可能会运行应用程序的多个实例来扩展每次使用,它肯定已经这样做了。但是,如果我碰巧在笔记本电脑上启动了几个脚本实例,那么我最终不会在数据库中出现重复的条目。

2 个答案:

答案 0 :(得分:1)

有很多方法可以给这只猫打铃。

使用kubenaties显然很容易,但是你不需要使用容器引擎(可能过于昂贵),只为此。

如果你有一个包含监听pub-sub的脚本的compute-instance,你可以通过创建instance template来水平扩展它。 并选择根据处理器使用情况自动扩展。

无论你选择这样做,记录的重复性都与发布者有关,而不是订阅者(你的python脚本)

我永远不会将appengine用于这样的任务,即使你很容易在GAE中做到这一点,人们应该尝试只在前端有点角色使用它恕我直言

答案 1 :(得分:0)

以GAE为导向的答案。

理论上,缺少重复的DB条目可能是由于:

  • 一个经过深思熟虑的实现,专门用于防止此类重复,无论正在运行多少GAE实例:)
  • 意外 - 因为到目前为止你还没有看到它们并不意味着它们将来不会出现。

您可以通过使用max_instances配置设置为1的基本缩放来阻止多个GAE实例并行执行。来自Scaling types and instance classes

  

基本缩放

     

具有基本缩放的服务将在创建实例时创建   应用程序收到请求。该实例将被拒绝   应用程序变得闲置。基本缩放是理想的工作   间歇性或由用户活动驱动。

和表格中的Scaling行:

  

缩放

     

通过设置最大值来配置具有基本缩放的服务   。的 max_instances 参数中的实例数    basic_scaling 设置。实时实例的数量与   处理量。

另见Scaling elements