用于管理应用的应用(架构)

时间:2016-04-09 12:14:51

标签: ruby-on-rails architecture

我知道这将是一个非常广泛的问题,我很确定这在今天的世界里并不是什么新鲜事,但我现在真的不知道从哪里开始。

我开始研究基于rails的服务,该服务允许用户创建,配置和管理他们的项目(具有自定义功能的单个应用程序的基本副本)。这些项目将在子域上运行,并可选择连接自己的域。 (与SquareSpace和Wix以及许多其他网站构建服务处理其网站的方式非常类似)

我希望这些项目尽可能灵活和可定制(包括可视化设计,一些其他功能等),同时保持代码库本身的易于设置和更新。

所以我开始提出问题:

  1. 每个项目应该是一个单独的应用程序(基本上是一个副本 同样的repo)有自己的配置,数据库,nginx和独角兽 配置等,或者我应该将所有内容保存在1个应用程序中并区分它们 使用不同的配置,可能还有数据库和资产?
  2. 如果保持一切分开会更好......
    1. ...什么是最好的设置过程(前提是我有基本配置开始)?
    2. ...我怎样才能从一个地方更新所有内容(包括错误修正,新功能,性能改进等)?
  3. 如果我将所有项目保留在同一个应用程序中......
    1. ...我应该如何管理项目之间的配置可靠性?
    2. ...如何分离数据和资产?
  4. 与往常一样,我感激能得到足够的帮助。

1 个答案:

答案 0 :(得分:1)

考虑多租户架构。我们已经有效地将它用于fleet-genius.com。

以下链接从Rails的角度提供了对架构的良好概述。

http://blog.elbowroomstudios.com/zero-to-multitenant-in-15-minutes-a-rails-walkthrough/