2011-08-17 282 views
8

关于我自己。我今年24岁,去年在北卡罗来纳州立大学以分析硕士毕业。统计学,数学,那种事情。我没有很强的编程背景,这对我的问题非常重要。如果我说什么都没有意义,那就是为什么。自毕业以来,我一直在与其他一些人一起开发Rails应用程序。我的编程经验主要是Ruby on Rails(1.2年)。我知道R,SAS(统计语言,对这个问题没有帮助)。我应该在Heroku上部署我的Ruby on Rails应用程序

很明显,这意味着它已经过了一年的发展,尚未完成。主要的开发人员是一名出色的程序员,只是他已经有一份全职工作,并且在业余时间使用这个应用程序。由于他最近没有足够的时间,我几乎完全负责应用程序。

我们现在将它部署在Slicehost上。该应用程序正处于我们无需编程其他任何东西的地步(除非我们想到更多功能)。我问是否应该迁移到Heroku的原因是,在我看来,Heroku是一个简单的平台部署。 Slicehost对我来说似乎太复杂了。另一位开发人员处理它,而不是我。我研究了如何在Heroku上部署应用程序,看起来我可以做到这一点。如果需要,我们需要我们的应用程序进行扩展,Heroku提供。至于金钱,我会从最低限度(免费)开始,看看它是如何发展的。如果需要,我可以支付更多功能。

我们正在使用管理平台项目管理和仓库(不是蠢货,我认为我们需要在Heroku上使用。)是git的类似管理平台?这个容易用吗?

眼下,对Slicehost,我们有4个守护进程(不断运行的进程。)我们有8名delayed_job的工人。我知道命令行来启动守护进程和delayed_job工作。这些对Heroku有效吗?

我想知道如果我仍然可以使用RAILS_ENV =生产脚本/控制台的Heroku。

用户界面是一个JavaScript文件。在开发模式下,如果我在终端中执行脚本/服务器,并在浏览器中转到http://localhost:3000,我可以看到它。 Heroku会以我想要的方式加载此页面吗?

我们有一个适用于该应用程序的工作网站,并带有我们自己的域名。我真的不知道DNS是什么,所以我可能无法将Heroku应用程序链接到它,除非有一个简单的方法。我认为Heroku将它作为默认链接到appname.heroku.com。

根据我的编程经验,将Heroku的容易够我用,我应该另谋高就,或者我应该做seppuku?

+0

是的。所有的顾虑都覆盖:) – tybro0103

+1

_The应用程序是在一个地步,我们并不需要任何编程else_ -famous遗言 – Brian

+0

Heroku的是好的,但我建议OpenShift - 在这里看到我的帖子 的http:// stackoverflow.com/questions/17727788/deploying-ruby-on-rails-is-there-a-good-alternative-for-heroku – obenda

回答

5

是的,你一定要部署的Heroku应用程序。要做到这一点,这是你需要做什么:

  1. 请确保您有安装在您的计算机混帐
  2. 创建Heroku的帐户here
  3. 安装Heroku的宝石和完成剩下的作为提到in this page
  4. 跟踪与git的应用程序,如图所示here
  5. 创建你的Heroku应用程序执行此操作后,Heroku上会为您提供为您的应用程序的URL,例如如http://blah-bleep-123.heroku.com。现在,下一步就是将您的域名与此heroku网址相关联。
  6. 如图所示配置您的域名DNS服务器in this page。请注意,在您更改DNS后,它可能需要长达48小时才能正常工作。您可以通过登录您购买域名的网站来更改域名DNS,例如godaddy.com,hostingdude.com等
  7. 将此代码添加到您的ApplicationController。您可以从this page遵循这一以及

    class ApplicationController 
        before_filter :ensure_domain 
    
        APP_DOMAIN = 'www.mydomain.com' 
    
        def ensure_domain 
        if request.env['HTTP_HOST'] != APP_DOMAIN 
         # HTTP 301 is a "permanent" redirect 
         redirect_to "http://#{APP_DOMAIN}", :status => 301 
        end 
        end 
    end 
    
  8. 确保您,迁移所有数据库中的Heroku做heroku rake db:migrate
  9. 完成所有这些步骤之后,你应该是不错的。看看你的域名网址,一切都应该工作得很好:)。
  10. 如果你看到在你的页面的任何错误,你可以通过heroku logs
  11. 查看日志您可以访问控制台heroku console

有了功能,因为这些,Heroku的是非常方便的工作。

如果您需要更多帮助,请让我知道。

+0

