这些年来,我主要使用整体Web应用程序,没有花太多时间研究Django高可用性扩展解决方案。
[在hub.docker.com上有很多NGINX / Postgres / Django / Docker构建,但是我发现这不是可伸缩Django Web应用程序的良好起点。
理想情况下,Docker项目将包括:
不幸的是,我对Kubernetes和Docker群没有太多经验。
如果没有,则可以将其作为下一个github.com项目。
谢谢你。
这是一个非常广泛的要求。它取决于许多因素:
性能要求是什么?
请确保,您确实需要这种缩放比例。在大多数情况下,具有docker-compose的单个良好服务器即可满足您的需求。如果要减少停机的风险,请创建2台服务器,在它们之间添加负载均衡器,然后将共享服务(如DB或缓存)提取到另一服务中,并让两个服务器实例都使用它们。
您想如何运行您的应用程序?
Docker-Compose:
[如何在单个服务器上使用docker-compose进行结帐https://github.com/pydanny/cookiecutter-django。
Kubernetes:
Django在Kubernetes上运行非常好,我在Kubernetes上运行了几个应用程序。问题在于,您需要正确设置所有其他服务(redis,DB,ElasticSearch等)。这些服务中的每一个都独立于您的主要Django应用程序运行,并且需要通过haystack
或python-redis
之类的库进行连接。
Heroku和其他
[还有像Heroku这样的提供程序,它们提供了很多自动缩放的价格。如果价格不太重要,请选择这些解决方案,因为它们非常易于设置和维护。
您的数据库应具有多大的可扩展性?
如果您尝试跨不同的服务器/区域设置自己的数据库集群,则将花费大量时间来构建和维护它。我建议使用像AWS RDS这样的数据库服务。他们为您轻松设置和维护。您可以配置应具有的可伸缩性。它要花一些钱,但这是最省力的解决方案。