Ruby on Rails is, of course, one of the hottest open-source technologies being used today. It shouldn't surprise anyone to find that the number of books about the Ruby language, and about Web development using Rails, has soared over the last year. I must have at least 25 books on these subjects, and many more PDFs on my hard disk. And that, of course, ignores the many blogs, podcasts, and screencasts that Ruby programmers are creating on what seems like an increasingly frequent basis.
While many of these books tell you how to write Rails applications, very few of them tell you how to deploy them for real-world usage. That is, once you have written your amazing application, using features from ActiveRecord to RJS, how do you put it onto a production server? How do you manage updates from your development environment to that production server with minimal downtime? How do you monitor your server for problems? And finally, what happens when your application becomes extremely popular, and you have to move from a single server to a cluster?
These are the sorts of questions that the book Deploying Rails Applications, published recently by the Pragmatic Programmers, tries to answer. The authors -- Ezra Zygmuntowicz, Bruce Tate, and Clinton Begin -- are experienced Rails developers, with Zygmuntowicz known not only for his Rails-related blog and contributions to Merb, but also for EngineYard, a Rails hosting company.
I found this book to be a good introduction to the topics that a Rails developer will need to know when pushing applications to the real world. The book is not aimed at advanced users, although there were certainly things that I learned about Rails deployment from reading the book.
Perhaps my favorite chapters were the ones having to do with software and procedures that aren't well documented elsewhere. For example, Capistrano is given a chapter of its own, introducing users to the de facto standard among Rails users for deploying new versions of an application.
An entire chapter describes how to work with Windows, either as an individual development system or for deployment. Throughout the book, the authors stress good security practices, reminding readers to use secure programs, such as SSH, instead of insecure alternatives, such as telnet. Finally, while the book describes several different HTTP servers, it goes into extensive detail on the use of Mongrel, a Ruby-C hybrid that has become quite popular in the Rails community.
Deploying Rails is written well, and contains numerous examples of both code and configuration files. It includes many tips that readers will want to use in their production Web sites. Perhaps my only disappointment with the book is that it is so thin, and that it is aimed at relative beginners. The section on benchmarking and performance tuning provided a good introduction to the subject, but left me wanting some more practical examples.
That said, Deploying Rails Applications is a good book for beginning Rails programmers to have around as they begin to write and deploy applications. It contains many useful tips and pieces of advice, as well as strategies for monitoring your applications once they are already in use.
Comments
Share Your Comments
Trackback URL
http://ostatic.com/trackback/165319