Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Division of labour: Capistrano vs Chef

Where do you draw the line between provisioning (Chef) and deployment (Capistrano)?

For example, take creating an nginx and unicorn setup for Rails. Installing nginx is Chef territory. But what about things like configuration files (nginx.conf and unicorn_init.sh) and unicorn config (unicorn.rb)--how do we divide this up?

The official Capistrano 3 tutorial makes no mention of anything related to web or app server configuration.

So whose responsibility are these?

like image 405
Jumbalaya Wanton Avatar asked Apr 04 '14 13:04

Jumbalaya Wanton


1 Answers

This is primarily opinion-based, but I'll answer anyway.

You draw the line wherever you want to draw the line.

Chef's main guiding philosophy is:

You know your infrastructure best...

Some organizations use Chef to setup all the shared folders, links, assets, etc (like cap deploy:setup normally does). Some organizations just manage the infrastructure bits (users, permissions, software installed). And some organizations deploy entirely with Chef (no Capistrano at all).

It's really about your personal preferences and organizational culture.

like image 138
sethvargo Avatar answered Oct 05 '22 08:10

sethvargo