BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Gregg Pollack和他的Scaling Rails教学视频

| 作者 Robert Bazinet 关注 0 他的粉丝 ,译者 李明(nasi) 关注 0 他的粉丝 发布于 2009年8月25日. 估计阅读时间: 10 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Ruby on Rails从发布之日到现在短短几年的时间里一直表现上佳,不过在其可扩展性上人们也颇有微辞。开发人员都很清楚任何问题都有正确和错误的解决方法,Scaling Ruby on Rails也不例外。

Rails Envy播客envycasts的Gregg Pollack与New Relic合作,制作了一系列关于Ruby on Rails扩展性话题的教学视频,名为Scaling Rails。Gregg Pollack居住在Florida的Orlando,就职于他自己的公司Rails Envy,从事教学多媒体的制作工作。他活跃于Orlando的技术社区,并帮助组织了BarCampOrlando、Orlando的Ruby Users Group以及Colab──Orlando的首个协作空间。

InfoQ获得了一次采访Gregg的机会,就其最新发布的视频教学,以及这些视频将如何帮助开发者扩展Ruby on Rails进行了采访。

Robert Bazinet(RB): 我看了envycast系列的介绍,这个系列最初的主题便是可扩展性,现在推出了Scaling Rails这个新系列。这是个巧合么?

Gregg Pollack(GP):几个月前我想 做一些关于Scaling Rails的envycast。不过,我意识到还是应该先从基础开始,这就是为什么我首先发布了”Scaling Rails“的envycast。当时准备接着制作的envycast就是”Scaling Rails“,我真是非常幸运,得到了New Relic的赞助,让我可以免费在它们的Rails Lab上发布我的视频。

RB: 什么原因让你最终决定来做这个Scaling Rails系列?

GP:有下面几个原因:

  • 为Rails开发者提供成功开发可扩展的Rails应用所需的所有技术资料。开发者可能从不需要使用这些技术,但是这些视频有望让他们信心十足地向客户保证:我们能够开发出同时处理数百万用户请求的Rails应用来。
  • 让其他语言的开发人员看到Rails应用的可扩展性是多么容易实现。
  • 一些企业仍然存在”Rails扩展性不好“的观念, 这个系列有望进一步改变他们的这个错误观点。现在任何一个Rails开发人员都可以指着Scaling Rails视频说:你看,Rails完全可以做到可扩展,就是这样实现的。

RB: 什么促使你产生了envycast这个想法,后来还制作了Scaling Rails?

GP: 我有两个最大的兴趣:一个是影片制作,另一个是网站开发。Envycast刚好能够将这两者结合起来,而且还可能赚到足够的收入来抚养我的孩子们。老实讲,我并没有因为这些视频大赚一笔,如果做包工我会赚得更多。不过像我说的,我就是喜欢这个工作。

Envycasts的目标就是能够以一种妙趣横生的形式来提供教学视频。

RB: New Relic似乎对scaling Rails很有兴趣,这个系列就属于他们的Rails Lab。你会进一步发展这一合作关系么?这些视频具体有哪些内容?

GP: New Relic在帮助Rails社区发展,以及鼓励企业采用Rails框架上很有兴趣。这很合理,因为他们想发展更多的客户,而和我们这样的小社区合作的方式 之一就是自己投资这些社区。在过去Engine Yard已经这样做了,它投资了Rubinius和Merb项目。

New Relic推出了Rails Lab网站,内容以Rails性能话题为中心。有了他们的赞助我才能在Rails Lab上免费发布这些视频。

RB:你对企业采用Rails框架的未来怎么看?你觉得这些视频对帮助Rails达到这个目标是否是一条可循之路呢?

GP: 我渐渐发现越来越多大公司里的年轻开发者在说服管理层启用Rails作为项目框架。通常都是从内部应用开始,慢慢的进入生产阶段。我毫不怀疑明年会有更多大公司发布他们自己的Rails应用。

现在是开始使用Rails的一个绝好时机,尤其是考虑到经济因素。因为使用Rails可以明显减少代码量,而且维护代价(至少从我的经验来看是这样的)也比其他语言和框架要少得多。大公司很快就会意识到这个问题,并借此在竞争中保持领先优势。

