写点什么

Heroku:革命性的 Rails 托管服务

2009 年 5 月 29 日

Heroku 的 Rails 主机托管解决方案在历时一年的免费测试阶段之后,商业版终于在上周登场。他们宣称他们提供的是“无需准备的部署服务”,因为操作和扩展都是自动的,无需任何系统管理。虽然相较于其它服务商而言 Heroku 目前的价格较高,而且由于它(目前)基于 Amazon 的 EC2 云计算平台,因此相应地受到 Amazon 服务等级协议的限制,但我们认为他们提供的服务是可靠的,值得进行进一步研究。

上个礼拜我的两个工程师和我一起访问了 Heroku 的创始人之一 James Lindebaum ,以了解他对 Heroku 的看法。James 愉快地称他的公司是由一群 Ruby 爱好者组成的。一年半之前,他和他的合伙人 Adam Wiggins 和 Orion Henry 在得到了 YCombinator 的支持之后,致力于创建一个超级方便的 Rails 部署服务。我们认为他们所完成的工作无异于一场革命。

受益于 Heroku,Ruby 的 web 应用程序部署变得异常简单:所有的工作只是在终端上输入少许命令。无需邮件,无需电话,也无需技术支持(support ticket)。我们已经开始在 Hashrocket 使用 Heroku 来托管我们的内部执行环境,我可以证明,这是一种你从未经历过的部署体验。Heroku 一出现,Capistrano 即行将就木了。在完成注册,并在 Heroku 的云计算平台上创建一个新的应用实例之后,部署仅仅是一句:git push heroku master。

这个 push 命令触发了一个进程:把应用程序编译成一个独立的、只读的实例,在 Heroku 里它被称为“slug”。它会自动地进行测试来保证它能正常地启动。被依赖的 gem 会被自动安装,并且通过应用程序根目录下的一个.gems manifest 文件进行维护:这是与普通的 Rails 应用程序的唯一不同之处。同时需要指出的是,Heroku 也支持 Merb 和 Sinatra(实际上是任何一款 Rack)。

一旦 push 成功,slug 就在一个或多个 slot 中被实例化。这些 slot 将置于一个特殊设计的网格计算环境中,slug 在这个环境中可以访问数据库和缓存信息,并且开始启动。Heroku 唯一支持的数据库是 Postgres。据 James 说,Heroku 之所以目前不支持 MySQL,是因为它还不支持事务型数据描述语言(transactional DDL)的执行。

slug 激活后,就成为了一个拥有完整功能的 web 应用,它被称作“dyno” 。每个dyno 都是网格中服务器的一个单独进程,它包括了应用程序代码、框架、中间件、Rack、应用服务器、Ruby 虚拟机以及POSIX 环境。Dyno 使用的应用服务器是经过少许修改的Thin,系统分配给它250M 内存。

为适应不断变化的需求,Heroku 可以在网格中其它地方启动新的完全独立的dyno,或者关闭那些闲置的dyno。Dyno 的启动时间还不到2 秒,这足以证明Heroku 的平台空前的强大。为了满足更高需求而启动新的dyno 实例时,Heroku 特制的路由系统可以在把新的请求“冻结”。四个dyno 的计算性能相当于传统环境中的一台服务器的计算性能。

Heroku 的网格本身建于一个强大的云计算环境中,这样它可以根据需要的 dyno 数量方便地进行扩展或者缩减。网格上层是一个成熟的高并发路由网络,它承担了把请求分派至 dyno 的工作。还有一些额外的元件,比如 HTTP cache 和 memory cache,它们分别用来减少对 dyno 和数据库的访问。

据 James 说,Heroku 的路由网络是拥有专利的,并且是 Heroku 中一个很具创新性的部分。起始时路由网络被实现成 Nginx C-modules,一直工作地很好,直到 Heroku 上部署的应用超过了 10,000 个之后,性能开始吃紧。现在的路由系统是用 Erlang 编写的,并且工作得非常好。

