Ruby语言的云端运算平台:Heroku

发布时间:2020-06-08 | 作者: | 来源:http://www.444baoma.com/info_75354.html

Ruby语言的云端运算平台:Heroku

Ruby语言的云端运算平台:Heroku

你的网站是否曾经遇过下列状况?

  1. 面对突如其来的流量,主机一时承受不了便导致服务中断、当机,错失许多宝贵的商机。
  2. 为了应付各种可能的状况,公司帮你的部门準备了很好的机器,但平常使用率极低
  3. 已经预料到下个月要进行的行销活动将会带来大量访客,但却无计可施,到底是要从程式优化做起还是调整架构、採购设备做起?
    涉及採购的话又要看有没有预算,即使有预算,为了一次活动添购机器,结束后机器使用率是非常低的,不如把这些钱当成 IT 人员的绩效奖金。

如果你曾经遇过上述情况,或许你需要的就是这个年代最热门的名词:云端运算。云端运算没有唯一解,也未必是最佳解。今天笔者要分享的是众多云端运算架构的其中一个选择:Heroku。

笔者曾在过去的几篇文章提过 Heroku 这个有趣的平台:

以上三段介绍点出了 Heroku 的两个重点:

Heroku 目前不仅是全球知名的云端服务提供商,也经常是被人们拿出来谈论的 YCombinator 成功案例。

Heroku 服务起源

Heroku 最早在 2007 年产品上线并且开始提供服务,当时提供的服务定位与现在非常不同,笔者曾在 2007 年底撰写过一篇 Heroku:线上撰写 Rails 程式初体验 ,你可以发现当时 Heroku 的产品诉求为提供一个可以让程式设计师直接在网页介面中撰写 Rails 程式的平台,然而当时使用的印象并不十分良好,绑手绑脚的开发环境,实际上一个複杂的 Web application 大概很难在那样的环境达成;如果不用 Heroku 提供的开发环境,只是单纯使用 Hosting 的话,实际上也不是挺好用。也因此,在这个阶段,Heroku 对于许多使用 Ruby/Rails 的应用程式开发者来说,就是一个免费的主机环境。

Ruby语言的云端运算平台:Heroku

从上图我们可以发现 Heroku 的应用程式数量有着稳定的成长,在 2009 年的一月份,Heroku 部落格上发表了一篇重要的公告 ,上面提到 Heroku 平台上已经有超过 20,000 个应用程式,从企业用软体到 Web 2.0 网站、iPhone 应用程式的后台等各种用途的应用程式都有,各式各样的应用程式都在 Heroku 平台上持续稳定的提供服务,这同时也是给 Heroku 经营团队最好的测试环境。

在这段期间,Heroku 团队发现人们要的其实是一个稳定的商用平台,同时间 Heroku 也发现他们还要持续开发更多大家想要的功能,当然也必须移除一些根本用不到的功能。Ruby on Rails 的线上开发环境显然就是被移除的功能,当时 Heroku 将原有的线上开发环境移到 HerokuGarden,也就是说,当初 Heroku 认为最重要的功能之一在历经了一年多的努力后,市场证明了这其实是不需要的。

笔者在 关于创业,你必须知道的 13 件事 曾经提到:

显然,Heroku 在产品上线后,发现提供一个免费的 Ruby on Rails 线上开发环境并不重要,大家感兴趣的是云端的平台、方便的部署以及可以让大家付钱买到更多资源的服务,对 Heroku 团队来说,这肯定是在正式上线前都没有机会的。记住:产品上线后才是真正的开始。

Heroku 平台现况

Heroku 本身是架构在 Amazon 所提供的云端架构上,对于不想将心思或人力投入在系统管理、架构上,但又希望可以使用 Amazon EC2 云端服务的团队来说,Heroku 是个很好的选择,你可以将心思专注投入在应用程式开发上,而不用担心如何去处理 Amazon 云端架构的设定与管理。

目前 Heroku 上共有超过 85,000 个应用程式,许多 知名的服务都在上面运作 ,包括:

只要你是开发 Ruby on Rails 或是其他 Rack-based 的应用程式,你就可以将服务部署到 Heroku 上,简单易用的后台可以让你轻鬆的调整服务目前分配到的资源,画面如下:

Ruby语言的云端运算平台:Heroku

只要滑鼠轻鬆点个几下、拖曳画面右方的 Dynos 设定,就可以完成资源的调整;画面上也会即时算出目前所分配到的资源预估的每月花费。然而,以 Dynos、Workers 来说,都是以「每小时计价」的,也就是说当服务的流量已经撑过高峰并开始下滑,可以视预算或实际资源的需求,随时调整 Dynos、Workers 的设定来控制每月的成本。

持续进步的 Heroku

Heroku 在早期提供的服务还不多,例如想要发送邮件、进行排程作业、连接自有的资料库,不过显然随着募资、营收增加,Heroku 已经有越来越棒的服务,举例来说,在 Heroku Add-ons 可以看到以下服务:

持续进步的 Heroku,在最近还推出了各种 NoSQL 的服务,包括:

另外也有像 Nezumi 这样的应用程式,可以协助你在仅有手持装置

你可以试算看看,自己要提供的服务规模、长期的主机成本与维护成本,以及在流量成长过程中将心力投入在调整机器架构、效能的成本,有些人或许会觉得 Heroku 乍看之下很贵,但笔者认为如果在人力有限的情况下,应该让人力投入在真正重要的事情上,Heroku 或许是个不错的选择。