First you'll learn how to build out your shared, virtual, or dedicated host. Then, you'll see how to build your applications for production and deploy them with one step, every time. Deploying Rails Applications will take you from a simple shared host through a highly scalable clustered and balanced setup with Nginx. See how to tell whether you've bought enough firepower, and learn how to optimize your Rails projects applications in a systemic, rational way. Take advantage of advanced caching techniques, and become and expert with the latest servers in Nginx and Mongrel. Don't worry. You'll get a dose of Apache too. Not only will you learn how to configure your production environment, you'll also see how to monitor it with free, automated tools that can restart your servers when the memory use gets too high for comfort. You'll see how to take a performance baseline, profile for bottlenecks, and solve the most common performance problems you're likely to see. You'll Everything from source control and migrations to Capistrano, rake tasks and beyond. Directly from authors who run EngineYard, one of the best Rails hosts in the business. How to deploy your applications to multiple production servers with a single command using Capistrano. How to setup a Rails/Nginx/Mongrel cluster for applications with high scalabilty needs. ...and more!
Overall, this book had a lot of very good information, and it was very helpful to me as I deployed my first Ruby-On-Rails application into a "Production" environment.
Here's the high points:
* Lots of good information on tools such as Capistrano, MySQL, Mongrel, Apache, and nginx. * The authors clearly know what they are talking about. * It's helpful if you're deploying a "toy" application (like I am) *and* if you're deploying a large, clustered application. * It doesn't assume that you're already an expert on either Web app deployment or Ruby-On-Rails.
Here are some of the things that could be better:
* This book was published over a year ago, and it already feels out-of-date. For example, there isn't one mention of Phusion Passenger, even though this tool seems to be the new standard app server for Ruby-On-Rails in Production environments. * This is very subjective, but I feel like the information could have been organized a little better. I felt as if the author jumped around a bit sometimes. * Also, some of the passages were a little difficult to read due to their incorrect sentence structure. My writing isn't perfect either, but I believe that the editor should have fixed more of these mistakes.
If you're deploying a Ruby app in any setting, then this is a good book to get. I just don't know if I would actually buy it.
This was a surprisingly quick read and gave a good overview of how you'd go about deploying and scaling a Rails app. Ezra Zygmuntowicz, the main author, has probably deployed more Rails apps than anyone else. The first half of the book is slow and the second half will be mostly familiar if you've deployed Rails with root access before. Overall I'm a little disappointed the authors didn't go into more detail, especially on options beyond just Monit for monitoring the health of your processes and their performance. That said, it's nice to have a reference to turn to now, even if it isn't very exhaustive.
There is a chapter on clustering your database that is useful and some interesting ideas for setting up your architecture to scale out using multiple VPS instances rather than physical servers, which makes a lot of sense.
It'll be interesting to see how soon until this book becomes outdated.
I was at first excited about the book, but when I finally got my hands on it, I found the book to be outdated. I helped write parts of the book (the migrations and Subversion chapters), and they should have been rewritten. I understand the book took a very long time to write and produce, which is why it was outdated when it got on my shelf.
Deployment was not that fun before Passenger from Phusion came along. There is still pain if you're trying to use Rails/Phusion/Oracle but at least there is less Apache twiddling now.