Over the past few months I've taken up development on Amazon's Web Services (AWS) platform. Looking at the integration of development and IT operations in devops my foray has started with the AWS Cloudformation service which allows the programmatic creation of other web services such as computing (EC2) and storage (S3). I like the ability to upload a JSON template, specify some parameters, and soon have a brand new system up and running. What's more, using Canonical's cloud-init scripts I'm able to use the Cloudformation template as a base to further service configuration with Puppet.
Puppet is a configuration management tool that provides the ability to define the packages, users, and services (among other things) that a particular server should be running. It allows me to get away from manually setting up a server each time it comes online. Instead I simply have the Cloudformation template download my puppet modules from GitHub and apply them using the cloud-init script.
My plan for this infrastructure is the ability to quickly and easily create an environment for Java development. While there are currently other services that provide similar environments, rolling my own on AWS has given me an opportunity to customize it to my liking and learn to use some of these new tools. This means that I can install the latest development tools such as Gitolite for private Git repositories, Eclipse Orion for online code editing, Gradle for builds, Sonar for testing, Jenkins for continuous integration, and Artifactory to store the completed products.
Check out some of the resources that enable my setup on my GitHub page: https://github.com/myrontuttle