In a previous post we discussed how we manage some of our Turret.IO deployments using Jordan Sissel‘s excellent packaging software: FPM. This post is mainly a mini-tutorial on one of many ways to leverage FPM as part of your deployment process.
Like many others, our stack consists of both software built in-house and 3rd party applications such as NGiNX, Redis, Cassandra, etc. In our previous deployment process, provisioning new servers had two major parts: bootstrapping required sofware (i.e. Redis) and then installing our own (WSGI web application, Go binaries, etc.). We needed a way to streamline this and make setup and installation consistent during deployments. By using Chef as part of our bootstrapping process, we could easily download the required RPMs from Amazon S3 and then install each one on the appropriate servers in whatever order was required.