根据以下 Stack Overflow 问题:Django 是否可以扩展?Django 非常适合预计每天/每月有数千名用户的网络应用程序,但是要实现这一点,您必须有正确的设计。
现在我的情况如下:
我刚刚加入一家初创公司,担任技术主管/首席开发人员,虽然我有 3 年的 Django 经验,但我从未将它用作大型应用程序。我参与的最新大型应用程序使用了 Zope,并依靠 SQL Server 来处理缓存等(我认为这是可怕的做法)。鉴于这家初创公司成立 6 个月后现在只有大约 20,000 名用户,而且他们在雇佣我的同时还雇佣了一名营销专家,我可以预期(或至少希望预期)一个增长机会. 许多现有的 Django 代码需要重构;即使用静态html表单而不是ModelForm等。
我的问题是:当我重构这个应用程序时,我应该遵循哪些设计模式才能正确完成它,以便我们可以扩展到每月 100,000 到 500,000 个用户?我应该注意哪些问题?在模型设计方面,什么是可扩展模型设计?在数据库支持方面,什么样的数据库设置可以帮助我实现这种可扩展性?在负载均衡方面,什么样的架构适合负载均衡?
我假设使用开箱即用的 Django,不会实现这一点,而且我不想发现自己处于需要聘请可扩展性专家的情况......我也想知道有哪些负载我可以用来测量当前性能/可扩展性的测试技术/工具?我才和他们在一起几天,所以我还不确定 prod 环境,所以如果我觉得我需要更改 prod 环境,有什么好的选择(云解决方案),合适但负担得起吗?
编辑:他们似乎也在使用 Ajax,这让我很担心。假设我无法说服他们改变这一点,那么有哪些好的 Ajax 技术库(我知道 django-dajax/dajaxice)可以使用并且仍然具有可扩展性。
谢谢,
山姆