Andrew Phillips

Connecting Continuous Integration to Continuous Delivery

Andrew Phillips

At XebiaLabs, many of the questions we get about our enterprise deployment automation solution Deployit are from users looking for automated deployment as a prerequisite for Continuous Delivery. Often, this the result of initiatives to extend existing Continuous Integration tooling to support application deployments.

Increasing the frequency of whole-application testing, decreasing time-to-production and delivering greater business value faster and more regularly are goals we definitely share, and in this post we'd like to pass on some key experiences and lessons from working together with our users to help them realize Continuous Delivery.
 Read more

Come on, vagrant up! Saving Vagrant images that don't get a NAT address

Andrew Phillips

As part of testing and demonstrating our advanced deployment automation1 platform Deployit, we at XebiaLabs use a lot of cloud and Devops tooling to be able to handle all the different types of middleware we support and build, CI and Ops tooling with which we integrate2.

I was recently setting up a Vagrant3 environment to demonstrate Deployit's Puppet module, which automatically registers new Puppet-provisioned middleware with your deployment automation platform to enable application-tier deployments to it, and ended up wrestling for quite some time with a tricky VirtualBox problem.
 Read more

Why Application Release Automation needs a Release and an Operations view

Andrew Phillips

As the interface between Development and Operations, Application Release Management1 handles information that is highly relevant to your Release and Operations teams. Selecting an Application Release Automation solution that provides insight and analytics from both perspectives is thus a key component of an effective DevOps strategy.

Here, we explain how Deployit's Infrastructure and new Release Overview features help you achieve this goal.
 Read more

Taking Application Release Automation to the Next Level

Andrew Phillips

Whether the driver is Agile, Cloud or DevOps1, or a "plain old" efficiency drive or process improvement initiative, forward-thinking organisations are currently looking for ways to improve their application release processes through automation. In an area where manual activities are still all too common, it's unsurprising that the initial focus has been on automating the deployment execution - moving all the bits to the right places.

What early adopters have learnt is that, at the enterprise scale, automating release execution quickly introduces a new bottleneck in today's dynamic IT environments: continuous management of the deployment plan definition. A new generation of application release automation (ARA) tooling avoids this pitfall by leveraging intelligence to automate deployment planning as well as execution.
 Read more

Release Automation: The Missing Step in Release Management

Andrew Phillips

Across all industries, the services delivered by business applications have become an essential part of an enterprise's customer offering. Bringing new features to market quickly is thus a critical factor in determining a company's success.

In this post (an extended version of which is available as a whitepaper), we will outline today's Release Management challenges and discuss the need for Release Automation.

We'll identify key considerations for successful solutions and highlight why "Zero-Maintenance" is a critical requirement for Release Automation that provides the scalability required in an agile landscape and enables the delivery of continuous business value.

(more…)

Integration testing CloudBees' RUN@cloud

Andrew Phillips

As part of the preparations for the recent 1.0.0 release of jclouds, I was tidying up the existing Tweetstore demo application as well as porting it to CloudBees' Tomcat-based RUN@cloud platform.

A key part of the test harness for the original versions of Tweetstore that run on the Google App Engine is the neat GoogleDevServer class. Basically, it's a clever wrapper around the KickStart class used under the covers by the GAE SDK tools that allows you to specify the SDK location, address, port and WAR file (or expanded WAR directory) to run.
Better still, it can programmatically be shut down cleanly, making it ideal for integration test runs1.

For CloudBees, I was thus looking to put together a similar RunAtCloudServer. It proved more challenging than expected...2
 Read more

jar-with-deps don't like META-INF/services

Andrew Phillips

Recently, I was preparing a connection checker for Deployit's powerful remote execution framework Overthere. To make the checker, as compact as possible, I put together a jar-with-deps1 for distribution.
Tests and trial runs from the IDE worked, so I was expected the dry-run of the distribution to be a quick formality. Instead: boom!
Turns out that one of the libraries used by Overthere, TrueZIP - or indeed any code that utilizes Java's SPI mechanism2 - doesn't play well with the jar-with-deps idea. Read more

Deployment is the new build (part 3)

Andrew Phillips

Earlier this year, I was invited to present a talk at Devopsdays Boston about deployment as the new build: how deployments are carried out now, how they will need to adapt in a more virtualized, on-demand application landscape and what fundamental improvements will need to come before deployment matures into the invisible, it just works™ experience build is today.

In the previous post, we looked at how Reusable commands, Models and Conventions++ helped turn build from a “black box” process into the “just works” experience we know today.

We then shifted back to deployment and identified Develop a common model, (Re)discover vanilla and Support a "clean build" as three key steps required to achieve a similar transition.
 Read more

Deployment is the new build (part 2)

Andrew Phillips

Earlier this year, I was invited to present a talk at Devopsdays Boston about deployment as the new build: how deployments are carried out now, how they will need to adapt in a more virtualized, on-demand application landscape and what fundamental improvements will need to come before deployment matures into the invisible, it just works™ experience build is today.

In the previous post, we compared deployment to another key process in the application lifecycle - build - and asked which key developments turned it from a magical "black box" into the "just works" process it is today.

We identified Reusable commands, Models and Conventions++ as three key steps, which we'll look into in more detail in this post. Then, we'll shift back to deployment and ask which improvements will be essential to getting to "just works" here.
 Read more

Deployment is the new build (part 1)

Andrew Phillips

Earlier this year, I was invited to present a talk at Devopsdays Boston about deployment as the new build: how deployments are carried out now, how they will need to adapt in a more virtualized, on-demand application landscape and what fundamental improvements will need to come before deployment matures into the invisible, it just works™ experience build is today.

In this first post, we'll focus on some of the changes and trends across the industry that have brought such increased business attention to the area of release, deployment and management of applications.
 Read more