我希望能够有开发者通过这些视频教学来说服老板们,在下一个项目中应用Rails。当然目前还只是希望而已。

RB:接下来Scaling Rails方面还有哪些视频即将推出?

GP:说实在的,我还不太能够确定。现在完成的的13讲是:

  • 第1讲:网页响应性
  • 第2讲:网页缓存
  • 第3讲:缓存过期
  • 第4讲:New Relic RPM
  • 第5讲:高级网页缓存技术
  • 第6讲:Action缓存
  • 第7讲:Fragment缓存
  • 第8讲:Memcached
  • 第9讲:Taylor Weibley和数据库
  • 第10讲:客户端缓存
  • 第11讲:高级HTTP缓存
  • 第12讲:Jesse Newland和部署
  • 第13讲:Jim Gochee和高级RPM

RB:是什么原因让大家产生了Rails扩展性不好这样的印象?

GP:我想可扩展性上的这个坏印象应该是来自几年前的Twitter和TechCrunch。你可能知道,Twitter是一个消息平 台,它能够处理每秒数以百万计的请求。Rails作为像twitter这样消息平台的前端可能很不错,但是后端架构对扩展性需求很高,而大部分web框架 都无法很好的满足这一点。由于twitter确实存在一些扩展性上的问题,所以很多人都认为这意味着Ruby on Rails应用都有扩展性问题,但显然事实并非如此。

RB:对于那些开始在公司里创建Rails应用,以及创建可扩展的Rails应用的开发人员你有什么建议呢?

GP:请观看我的Scaling Rails视频教学吧!哈,我这真是王婆卖瓜,自卖自夸啊!

不过,说真格的,有必要学习一下Rails下如何利用众多的缓存机制打破性能枷锁。安装一个服务器监控工具,比如New Relic的RPM,这样你就能在研发期间监控应用的状态。利用这一信息能够发现应用到底慢在哪里,应该从哪着手优化。

近来我发现有些公司过早的采用memcached。不要轻易使用memcached去缓存数据库对象,除非你已经认真优化过数据库查询,却仍然达不到性能需求。

最后,在项目最初期,你需要腾出时间安排好”应用优化“的计划,然后再开始项目。这个时间绝对不能省!

RB:除了你的教学视频外,还有哪些其他值得推荐的资料可以帮助开发者开发可扩展的应用呢?

GP:我建议:

  • 阅读Cal Henderson的《构建可扩展的web站点》。
  • 学习如何使用YSlow并拿到A。
  • 如果你是一个Ruby开发者,去看看“Ilya Grigorik的博客”。
  • 如果你是一个Rails开发者,请阅读“Rails缓存指南”。

RB:你认为对于企业开发者来说,使用Ruby和Ruby on Rails有什么优势呢?

GP:嗯… 这超出了我们今天话题的范围。我想企业中使用Rails的最大好处体现在项目的维护阶段。

  • Rails应用的开发方法是通用的。这就意味着当新成员加入时不需要详细了解项目的进展情况就可以开展工作。这一点也会给你带来更多的保障,如果负责为你开发这个Rails应用的公司出了什么问题,你可以很快找到另一家公司接着做这个项目。
  • Ruby开发的效率更高,用更少的代码做更多的事。代码少自然bug就少,维护起来也就轻松得多。而由于一般改动都只需要很少的工作量,所以要保持敏捷开发或维护都相对容易得多。
  • Ruby代码的表达能力强,因而可读性很好。这会帮你节省维护的代价,因为读懂别人的Ruby代码很容易。

RB:Gregg,非常感谢接受今天的采访!

Gregg Pollack是Rails Envy播客的主持人之一,也是Rails Activist Team的成员。在Scaling Rails网站可以找到Scaling Rails系列的所有13章内容,您可以下载这些视频以及代码实例。


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

就跟中国人说的一样。翻译的好。 by xiao deshi

@admin
有点bug,如果我想说句话,就非要写主题吗?能改否?

Re: 就跟中国人说的一样。翻译的好。 by 霍 泰稳

必须要写主题,这样通过主题别人一眼就能知道你要讨论什么事情 :) 除非你是回复别人的评论。

Re: 就跟中国人说的一样。翻译的好。 by Xie Fengbo

呵呵,歪楼了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT