Automation is the best way to manage large scale systems and servers. While doing updates or applying patches, it is difficult to manage hundreds or thousands of servers. Installing patches and updates to each and every server is time consuming and tedious. It demands allocation of more human resources. In cluster like solutions, same configuration and application have to be installed and updated in all the slave servers. Hence automation provides a helpful solution for system administrators or developers. A single tool to manage servers and installation is the most effective way to do this.
Puppet, Chef and Capistrano are some of the most popular automation tools. Here let’s discuss on Capistrano, but before that let’s see what these softwares can do.
These tools have to do with
- Application Deployment
- Configuration Management
These may sound similar, but definitely these are not identical in its functions. Application deployment needs special care and strategic approach as requirements of each application may vary from one another. The scripts that is used for each application is entirely different from others and hence it should be managed separately to improve its functionality. But in the case of Configuration management, the updates/patches mostly apply to all the servers are the same.
Puppet and Chef are mainly used for Configuration Management, whereas Capistrano is used for Application Deployment. Here we are going to talk about Capistrano, which is used for deploying web applications. Capistrano is actually an open source remote server automation tool, which is written in Ruby language and hence it is distributed using RubyGems distribution channel. Even the Capistrano is written in Ruby language it can be used to deploy web applications, which is written in other languages as well. Capistrano can be managed through Unix commands and it uses SSH to copy codes from repositories.
Capistrano can be used to deploy web applications to any number of systems at the same time and it is configured to audit the logs by applying patches. Execution of custom scripts to a particular host is also possible with Capistrano. With this feature you can run a script only on the particular host even if Capistrano is running on other systems for some other tasks.
You should know why Puppet and Chef cannot be used for these kinds of operations, even though they are more popular. Puppet and Chef are mainly used for managing the configuration side and Capistrano is basically used for application deployment, deploying new release of application, audits etc. Capistrano is not used for server configuration management.