zoukankan      html  css  js  c++  java
  • Heroku:革命性的Rails托管服务

    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告诉我他们一开始就获得了付费客户,并且收费策略得到了投资商的支持。他们已经做好了为客户提供强大和持久服务的准备。

    原文网址:http://www.infoq.com/cn/news/2009/05/heroku-provisionless-revolution

  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/shitouer/p/2184119.html
Copyright © 2011-2022 走看看