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

时间:2014-01-20 18:44:35

标签: ruby-on-rails ruby-on-rails-4 postgresql-9.2

我很快就开始了一个新项目的工作,并且想知道是否要创建多个应用程序(彼此的相当多的副本)或一个应用程序(或使用某种单点登录)。每个'app'都有自己的域名。

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

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

  • 单个应用程序最容易维护
  • 多个应用程序可能意味着更容易“分裂”网络,即出售其中一些(我怀疑我会这样做)

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

如果您有关于如何进行首选方法的任何链接或信息,那也是值得赞赏的!但在现阶段,我主要是询问哪种方式最合乎逻辑。

2 个答案:

答案 0 :(得分:1)

总是更少,特别是在项目的早期。

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

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

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

所以,制作一个应用程序。如果需要,稍后将其拆分。

如果它们位于同一子域中,您可以共享Cookie,并轻松实现SSO。

作为部署考虑,没有理由不能使用像nginx这样的东西将它们放在完全独立的域之外。

答案 1 :(得分:0)

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