我们正在完成基于ASP.NET和WCF(适用于不同桌面客户端)的基于Web的时间跟踪软件。我们的客户可以注册一个账户,并将无限数量的用户添加到他们的账户中。定价与公司帐户中活跃用户的数量相关联。扩展托管的ASP.NET应用程序
为了使事情简单易行,我们认为如果我们将每个帐户设计为具有自己的应用程序池,SQL-Server数据库和子域的单个IIS网站,那么这将是一个很好的体系结构决策。
不幸的是我们很快遇到内存不足,由于单个工人进程将消耗至少150MB,这意味着,每审单账户需要约。 200MB以上内存...
除了这种架构的沉重成本(试行账户!),我们不知道它是不是缩放一个很好的决定,设计的建筑。
- 您将如何设计这样的 SAAS应用程序?
- 许多网站的单一应用程序池?
- 单一网站的许多帐户共享数据库?
- 垂直缩放(更多功率)水平缩放(更多服务器)?
- 任何有关此主题的好书籍或博客?
谢谢!
查看http://www.codeproject.com/KB/aspnet/ProdArch.aspx。它涵盖了处理SaaS正常运行时间的想法,并包含一些通用的架构演讲。 – Jemes 2010-09-01 01:17:07
客户与账户的比例是多少?我可能了解客户分段,但这并不能消除您的问题。你是否考虑过每个生产客户的“试用”池,也许是一个池? – 2010-09-01 13:48:55
1帐户 - 1个客户 1个帐户/客户 - N个用户 把所有的试用账户到一个应用程序池可能INFACT是相当大的解决方案,以保持内存消耗低。另一方面,它提高了整个系统的复杂性,还需要一个额外的工具,它会自动创建一个试用版激活的新应用程序池... – 2010-09-01 16:31:04