如何将Google App Engine项目完全迁移到计算引擎?

时间:2017-11-08 05:21:21

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

We一直在使用Google App Engine作为项目的后端服务,该项目完全是作为Gooogle App Engine项目开发的。

最近,前端实例消耗了超过我们项目费用的60-70%。因此,我们决定完全取消它并转而使用Google Compute Engine。

想知道是否有人将他们的GAE项目迁移到GCE。我知道GCE VM可以在GAE应用程序中动态旋转,但我们想完全取消GAE。 (Source

作为最后一个选项,我将托管一个Django项目并使用GAE文件作为Web服务的控制器。

但是,想知道是否还有其他可能更容易的选项,可以将GAE项目移至GCE,同时保持数据存储集成的完整性。

TIA

1 个答案:

答案 0 :(得分:3)

不幸的是,标准环境支持应用程序的独特性可能会使您的迁移变得非常困难。

例如,标准环境和灵活环境之间存在显着差异(如果您愿意,这将是向完全迁移到GCE的中间步骤):Migrating Services from the Standard Environment to the Flexible Environment。对我来说,他们几乎是不同的野兽。

更糟糕的是,您认为迁移中最重要的事情 - 保持数据存储集成完整 - 也是最容易阻止迁移的

这是因为您的应用可能会使用dedicated client libraries中的一个,针对标准环境GAE应用进行优化并且仅适用于标准环境GAE应用。如果是这样 - 迁移实际上意味着重新设计与数据存储区的整个交互,以使其使用the more generic datastore libraries之一。这意味着不仅仅是翻译API调用 - 还存在需要解决的概念和功能差异。

所以标题问题的答案很可能是:为GCE重新设计你的应用程序。就个人而言,我不确定GCE总体上是否更具成本效益 - 我仍然更喜欢标准的env GAE。假设在某些时候成本上升到足以重新考虑,我会:

  • 仔细研究定价和当前的应用程序成本细分,看看哪些组件更重要:如果大部分成本来自,例如,从数据存储使用 - 我不希望迁移到GCE要大力帮助
  • 尝试调整应用程序的配置和/或代码以降低成本:例如,如果实例小时代表调整成本的大多数,则根据实际流量模式调整可扩展性配置可能降低费用
  • 估算类似使用模式的成本,但使用GCE(和/或GAE flex)上提供的相应组件
  • 如果相应的组件也可以在GAE flex上使用,我会使用它进行一些实验而不是完全GCE(这几乎需要先重写)。

使用灵活环境作为垫脚石的逐步过渡可以揭示估计的成本节约是否不存在,从而有助于在完成整个重写之前完成整个过渡。并且还可以帮助重写,以防转换仍然是“去”。

更新:可能是另一种考虑降低成本的解决方案:通过AppScale运行现有的GAE应用代码(另请参阅)更具成本效益IaaS提供商。