一个应用程序或多个应用程序或单一登录?

问题描述:

我很快就开始了一个新项目的工作,并想知道是否要创建多个应用程序(几乎每个副本)或一个应用程序(或使用某种类型的单一登录)。每个“应用”都有自己的域名。一个应用程序或多个应用程序或单一登录?

这些应用程序非常简单,人们可以注册该网站并为他们的猫或狗创建个人资料。但是,由于有些人有猫和狗,所以不要让他们注册两次。另外,我想很多用户也想扩展到其他宠物,比如兔子,老鼠,雪貂等。

这将是一个Rails应用程序,所以我想知道我的选择是什么。

  • 一个单一的应用程序将是最简单维持
  • 多个应用程序可能意味着更容易“分裂”的网络,即出售它的一些(尽管我怀疑我会做到这一点)

但是哪个效率最高?缓存会有什么问题吗?哪个最有意义?

如果您有任何链接或有关如何去您的首选方法的信息,那也将不胜感激!但在这个阶段,我主要问的是哪个是最合乎逻辑的方法。

+0

如果应用程序是相似的,我猜数据模型也是如此,因此我会推荐一个应用程序与一个登录。你可以很容易地使用多态和HABTM关系。 – rlecaro2

总是比较少,尤其是在项目早期。

我已经学会了永不拆分代码库,直到它绝对明显地表明它必须完成。

制作2个应用程序意味着在很多方面做了两倍的工作。两个bundle exec rails server运行,两个bundle exec rspec运行,cd ..,cd web_app1,cd web_app2一遍又一遍。

您还必须部署两个应用程序。

因此,制作一个应用程序。稍后将其拆分,如果需要的话。

如果它们在同一个子域中,则可以共享cookie并轻松实现SSO。

并没有理由不能使用类似nginx的东西来将它们放在完全独立的域之后,作为部署考虑。

如果你打算在每个域上有一个单独的应用程序的多个域,你可以有一个“*”域(或服务器),可以容纳所有共享资源(图像,CSS,JavaScript,数据等),并提供负载平衡和提高性能的能力。连接一切并保持全部运行可能需要很多工作,所以这取决于你的情况。