I've been looking online for what practices people are using when scaling their site using chef/capistrano and have not found much procedural information on this so thought I would ask here.
We are using chef in a limited way across our servers and we are using capistrano to deploy. For various reasons we will not be using the chef deploy resource to deploy for our app. We will be using chef to bootstrap app servers to scale our website.
From what I can gather what I would do is bootstrap the node with an app server role, then following the run, cap deploy. This will be done with ruby and the fog gem with some custom scripts.
cap HOSTFILTER:ip.add.ress.here production deploy
My questions are:
- What are some common approaches other people are using when scaling their site and deploying - outside of using chef to deploy
- Is host filter the best way to accomplish this?
- Should I be redeploying to all nodes when scaling instead of just single node?
Any other gotchas/etc appreciated.
You can use
capistrano-chef
, a RubyGem that allows you to use Chef Search for role names to do the deployment.Possibly unrelated, Evan Machnic has a video of how he uses Chef and capistrano from a presentation at a Ruby Brigade meeting.
You can also do a deployment as a resource inside Chef recipes.
Someone blogged about this here: