SaaS应用程序是如何组织的?

时间:2010-04-27 07:25:31

标签: ruby-on-rails ruby design-patterns saas

将多个客户端的web(MVC,例如Rails)应用程序视为服务。

如何设计?

  • 每个客户端一个应用程序实例? (每个客户一个数据库)

  • 所有客户的一个实例(+所有客户的一个数据库)

前者很简单,但......“效率低下”。后者怎么样? (最佳实践,设计模式)如何分离客户数据?例如:客户“1”的工作人员“A”有两个文件,客户“2”的工作人员“B”有三个文件。如何构建模型关联以保护其他用户(和客户端)数据?我认为使用客户端模型加入每个查询都不是一个好的解决方案。

2 个答案:

答案 0 :(得分:0)

我建议您查看earlier response on multi-tenant apps in Ruby on Rails

这实际上取决于您的用例,但处理此问题的最简单方法是使用特定应用程序作用域的单个数据库。根据您的要求/预算,您可以从那里前往。

我是该链接中详述的postgresql架构系统的忠实粉丝:P

答案 1 :(得分:0)

这篇MSDN文章很好地解释了多租户数据架构。

可能很明显,但无论如何我都会注意到它;用于在cookie中存储客户端会话信息的Rails实例的默认配置有助于使所有应用程序实例同样能够为请求提供服务。

本系列中的

Another article在识别共享服务(如监控所需)方面也具有丰富的信息。