Heroku 自身也托管于 EC2 的一组实例之上。我问 James,相比于直接使用 EC2,Heroku 的费用会贵多少。他发现他难以回答我的问题,因为 Heroku 包含一个完整的系统架构,每一个应用都需要复制成 6 或者 7 个 EC2 实例,所以要在两种服务之间进行价格比较是很困难的。另一方面,相较于 EC2 部署服务而言,dyno 方便的启动和关闭节省了很多管理费用。

Heroku 根据用户使用资源的数量来收取费用,它的定价模式适应所有层次用户的需求。有各种层级的价格来适应所有人的需求,高至每月百万级别访问量的企业级大型应用,低至入门级的用户。每月价格从几千美金到一百美金不到,而且 Heroku 为测试和快速原型提供免费服务。

Heroku 的服务在测试延长阶段已经经过了实战测试,那时在它上面部署了由 23,000 多名开发者开发的超过 25,000 个 Ruby 应用。保守估计,这已经使 Heroku 的使用量十倍于第二大的 Ruby 应用部署服务提供商。虽然商业版刚刚登场,但James 告诉我他们一开始就获得了付费客户,并且收费策略得到了投资商的支持。他们已经做好了为客户提供强大和持久服务的准备。(Heroku 在2008 年5 月得到了来自Redpoint 的300 万美金风险投资

查看英文原文: Heroku’s Provisionless Hosting for Rails Apps is Revolutionary

2009 年 5 月 29 日 01:328809

评论

发布
暂无评论
发现更多内容

SpringBoot分布式任务中间件开发 附视频讲解 (手把手教你开发和使用中间件)

小傅哥

小傅哥 中间件 springboot 分布式任务

架构第一课学习总结

师哥

食堂就餐卡设计说明书

架构师训练营-Week1-作业2

车小勺的男神

小师妹学JavaIO之:NIO中Channel的妙用

程序那些事

io nio 小师妹 buffer channel

LocalDateTime和Date的比较与区别

彭阿三

时间格式化 LocalDateTime Date

数据库周刊27丨6月最新国产数据库排行;OB成立新公司奥星贝斯;腾讯云发布图数据库TGDB;Oracle坏块修复;MySQL故障排查导图;经典SQL语句大全...

墨天轮

数据库

钟离昧的一梭子架构师之旅

X中倪

架构方法:架构师如何做架构

系统/子系统/模块/组件/框架/架构

gen_jin

30岁,就被大厂抛弃了

J.Spring

求职

关于UML、4+1视图、系统架构的思考

吴建中

游戏夜读 | 如何成长为游戏人?

game1night

架构师训练营第一周学习总结

0x12FD16B

清华大佬马士兵告诉你阿里巴巴P5到P8级需要掌握哪些技术?

周老师

Java 程序员 架构 微服务 马士兵

【第一周】学习总结

黑莓

量子技术到底有哪些突破值得重点关注?

蔡芳芳

Intellij IDEA 右击没有run

程李文华

架构师训练营第一周学习总结

常江舟

极客大学架构师训练营

【第一周作业】食堂就餐卡系统设计

黑莓

使用VSCode连接到IBM Cloud区块链网络

程序那些事

智能合约 hyperledger fabric ibm cloud

Android 无埋点从入门到放弃:了解 Java 字节码

GrowingIO技术专栏

独立开发者为什么不需要运营也能月薪几万,甚至几十万?

非著名程序员

程序员 独立开发者 副业赚钱 程序人生 提升认知

极客大学架构师训练营 听课总结 - 架构视图,设计文档 -- 第二课

John(易筋)

极客时间 极客大学 架构设计 极客大学架构师训练营 架构文档

架构师训练营-Week1-作业1

车小勺的男神

让独立思考成为习惯

Neco.W

学习 深度思考 思考

你并不理解i++和++i

flyhero

Java 程序员 JVM i++

架构师训练营--第1周总结感想

芥菜

玄姐公开课总结【构建基于ServiceMesh的普适业务中台架构】

魔曦

架构 Service Mesh

02-kubernetes自建CA及双向TLS认证

绿星雪碧

Kubernetes TLS CA证书

钟离昧的第一张架构设计图之旅

X中倪

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

Heroku:革命性的Rails托管服务-InfoQ