Architecture 多Rails 3.2应用程序/引擎的体系结构

Architecture 多Rails 3.2应用程序/引擎的体系结构,architecture,ruby-on-rails-3.2,Architecture,Ruby On Rails 3.2,我来自Java世界,是Rails的新手。我开发了一个中等大小的Rails 3.2业务应用程序。现在是开发第二个应用程序以及门户应用程序的时候了,它允许用户访问这些应用程序并提供管理用户和角色管理 单点登录是一种需求登录到门户,然后能够访问您有权访问的应用程序,并且有许多基本的域模型需要在应用程序之间共享。此外,应用程序使用的大多是相同的gems和相同的CSS 所有应用程序都将驻留在同一台服务器上,并且可以共享一个数据库。有两名开发人员在使用这些应用程序,但一次只能使用一个应用程序,即没有超过1人

我来自Java世界,是Rails的新手。我开发了一个中等大小的Rails 3.2业务应用程序。现在是开发第二个应用程序以及门户应用程序的时候了,它允许用户访问这些应用程序并提供管理用户和角色管理

单点登录是一种需求登录到门户,然后能够访问您有权访问的应用程序,并且有许多基本的域模型需要在应用程序之间共享。此外,应用程序使用的大多是相同的gems和相同的CSS

所有应用程序都将驻留在同一台服务器上,并且可以共享一个数据库。有两名开发人员在使用这些应用程序,但一次只能使用一个应用程序,即没有超过1人的团队

似乎有三种方法可以构建此架构,而不必将公共数据访问作为服务公开:

单个巨型应用程序,通过模块和路由模型、控制器和视图来命名。单吉特回购

用于门户的单个轻量级master rails应用程序,包含共享模型、视图和控制器。每个业务应用程序都实现为一个可安装的Rails引擎。主应用程序和每个引擎的git回购

具有共享模型、视图和控制器的单个完整引擎。门户和每个业务应用程序的Rails应用程序都引用了完整的引擎。该引擎可以包含我猜想的所有模型,比如一个共享的JavaDAO库。完整引擎和每个应用程序的git回购

类似Java的方法是3,这似乎是最合理的方法。从我所读到的内容来看,2当然是可能的,尽管引擎旨在用于增强主应用程序的通用功能,例如。我以前见过1个被实现,但对于门户+多个web应用架构,不是2或3个。将我们现有的应用程序转换为引擎是痛苦的,但也是可能的

拥有一个大型应用程序和一台服务器有一定的便利性:例如,简化了部署。但这确实意味着应用程序不在它们自己的repo中,对代码的任何更改都需要重新部署整个代码库。这似乎适用于将较小的应用程序组合成单个大型应用程序,但我怀疑它是否能扩展到较大的商业应用程序,即使它们共享许多模型

除了文章和文章之外,关于这方面的信息似乎很少。希望有经验的Rails开发人员/架构师提供一些指导