Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Deploying Rails: Automate, Deploy, Scale, Maintain, and Sleep at Night (The Facets of Ruby) Paperback – 3 Aug 2012

See all formats and editions Hide other formats and editions
Amazon Price New from Used from
"Please retry"
£18.46 £4.71

Product details

  • Paperback: 240 pages
  • Publisher: Pragmatic Bookshelf; 1 edition (3 Aug. 2012)
  • Language: English
  • ISBN-10: 1934356956
  • ISBN-13: 978-1934356951
  • Product Dimensions: 19 x 2 x 22.9 cm
  • Amazon Bestsellers Rank: 1,100,302 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, and more.

Product Description

About the Author

Tom Copeland is also a Rails developer at LivingSocial. He has programmed in Ruby since 2004, consulted at InfoEther on Ruby on Rails applications since 2007, and received a "Ruby Hero" award in 2008. Before focusing on Ruby, he wrote two books on Java programming ("PMD Applied" and "Generating Parsers with JavaCC") and was named Oracle's "Open Source Developer of the Year" in 2003.

Anthony Burns is a professional Ruby and Rails developer at LivingSocial. Prior to LivingSocial, he worked at InfoEther, a Rails consultancy, where he handled deployment and infrastructure for various clients.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Customer Reviews

There are no customer reviews yet on Amazon.co.uk.
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 2 reviews
14 of 14 people found the following review helpful
Covers the whole spectrum of managing/deploying an app 25 Aug. 2012
By Sean Walberg - Published on Amazon.com
Format: Paperback
"Deploying Rails" is more than just about deploying a Rails application, it's about that and everything that goes into managing servers, from provisioning to monitoring. This book explains how to do these tasks with the help of some popular Open Source tools and a focus on automation.

The flow of the book is fairly logical. Start by building virtual machines with Vagrant. Learn how to automate configuration with Puppet. Nail down deployment and remote tasks with Capistrano. Monitor the server and application with Nagios and Ganglia. Delve into some side topics like systems administration. Even though there is ample free documentation on all of these topics, this book sets itself apart in two ways.

First is that the tools from previous chapters are used to augment later chapters. You'll learn how to use Vagrant to set up a virtual machine in the first chapter, and from them on when you need a server you'll configure a Vagrant box. You'll learn how to automate configuration management with Puppet in the second chapter, and all successive chapters build on that. You don't simply install Nagios, you write Puppet scripts that install Nagios for you. By the end of the book you have a collection of tools that you can start using in your own real world environment.

Secondly, you're doing everything on an environment you can build yourself without needing to know how to install Linux, owning spare servers, or knowing how to manage servers. You just install Vagrant and follow the book. The book is heavy on code samples and screen captures -- it is the exception to open up to a random page and not see some code or example. You can have a replicated MySQL setup and work on your database recovery practices, destroy it, and know you can rebuild it with a few keystrokes.

Puppet is a large part of this book. Almost every task is done in a Puppet manifest, from installing the web server to setting up monitoring. The authors walk you through creating couple of simple manifests and then refactoring the code to be more reusable. The basics of Puppet are covered such as installing packages, starting services, and copying files. Later on Puppet is used to interact with the existing system by managing cron jobs and using templates to edit existing configuration files.

The popular deployment suite, Capistrano, is the topic of two chapters. The first looks at a simple deployment, then goes on to examine roles and adding hooks that automate tasks at points during the deployment. The advanced chapter delves into remote command invocation and parsing, multistage deployments (such as a separate staging and production deployment) and further automation of the deployment. People who have used Capistrano before will not be surprised by much in the basic chapter, but are almost certain to find something helpful in the advanced chapter. It opened my eyes to what Capistrano can do outside of the deployment -- it can automate maintenance and support tasks, too.

The last three chapters discuss various topics, from managing multiple Ruby interpreters with RVM to backing up your database and how to manage a master-slave setup. Some of these topics can be books in themselves, though Deploying Rails does a good job at getting you started. Even though the examples throughout the book use Apache and Phusion Passenger, the appendixes have a chapter on using Nginx and Unicorn.

Despite all the remarkable content, I did feel there were some areas that could have been covered. Given the extensive use of Vagrant throughout the book I found it surprising there was no discussion about using it for its intended purpose of managing developer's environments. There's a brief mention that Vagrant can run the Puppet scripts and you can save the step of running it manually, but other than that I found little that would tell the reader that they could reuse the work they had been doing so that all the developers would have a production like environment in which to work. Similarily, since the environment is well defined the authors were able to make several assumptions in their coniguration that would not necessarily work in a typical production environment. Some of these are simple, such as IP addresses and SSH keys being hard coded, but some are more involved, such as how to distribute the Puppet manifests when that's not taken care of by Vagrant. Books, like software, have to draw the line somewhere though.

As a systems administrator turned developer I was encouraged to see this book being released. It shows the ideal marriage of the systems administration mindset, with its relentless focus on automation and monitoring, with the tools available to the modern programmer. In some circles this practice is called DevOps, but even in shops that keep these two separate, this book will benefit both teams.
4 of 5 people found the following review helpful
This book takes you all the way except actually deploying ... 6 Aug. 2014
By Andrew Ledvina - Published on Amazon.com
Format: Paperback Verified Purchase
This book takes you all the way except actually deploying. It gives you the code to do one specific type of deploy in a VM container. Some of the details of what you actually need to do when deploying to a real host are left out so you basically end up using this as a reference if you really want to use Puppet, Nagios, Ganglia, Monit, and a few other specific choices.
Were these reviews helpful? Let us know