在 Google Compute Engine 上提供大型 django 应用程序的最合适方法有哪些?

What are some of the most appropriate ways for serving a large scale django app on Google Compute Engine?

我正在从事一个项目,该项目可能会有很多用户上传的内容以及相当大的用户群。我现在正在寻找将此应用程序部署到 Google Compute Engine 的方法。

我已经查找了可能的选项,nginx+gunicorn 似乎是一个不错的选择。一开始我将使用带有 100 GB 永久硬盘驱动器和 google 云 sql 的单个 ns-1 实例来为我的数据库提供服务。

但我想让事情变得可扩展,这样我就可以在未来毫不费力地添加更多的实例和磁盘存储。但是我很困惑该怎么做。所以主要关心的是。

我想要这样的设置,这样我就可以扩展我的磁盘 space 但没有。 Google 计算实例,只要我想。

一个简单的方法是在 Google App Engine 上 运行 一个 Python 应用程序,它将自动扩展您的实例(向上和向下)并且它支持 Django,正如 @spirulence 在评论中提到的那样。

以下是一些起点:

最后的 link 显示当前支持哪些 Django 版本。

为了拥有一个完全可扩展的架构,一个好的方法是将计算/服务与文件存储分开,并且两者都与数据存储分开。一部分一部分:

  • 文件存储 - Google 云存储 - 通过将常用服务文件存储在 GCS 存储桶中,您将获得一个高度冗余且可扩展的中央存储库;

  • 数据存储 - Google 云 SQL - 给你一个高度可靠,可扩展的类似 MySQL 的数据库后端,可以随意调整大小以适应不断增加的数据库使用量;

  • 前端 - GCE 实例组 - 模板生成的网络/计算前端,设置一个资源池,转发规则(负载均衡器)将传入连接分配到该资源池中。

简而言之,这是我能想到的最具适应性的设置之一,同时您可以控制服务和底层基础架构的各个方面。