【eNet硅谷动力专稿】Ruby on Rails 为现实世界的面向服务架构(
SOA)做好准备了吗?
答案应该是肯定的。Tate负责RESTful SOA项目的开发工作,该项目使用Ruby on Rails进行开发。不过,作为Ruby的早期倡导者,Tate表示,虽然Ruby具备有利于RESTful项目开发工作的所有动态语言具备的功能,但它也存在一个明显的不足。
“只有你部署了它以后并且逐步扩展,Ruby才能发挥作用,”Tate说。
这就是Tate为什么同Ezra Zygmuntowicz(托管服务公司EngineYard.com创始人合首席架构师)以及Clinton Begin(
软件顾问、以SQL为中心的Java框架iBATIS的创始人)合作撰写了一本新书---《Rails应用部署指南》。
这本书的用意是帮助开发人员学会如何成功部署Rails应用,并使它们可以按照比例扩展和性能可调谐。这本书还向读者介绍如何在Rails/Nginx/Mongrel集群上安装应用并实现高可扩展性。Tade说。
“我们设立虚拟箱(virtualized boxes)而不是规则的专用箱来分开你的架构组件,” Zygmuntowicz解释说。“所以你的数据库层有单独的虚拟机,应用层有单独的虚拟机,Web
服务器曾也有单独的虚拟机。所以,这些Linux虚拟机是不会与很多其它服务混合运行在一起的。”
让每一个用户在其自己的虚拟机上运行所需的服务,有利于规模调整和性能调节,EngineYard架构师说。“它可以让你用一种更好更高效的方式调解你的应用服务的性能,因为你架构的每一层都是可以单独扩展的,”他解释说。
Begin说,这本书将有助于开发人员现实世界中逐渐学会部署Rails应用。但是,Begin在之前所写的一本关于iBATIS的书中,他指出,所有的有关程序编码的书籍都有其局限性,很大一部分原因是技术的发展太迅速了,大部分的编程手册在它们印刷的时候就已经过期了。
“我所希望我的书能够教会开发人员如何看待Rails部署以及弄明白为何它这样部署,”Begin说。 “仔细研究过这本书的开发人员都应该可以部署Rails,就像我们在书中做得那样。”
古语说得好:“授之以鱼,不如授之以渔。” Begin表示,开发人员应该讲这本书看作为一个如何给这种轻型系统建立架构的起点。
“我希望开发人员在阅读完这本书以后能够自我反思,”Begin说。“牢记我们在书中教给大家的部署步骤和注意事项,并把这些知识应用到实际部署中。唯一的区别就是实际的部署中使用的服务器可能不会是书中提到的Mongrel,很多开发人员在实际部署中可能会用到Thin服务器。”
Begin表示,即使在书中没有提到Thin,他也相信阅读过此书的开发人员将对Rails部署有基本的了解,以便能够使用他们选择的应用服务器工作。
“我希望他们能够阅读这本书,但是不要照搬书上的内容,”Begin说。“我希望开发人员能够掌握我们书中传授的做法,并能创造出适合于他们自己需要的新的部署方法。我们不会试图推行一个一劳永逸的方法。”