Deploying Rails Applications: A Step-by-Step Guide (Facets of Ruby)
Description: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.
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.
Deploying Rails Applications
I currently bought three books on how to develop and produce Web-Based applications using Ruby on Rails. All three would not provide me the ability to deploy effectively on my deployment site. Deploying Rails Applications provided me all the insights I needed to tackle the key issues on the remote site. Active Record migrations was a serious stumbling block before. Configuring the Web Server was a show blocker. The decision on the a dedicated host was also a key element in the production. However, my site does not support Mongrel and thus I could not benefit for the books recommendations. Overall, it is a very good read with a technical language that is accessible to all.
Some good info, lots of padding
Overall this book contained some useful information, but some explanations were vague and there was way too much padding.
Version control is addressed and Subversion is the only program discussed. It would have been nice to have had more general version control information and use Subversion as an example of it rather than showing svn as being the only way, especially with the increased popularity of Git for version control with ruby.
There is an entire chapter on using windows to deploy. I don't use windows so I didn't read this chapter, it might be useful to some.
The author talks about using virtual machines to deploy in Chapter 7. I thought this information could have been a little more detailed. Perhaps if the book didn't contain so much padding there would have been room (seriously, if you are considering deploying rails, surely you should know how to install it and create a new rails app??).
It would have been nice if there had been more detailed examples from start to finish rather than bits and pieces.
An nginx config file is included at the end of the book for those who would like a complete example.
MySQL is the only database addressed and the author continues to give directions on how to replicate / cluster mySQL even AFTER saying repeatedly that it can be a bad idea. It would have been nice if he had addressed an alternative database since Rails is meant to be database independent (easy database switching?).
Does include info about deploying to a shared host environment as well as VPS and dedicated servers.
Overall, some good information is in this book, but there could be a lot more information as well. Might be a good place to start, but you will likely need to look up a lot of additional information. I'm pretty new to developing and I found this book to be very easy to read, too easy, as it contains very little solid information.
I didn't find this book to be tremendously useful. It includes a section on deploying to Windows (really? are people actually running production Rails systems on Windows?) but omits information on memcached and PostgreSQL clustering (again: are people actually running production systems on MySQL?).
And although it is hard for the authors to avoid this, the book is badly out of date. It talks about setting up Mongrel clusters, while the most preferred practice nowadays is to use mod_rails.
This book could have filled a niche if it took a new approach to synthesizing the information on the Internet, but it doesn't. And because of its very nature, it's bound to get out of date quickly.
Quite useful for Figuring out Capistrano and Mongrel Cluster
The value provided by this book is quite subtle. It is when you are faced with a task of deploying something you don't quite understand and are uncertain of which way to go.
I had to upgrade the app that I had inherited from Capistrano 1.4.1./Deprec gem 1.9.2 to Capistrano 2.5.0 and was not quite sure of how to go about it. The app also used mongrel clusters that I did not know well.
I realized that I did not quite undertstand how Capistrano worked in the first place. I had many references, all good mind you, but did not fully get it until I sat down with Ezra's book this week-end evening and went through it again focusing on chapters on Capistrano and Mongrels. This time though, I had a sense of purpose, i.e., to get this migration task done. Ezra really has been through many deployments and communicates that knowledge in a very useful and fundamental way.
The next morning, I cleaned up my muddled script and was able to debug it within an hour and deployed it successfully. It is working quite well. Thanks Ezra. Now if you could do a detailed book on Phusion Passenger, I would buy it.
I guess because this book was anticipated for so long, the expectation were a bit high. In the mean time I've read loads of information to setup a server on the internet.
Best chapters for me were 8. Scaling out (MySQL clustering was new and interesting) and 9. Performance where you go from a solid base line to the best number of mongrels for your server.