I通过第4步完成,我有一个问题。我的Heroku耙分贝:迁移和我得到这个,因为我需要一些宝石的特定版本: 缺少这些必要的宝石: 的delayed_job〜> 2.0.7 引入nokogiri 运行'耙宝石:install'安装缺少宝石。 我所做的: Heroku的耙宝石:安装 运行'耙宝石:install'安装缺少的宝石。 gem install delayed_job --version“〜 - > 2.0.7” 错误:执行gem时...(Gem :: FilePermissionError) 您没有写入/usr/ruby1.9.2/lib/ruby/gems/1.9.1目录的权限。 – Eric

+0

我不小心提交了,并且无法完成编辑。有什么方法可以在Heroku上使用某些特定版本的宝石? – Eric

+0

另外,我无法访问控制台: heroku控制台 您的应用程序太忙而无法打开控制台会话。 控制台会话需要使用开放式测试仪才能执行。 我认为它带有一个免费的测功机。我应该做什么来设置它? – Eric

3

在我看来,你应该认真考虑Heroku。我已经将它用于周末项目,并且我们在工作中也很成功地使用它。部署是一件轻而易举的事,你不必担心安装(大部分)和系统管理。添加模块和“随着成长付费”是非常容易的。

至于你的需求,你可以(我相信)运行在Heroku自身管理平台,是一个Rails应用程序。唯一的问题是,你提到你使用Redmine作为“存储库”,我不确定我是否明白你的意思,因为Redmine不是一个版本控制系统。 Redmine具有各种VCS(SVN,git,Mercurial,CVS等)的集成点。是的,Heroku使用git,这是你需要用来推送代码到服务器。如果你对Mercurial很熟悉,那很相似。

对于延迟工作,Heroku的提供,每天和每小时那些收费运行一次免费cron作业(见cron add-on)。还有一个延迟作业插件(see this),但我没有任何经验。

您应该可以访问Rails控制台(see heroku docs)。只要运行'heroku控制台',瞧,你在那里。

如果您的应用程序通过运行脚本/服务器工作,它应该可以在heroku中使用。

至于DNS,让它与你的自定义域一起工作并不难。开箱即用,您可以通过appname.heroku.com访问您的应用,设置您的自定义域名检查heroku docs here,但基本上你必须添加自定义域加载项(除非你想要子域名才能免费),配置heroku以响应到你的域名的请求(几个简单的命令),并设置你的DNS提供商指向Heroku(甚至有关如何与GoDaddy做到这一点的文档中的短视频)。

我用Heroku看到的唯一缺点就是,如果你的应用程序在延长的时间内没有收到任何流量,那么这些实例就会“去睡觉”,使得接下来的请求会有些缓慢(有时甚至超时),但是一旦实例醒来,一切都很好。总而言之,我认为Heroku是一种很好的方式,可以让你作为一个开发人员减轻很多负担,并且使得很多事情很容易实现,而不必进入设置服务器。缺点是:一旦你开始增长,它可能会变得有些昂贵,但是,嘿,如果你在增长它可能意味着你现在有现金来雇用能够照顾到本质的人。

你可能也想看看this blog post其中比较Slicehost和Heroku的

最佳卢克斯

+1

“去睡觉”的问题可以用pingdom的免费版本来解决:) – Brian

3

是的,去吧。

如果你迄今为止已经掌握了'编程经验'的优势,那么你会没事的。有一些自信和运送的东西!引述Paul Graham

The reason to launch fast is not so much that it's critical to get your product to market early, but that you haven't really started working on it till you've launched. Launching teaches you what you should have been building. Till you know that you're wasting your time. So the main value of whatever you launch with is as a pretext for engaging users.

你轮廓容易被复制的功能和well documented,它是免费开始。你还能要求什么?

1

如果你有空闲时间,你也可以注册一个免费帐户并给它一个镜头。

然而,这将带来一些非常严重的头痛。

版本控制将是一个,因为heroku使用git,但另一个没有人提到的是,你的12个进程(在heroku中的“dynos”说)会花费你每月35美元* 11 = 385美元!你可以设置一个每小时$ 3的cron来刷新你的delayed_job队列(而不是让工作人员一直运行),但是这足够了吗? (如果你运行8名工人,我猜不是)。这可能需要或可能不需要一些代码更改。

设置完成后,部署和管理员非常容易(不存在),但是如果您开始需要新功能,则会花费您的成本。

1

是的,去吧。

其良好的部署环境任何其快速轻松的扩展和扩展功能。 即使您可以使用您的测试或演示用法,它也为您提供每个应用1个dynos的免费帐户使用。

根据您的需求可添加的附加工具列表。

相关问题