I recently read a fantastic article by Jens Segers on infrastructure as code. I’m already a big believer in infrastructure as code and agree with Jens that it doesn’t matter which tool you use as long as you strive to have an infrastructure as code initiative.
That leads to an interesting question. Where do infrastructure as code tools such as Puppet or Chef fit into the picture if you are using Serena Release Automation (SRA)? To me these tools are great for operating system configuration and generic stack provisioning, which just happens to fit in perfectly with SRA. I see infrastructure as code being used as part of an SRA process as follows:
- SRA has integrations to commonly used virtual machine provisioning solutions, which are easily integrated into an SRA process. Use the integrations to spin up virtual machines as needed.
- For each VM that is provisioned, use Puppet, Chef or some other tool to configure the OS; install the stack that you need and do basic configuration.
- Deploy your application onto the newly provisioned and configured VM using SRA.
By using SRA and Puppet/Chef in this way, each tool is playing to its strength, allowing for an effective deployment automation solution both when designing and maintaining the solution and at runtime.