Continuously Deploy with Bamboo and Deployit

Work smarter, better, and faster with weekly tips and how-tos.

This is a guest blog post by Vincent Partington, CTO and Co-founder of XebiaLabs. Vincent saw a need to standardize deployment automation that gave way to a the startup – XebiaLabs – makers of Deployit.

Over the past five to ten years, continuous integration has become a no-brainer for every medium to large scale software development project. It’s hard to imagine going back to not having every commit (or push) automatically trigger a build and a test run of the code. That test run would have surely included unit tests, but setting it up to also run integration tests used to be difficult. You would have needed to automatically deploy the application to the target middleware environment and then run the integration tests against that environment.

What is Deployit?

Deployit offers the Enterprise one deployment automation platform to optimize the release of applications both to major middleware environments like IBM WebSphere, Oracle WebLogic, JBoss, Tomcat, and Liferay, as well as to cloud environments such as VMware, Red Hat, and IBM.

How does it work with Bamboo?

With Bamboo, you can define new tasks in a plugin. These tasks can be added to a job that defines what happens when a build is triggered. To take care of the deployment automation, we use Deployit, an application release automation platform that can deploy to many different middleware systems and databases. We then use the Bamboo Deployit plugin to take care of the integration between the Bamboo and Deployit.

The Deployit plugin for Bamboo adds the enterprise-scale deployment capabilities of XebiaLabs Deployit to Bamboo. By adding automated deployment to your continuous integration setup to speed up your development process, this plugin allows you to take the first step towards continuous deployment and continuous delivery. Instead of deployment congesting your development process, it will become an integrated part of it. You can test your application on the target platform as soon as possible and find any platform incompatibility and deployment issues early on. When it’s time to deploy to the production environment, your deployment will be quick and reliable.

After installing the Bamboo Deployit plugin, you can add the following tasks to any Bamboo job:

Import a deployment package in Deployit

Deploy/Undeploy an application with Deployit

The most basic task is the import task. Add it to the build job of a project that delivers a DAR file (the Deployit “deployment archive” format that includes all the artifacts and configurations that are part of an application; you can use the Maven Deployit plugin to create DAR files) to automatically import that deployment package into Deployit. Take it one step further by adding the deploy task to your job to automatically deploy to a test environment. Then, add another task to test your application on that environment, e.g. by using JMeter or another functional testing tool. Of course, nothing is stopping you from deploying to the production environment instead of the test environment! Since you might not want every code change to trigger a deployment to the production environment, you can set up a separate Bamboo job that runs according to whatever schedule you want to run your continuous deployment with Bamboo and Deployit!