首页 文章

我应该在Heroku上部署我的Ruby on Rails应用程序[关闭]

提问于
浏览
9

关于我自己 . 我今年24岁,去年毕业于北卡罗来纳州立大学,获得硕士学位 . 统计,数学,那种事 . 我没有强大的编程背景,这对我的问题非常重要 . 如果我说任何没有任何意义的话,那就是原因 . 从毕业以来,我一直在与其他几个人一起在Rails应用程序上工作 . 我的编程经验主要是Ruby on Rails(1 . 2年 . )我知道R,SAS(统计语言,对这个问题没什么帮助 . )

显然,这意味着它已经开发了一年多,我们还没有完成 . 主要的开发人员是一个优秀的程序员,只是他已经有一份全职工作,并在业余时间做这个应用程序 . 由于他最近没有足够的时间,我已经完全负责该应用程序 .

我们现在部署在Slicehost上 . 该应用程序是我们不需要编程任何其他东西(除非我们想到更多的功能 . )我问我们是否应该迁移到Heroku的原因是,在我看来,Heroku是一个简单的平台,部署 . Slicehost对我来说似乎太复杂了 . 另一个开发人员处理它,而不是我 . 我看了如何在Heroku上部署应用程序,看起来我能够做到 . 如果需要,我们需要我们的应用程序扩展,Heroku提供 . 至于钱,我会在最低限度(免费)开始,看看它是怎么回事 . 如果需要,我可以支付额外的功能 .

我们正在使用Redmine进行项目管理和存储库(不是git,我认为我们需要在Heroku上使用它 . )git是否类似于Redmine?这个容易用吗?

现在,在Slicehost上,我们有4个守护进程(不断运行的进程 . )我们有8个delayed_job工作者 . 我知道启动守护进程和delayed_job工作程序的命令行 . 这些可以在Heroku上运行吗?

我想知道我是否仍然可以使用Heroku的RAILS_ENV = 生产环境 脚本/控制台 .

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

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

根据我的编程经验,Heroku是否足够容易让我使用,我应该找到另一份工作,还是应该让seppuku工作?

5 回答

  • 3

    是的,您绝对应该在heroku中部署您的应用程序 . 为此,您需要执行此操作:

    • 确保您的计算机中安装了 git

    • 创建一个heroku帐户here

    • 安装heroku gem并完成其余的工作in this page

    • 使用git跟踪您的应用程序,并创建您的heroku应用程序,如图所示here

    • 执行此操作后,heroku将为您提供应用程序的URL,例如 http://blah-bleep-123.heroku.com . 现在,下一步是将您的域与此heroku URL相关联 .

    • 配置域DNS服务器,如in this page所示 . 请注意,更改DNS后,最多可能需要48小时才能运行 . 您可以登录您购买域名的网站来更改您的域名DNS,例如godaddy.com,hostingdude.com等

    • 将此代码添加到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
    
    • 确保通过 heroku rake db:migrate 迁移heroku中的所有数据库

    • 完成所有这些步骤后,你应该做得很好 . 查看您的域名网址,一切都应该工作漂亮:) .

    • 如果您在页面中看到任何错误,可以通过 heroku logs 查看日志

    • 您可以访问控制台 heroku console

    有了这些功能,heroku非常方便使用 .

    如果您需要更多帮助,请告诉我 .

  • 3

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

    至于你的需求,你可以(我相信)在Heroku上运行你的redmine,作为rails应用程序 . 唯一的事情是你提到你使用Redmine作为“存储库”,我不确定我明白什么你的意思是,因为Redmine不是版本控制系统 . Redmine具有各种VCS(SVN,git,Mercurial,CVS等)的集成点 . 是的,Heroku使用git,这是你需要使用它来将代码推送到服务器 . 如果你熟悉Mercurial,它就非常相似 .

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

    您应该能够访问Rails控制台(see heroku docs) . 只要运行'heroku console'瞧,你就在那里 .

    如果您的应用程序通过运行脚本/服务器工作,它也应该在heroku中开箱即用 .

    至于DNS,让它与您的自定义域一起使用并不难 . 开箱即用,您可以使用appname.heroku.com访问您的应用程序,以设置您的自定义域检查heroku docs here,但基本上您必须添加自定义域加载项(除非您需要子域名,否则免费),配置heroku以响应到您的域名's requests (couple of simple commands) and set your DNS provider to point to Heroku (there'甚至是关于如何使用GoDaddy执行此操作的文档中的简短视频) .

    我在Heroku看到的唯一缺点是,如果你的应用程序在很长一段时间内没有收到任何流量,那么这些实例就会“进入睡眠状态”,使下一个请求到达有点慢(有时甚至超时),但一旦实例醒来,一切都很好 .

    总而言之,我认为Heroku是一个很好的方式,可以减轻你作为开发人员的负担,使很多东西很容易实现,而不必深入了解设置服务器的细节 . 缺点:一旦你开始成长,它可能会变得有点贵,但是嘿,如果你正在增长它可能意味着你现在有现金雇用一个可以照顾细节的人 .

    您可能还想看一下比较Slicehost和Heroku的this blog post

    祝你好运

  • 6

    是的,去吧 .

    如果你' then you'编程经验' then you'就好了 . 有信心并发货!引用Paul Graham

    快速推出的原因并不是让你的产品尽早上市至关重要,而是你在推出之前还没有真正开始研究它 . 启动会告诉您应该构建的内容 . 直到你知道你在浪费你的时间 . 因此,您发布的任何内容的主要 Value 都是吸引用户的借口 .

    您概述的功能很容易复制,并且可以免费开始 . 还有什么可以要求的?

  • 1

    如果你有空闲时间,你可以注册一个免费帐户并试一试 .

    但是,这会带来一些非常严重的问题 .

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

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

  • 1

    是的,去吧 .

    其良好的部署环境,任何快速简便的扩展和扩展功能 . 即使您可以用于测试或演示,它为您提供每个应用程序1个dynos的免费帐户使用 .

    可根据您的要求添加的附加工具列表 .

相关问题