You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Joe Kutner is the author of "Deploying with JRuby" from the Pragmatic Bookshelf. He has been building JRuby applications since 2006 for clients including IBM and NASA. Today, Joe is a professional software consultant and founder of LogicHaus, where he builds Ruby and Rails applications for customers of all sizes. He also contributes to several JRuby projects including TorqueBox and Trinidad.
Your website has just crashed, and you're losing money. The application is built on Rails, runs on MRI, and is served up with Mongrel and Apache. Having this kind of infrastructure means that you're managing more processes than you can count on two hands. It will take a while to get back online because there are so many components in your system; including resque, monit, cron, Ruby Daemons, and more. But the website has to get up and running if you are going to stay in business.
The problem I've just described is all too common. It has happened to everyone from small start-ups to large social networking sites that use Ruby to serve millions of requests. But the recent growth and increased adoption of the Java Virtual Machine (JVM) as a platform for Ruby applications means that this is no longer the only way of doing things.
In this talk, I'll discuss the new architecture and deployment strategies that JRuby enables, and why they're better for your Rails applications. I'll talk about what makes JRuby more scalable and show some benchmarks that prove it. I'll also discuss three deployment strategies that can be used with any Rack-based JRuby application, and provide an overview of how each one works. I'll focus on the technologies that make them possible, and when it's appropriate to use each strategy. They include:
Warbler: a gem can be used to create a self-contained web application archive file.
Trinidad: a light-weight web server for creating flexible, modular deployments that still feel friendly and familiar.
TorqueBox: an all-in-one environment that includes built-in support for messaging, scheduling, daemons and clustering.
Choosing the right JRuby deployment strategy will not only provide a powerful and reliable platform -- it will help you get more sleep at night.
Notes
This talk is based on my book "Deploying with JRuby" from the Pragmatic Bookshelf, which Charles Nutter has described as "the definitive text on getting JRuby applications up and running."
I believe this is an extremely important subject because many Rails developers want to leverage the power of JRuby, but don't understand the technology ecosystem that comes with it. They spend time more worrying about the Java code they might have to write, and never realize that the solution they're looking for is not so painful. In fact, you don't need to write any Java code or XML to make it happen.
I gave this talk at JRubyConf 2012, but it was tailored for an audience that already knew a lot about JRuby. At Frozen Rails, I would recast the talk to appeal more to traditional Rubyists. I have already done this for a few regional user groups.