【问题标题】:Ruby on Rails: how to design a SaaS infrastructure?Ruby on Rails:如何设计 SaaS 基础架构?
【发布时间】:2011-08-05 19:33:54
【问题描述】:

我正在构建一个 Rails 3 应用程序,我计划将其作为基于订阅的 SaaS(软件即服务)产品提供。基本上,我希望用户能够点击我的“注册”页面,创建一个新帐户,然后立即开始使用该软件。

我想要完成的一个很好的例子是:http://www.getharvest.com/

当有人注册时,我需要这样做:

  1. 在 db 服务器上为他们生成一个 MySQL 数据库
  2. 创建了一个子域(例如 companyx.awesomeapp.com)
  3. 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


【解决方案1】:

Heroku 可以让您快速启动并运行。您可以使用 heroku gem 管理基础架构。 Here 是客户端的文档,它应该允许您远程管理 heroku 应用程序。使用 heroku 可以让您在单个级别上扩展应用程序,并让您专注于应用程序的代码而不是硬件。

【讨论】:

  • 谢谢!看起来 Heroku 可能是要走的路。如果我说得对,只要有人注册,我所要做的就是将我的 Rails 应用程序的新实例部署到具有不同子域的 Heroku,我就完成了。
猜你喜欢
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 2016-06-17
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多