【发布时间】:2011-08-05 19:33:54
【问题描述】:
我正在构建一个 Rails 3 应用程序,我计划将其作为基于订阅的 SaaS(软件即服务)产品提供。基本上,我希望用户能够点击我的“注册”页面,创建一个新帐户,然后立即开始使用该软件。
我想要完成的一个很好的例子是:http://www.getharvest.com/
当有人注册时,我需要这样做:
- 在 db 服务器上为他们生成一个 MySQL 数据库
- 创建了一个子域(例如 companyx.awesomeapp.com)
- Rails 应用程序应该根据子域知道要连接到的适当数据库
有没有什么好的指南来设置这些东西?更好的是,您可以购买哪些服务来自动化此类事情?理想情况下,我只想担心编写我的 Rails 应用程序,然后能够将它部署到一些很棒的 Rails SaaS 基础架构上。
(另外,我需要一种每月向他们收费的方法,但我认为这是一个单独的问题/问题。)
【问题讨论】:
-
我并不是要冒犯你,但在 MySql 服务器上创建子域和数据库之类的事情有点基本。也许您应该在尝试为它们编程之前阅读您计划使用的技术。它会为您节省很多挫败感。
-
@Devin 对。我知道如何手动完成所有这些工作。我什至可以推出我自己的一套脚本来自动化这个过程。我想知道是否有可以将我的 Rails 应用程序插入到这种类型的东西的预构建基础架构。
-
您正在查看 Heroku、Amazon Web Services 或 Softlayers CloudLayer。如果你想做的只是像 GetHarvest 这样的事情,我不明白为什么这需要如此复杂。您应该只需要一个数据库,并且子域可以由应用程序使用全面的 DNS 记录进行管理。
-
应用程序的构建方式,每个数据库一个帐户。例如,
Users表中填充了用户您的 your 帐户。我可以将所有表更改为具有account_id字段并修改应用程序以始终基于该字段进行查询,但这有点太晚了:-)。 -
嗯。在 Rails 中,多租户似乎超级很容易。重新考虑该应用程序可能是值得的。找到这个:samuel.kadolph.com/2010/12/simple-rails-multi-tenancy
标签: ruby-on-rails saas