Skip to main content
IBM developerWorks / Developer Centers
Sign In | Register dW
UrbanCode
  • Products & Solutions
    • UrbanCode Deploy – Deployment Automation
    • UrbanCode Release
    • UrbanCode Build
    • UrbanCode Velocity
    • Continuous Release
  • Plugins
  • Docs
  • Videos
  • Forum
  • Blogs
  • Events
Blogs
< Previous   /   Next >

Take a taste before you order the platter: Canary deployments in IBM UrbanCode Deploy

Tim McMackin / April 24, 2017 / 0 comments

Even when everything is going well and you’ve got continuous deliveries running like clockwork, it’s still a leap of faith to update your production environment. Any problem immediately becomes a big deal when it’s in production and might affect everyone who is using the application. That’s the main reason for canary deployments — the practice of deploying to one or a few nodes first, and then sending a few customers to try out the new version before you make the leap to sending all customers to that new version. It’s like getting a taste of some new food before you commit to it entirely — always a good idea when you’re experimenting!

I’ve got a document here about Deploying applications with canary nodes for more detail, but at a basic level, all you have to do is tag your canary node or nodes with a resource tag like “canary,” and then set up your processes to deploy to that tag first.

You can put the canary tag on resources either in the resource tree or in the environment resource mapping. Just click the tag icon next to an agent resource and pick a tag:

Adding a tag to an agent resource

Then, in the application process, you can use a For Each Tag loop to deploy first to the canary tags, run some automated tests, and then run over the other resources. I’ve listed a few ways of doing this in Deploying applications with canary nodes, but one way is to include the deployment steps as part of the For Each Tag loop with some automatic tests and rollback steps. The following process deploys my application, runs tests on it, and rolls back if anything goes wrong:

The For Each Tag step, including deploying to both tags, running a test, and rolling back if anything fails.

Those steps are all inside a For Each Tag loop, so when I run the process I pick the tags to run on and the order in which they run. So I just select the canary tag first, and then select whatever other tags I have on the other nodes:

Requesting an application process and specifying both the canary tag and the mainSystem tag on the same loop

That’s all there is to it, at a basic level. You can set up the tags and processes any way you want to deploy to a test system before you take the plunge. For example, if you’ve got database nodes and application nodes, you can set up one node of each to be the canary system.

For more details, see Deploying applications with canary nodes. I’ve also included canary nodes as part of a larger scenario in Setting Up Blue-Green Deployments in IBM UrbanCode Deploy 6.2.4.

Share this:

  • Click to share on Facebook (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on Google+ (Opens in new window)

Like this:

Like Loading...
Tagged: advanced deployment techniquesblue-greencanaryDevOps
Tweet

Leave a comment

Click here to cancel reply.
Tell us who you are

Follow us on Twitter Find us on Facebook RSS Feed
  • Home
  • Products & Solutions
  • Docs
  • Videos
  • Forum
  • Blog
  • Events
  • Careers
  • Report Abuse
  • Terms of Use
  • Third Party Notice
  • IBM Privacy
IBM
%d bloggers like this: