Automation Galore

I know that I have gone dark for the past few months but I haven’t stopped doing interesting things with technology, it is just that I have been immersed in creating code and content for Inedo. If you are looking for a great end to end solution for managing application deployments, which is a lot more than just automating compilation, the work that Inedo has done in BuildMaster is impressive.

I have always been a big fan of automating deployments, it makes life so much easier for both developers and the operations teams if there is a single, reliable and auditable way of ensuring the right code changes get deployed to the right environments. It is even better if the system is automated and provides the right tooling to ensure separation of privileges so that all compliance requirements can be easily met.

I am very proud to have worked on deployment automation features in BuildMaster to enable more robust and reliable deployments to both Amazon Web Services and Windows Azure.

First, I have worked with Amazon Web Services for a number of years, running some large scale systems using EC2 instances and lots of EBS volumes for SQL Server databases. I previously automated deployments using MSDeploy combined with lots of PowerShell but never had as integrated a solution as I would have liked. Expanding the AWS features of BuildMaster allowed me to finally implement the end to end promotion and deployment pipeline I always wanted. CloudFormation is an interesting base to build on, the template pattern lends itself well to easily managing multiple similar environments.  Using BuildMaster to manage the templates as well as configure and manage CloudFormation stacks during deployment allowed me to build a reference implementation that provided discrete testing environments and  high scalability while also controlling runtime costs by running a local integration environment and a smaller scale cloud based staging environment.

I have been very involved in watching Windows Azure evolve into a very capable cloud platform since its launch. With that, I was very excited to expand BuildMaster’s Windows Azure features. With the tooling that is now in place there is no longer any reason developers should ever have to deploy code directly into production from Visual Studio again.

Building features and documentation for Windows Azure allowed me to deeply explore the Windows Azure feature set and API. I had a great time building on the API and was able to implement features that allow for end to end deployment and management of Windows Azure Cloud Services as well as better promotion and deployment of Azure Web Sites. By running the integration environment premises and managing a minimal staging environment both bug fix turnaround time and runtime costs were able to be minimized. Also, the automation and security model made separation of duties painless and friction free.

I was able to do more than just work with cloud deployments and got to dip back into the Java world by implementing features for automating Maven builds, integrating with both Hudson and Jenkins as well as managing Artifactory repositories.

One of the most favorite things about my time at Inedo was that they have begun exposing the source code for BuildMaster extensions on GitHub. This makes it much easier for people to take advantage of the BuildMaster SDK and build a rich community of extensions that can solve every deployment need.

There is much more to talk about, including my projects to enhance ProGet, a professional quality NuGet server for inside the firewall but that will have to wait for another time.

I am going to be at DevLink in late August and am planning my fall schedule now. I am an INETA Community speaker and would love to give a talk at your user group or conference. I hope to see you at an event in the future!