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

Tag Archives:DevOps

Continuous Release beta now available

BluemixContinuous ReleaseDevOps
Tom Hudson / June 23, 2017 / 0 comments

The beta version of the IBM® Cloud Continuous Release Bluemix® service is now available. Continuous Release in an enterprise-scale release management tool that makes it easy to combine on-prem and cloud-native tools into a single release event. You can, for example, combine Continuous Delivery pipeline tasks with UrbanCode Deploy tasks in a single deployment plan.

With Continuous Release, you can automate as much of your release process as you need. Combine manual tasks with automated tasks that manage Continuous Delivery composite pipelines and UrbanCode Deploy applications. Other task types automate email messaging and Slack notifications.
Continuous Release logo

Beta features

Some of the beta features include:

  • Teams use releases to collaborate on multiple deployments and events.
  • Coordinate releases across multiple Bluemix organizations.
  • Combine Continuous Delivery composite pipelines and UrbanCode Deploy applications in a single deployment plan.
  • Use the calendar to manage release milestones and blackout windows.
  • Import and customize events and releases.

Bluemix beta services

Like many Bluemix services, Continuous Release went through an experimental phase before the beta release. During the experimental phase, users were free to try the service as new features were added at a steady cadence. With the beta version, Continuous Release is still free and limited support is now available. If you haven’t already, open a Bluemix account–it’s also free. Early adopters can influence product direction with their feedback.

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

advanced deployment techniquesblue-greencanaryDevOps
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.

Deploying applications with canary nodes

advanced deployment techniquescanaryDevOps
Tim McMackin / April 20, 2017 / 3 comments

When you’ve got an application running on multiple nodes, it’s usually a good idea to update a few tester nodes first, before updating every node. That way, you can make sure that the new version of the app is running as you expect on the canary nodes before you commit to updating every node. You can run any automatic or manual tests that you want, tracking the users who are sent to the canary node, before you update the other nodes. If something goes wrong on the canary nodes, you can cancel the upgrade and continue using the nodes that haven’t been upgraded.

I include a canary node as part of a blue-green deployment scenario in Setting Up Blue-Green Deployments in IBM UrbanCode Deploy 6.2.4 and the related video, but I’m going to explore canary nodes here in a little more detail.

There are a few ways to set up a node as a canary node in IBM® UrbanCode™ Deploy, but the way that seems the most straightforward to me uses resource tags. Resource tags are labels that you assign to resources, particularly agent resources. With resource tags, you can identify groups of agents in any way that you want. Then you can run processes on only the agents with a specific tag. So, to deploy to a canary node or nodes first, give them a tag such as “canary” and set up your process to deploy only to those nodes first. If the canary deployment goes well, you can then deploy to the rest of the nodes.

Setting up the canary deployment

As you might have guessed, the first step is to apply the resource tags to the resources in the environment. I’ve used the tags “canary” and “mainSystem” that I used in the blue-green deployment demo in the following application environment. It’s got one canary node and two non-canary nodes.

The environment, with three nodes, one of which is tagged as a canary node

Here’s how the topology looks:

Topology for a canary deployment, with one canary node and two other nodes

A simple way to deploy to nodes by tags in IBM UrbanCode Deploy version 6.2.4 is to use the For Each Tag step. This step is a loop that runs over all resources that have the given tag or tags. For example, here’s a simple application process with a For Each Tag step. Inside the step is a sub-process that runs for each resource that has the specified tag or tags.

An application process that has a For Each Tag loop; inside the loop a single step deploys a component

In the loop properties, I select the tags to run on. Here I’ve selected just the canary tag, but I’ll show you how to change that later.

The properties for the For Each Tag loop, showing only the canary tag.

That’s it; the server knows to run the steps in the loop on only the resources with matching tags. So, to deploy to my canary node, I start the application process, give it the new versions of the components as usual, and leave the default canary tag in the process request:

Requesting the application process to run on only the canary nodes

The process updates only the nodes with the canary tag; in this case, only one of the three nodes is updated. After the process runs, the inventory and compliance for the environment show that only one of the three nodes is running the requested version. That’s what the request intended to do, but it still means that the environment is noncompliant because not all nodes match the process request.

The inventory for the environment after a canary deployment; only one node is updated

But the flexible part is that I can change the tags for a specific process request. When I’m ready to move all nodes to the new version, I run the same application process again, giving it the same version but the mainSystem tag instead of the canary node.

Requesting the application process on the mainSystem nodes

Now all nodes are up to date and the inventory is compliant:

The compliant inventory for the environment after all nodes have been updated

That’s a simple way to run a canary deployment with resource tags. That method is fine if you don’t mind the manual work of requesting the same application process twice. Automating everything into a single process is better because I know it’ll run the same way every time. So here are two ways to update both the canary nodes and the main nodes in a single run of an application process:

Using two tags in the For Each Tag step

One way to deploy to both tags in one process is similar to the way I handled the canary node in the article Setting Up Blue-Green Deployments in IBM UrbanCode Deploy 6.2.4 and the related video. If you don’t want to have to run the process twice, you can set up the application process to update the canary node first and the rest of the nodes second.

One way to do that in a single process is to include automatic or manual tests as part of the For Each Tag loop. Then, because the order of the resource tags in the process determines the order in which they are updated, you set the canary tag to run first and the mainSystem tag to run second. This way, the process updates the canary node first, runs the tests, updates the main nodes, and runs the tests again. You can include rollback steps in case any deployments or tests fail. The process can be as simple as a single deployment in one step and a test in another step. I’ve also added a rollback step in case anything goes wrong.

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

Then, when you request the process, you put the canary tag first and the tag for the rest of the nodes second:

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

Using multiple For Each Tag loops

Another way is to use multiple For Each Tag loops, with automatic or manual tests between them. In the following example, the first loop handles the canary nodes and the second loop handles the other nodes. You can include any automatic testing, manual testing, or approvals between the loops.

An application process that has two For Each Tag loops, one for the canary nodes and one for the mainSystem nodes

The only trick to this process is that, when I request the process, two loops are shown in the request. I’ve got to remember to put the canary tag in the first loop and the mainSystem tag in the second:

Requesting the process and specifying the canary tag on one loop and the mainSystem tag on the other loop

Those are just a few ways of modeling and deploying to canary nodes to make sure everything is working right before you deploy new applications to all of your nodes. Let us know if you’ve got other ways to do this or questions about how to make this work in your scenario.

Announcing UrbanCode Deploy v6.2.4: Better with Cloud & Help for Tricky Deployments

CloudDevOpsuDeployUrbanCodeVMwareWebSphere
LaurelDB / March 14, 2017 / 0 comments

On March 21, version 6.2.4 of UrbanCode Deploy will be available to our customers. This release addresses two important aspects of the product:

UrbanCode Deploy is better with Cloud… and …

UrbanCode Deploy continues to address tricky deployments.

In the first category, “Better with Cloud,” in version 6.2.4, the UCD Blueprint Designer adds Google Cloud to the growing list of supported clouds: SoftLayer, AWS, Azure and Openstack clouds. The team has also enhanced the UCD Blueprint Designer’s integration with VMWare:

  • For VMWare vCenter provisioning, support has been added to allow using customization specifications, provisioning software without cloud-init via VMWare tools, and the ability to use both static and DHCP networking constructs.
  • For VMWare vRealize Automation (vRA), the blueprint designer supports adding additional disks to a virtual machine definition, leveraging custom machine prefixes, and enhanced validation and support for deployment request properties. Why use UCD with vRealize? That way you get the best of deployment usability and the best integration with VMWare.

UrbanCode Deploy is well positioned to enable its users to benefit from a hybrid IT environment where deployments take place in cloud environments, to on prem data centers and the mainframe.

This new version of UrbanCode Deploy exploits the power of cloud computing with the new DevOps Connect plugin. The new plugin enables mobile app usage for UrbanCode Deply and reporting functions never before available. Use the plugin to:

  • Enable an UrbanCode Deploy mobile app for your smartphone. With the UCD mobile app you can monitor the status of deployments and manage approvals, all from you iOS smartphone.
  • Connect to the currently free, experimental reporting solution for UrbanCode Deploy named DevOps Insights, which will enable you to monitor deployment metrics such as throughput, and cycle time.

Version 6.2.4 of IBM UrbanCode Deploy addresses “Tricky Deployments” with usability improvements that make rolling deployments across servers easier. You can now specify how many servers to deploy to at a time within an environment, providing better control of changes across servers. Deployment Processes can now run against specific (and multiple) tags, reducing process creation overhead, and greatly simplifying Blue/Green, Dark/Light, and other advanced deployment techniques. See more info in a blog on this topic.

Tricky Deployments are further supported by plugins which provide processing and integration functions. UrbanCode Deploy updates and releases new plugins continuously, averaging about two new plugins a month! With this announcement, we recognize new plugins that support IBM, third party and open source products:

New plugins

  • IBM Operational Decision Maker source configuration
  • Microsoft Silent Installer support for UCD v6+
  • Additions to the UrbanCode Open Development community: https://developer.ibm.com/urbancode/plugins/development-community
  • Rational ClearQuest
  • Text-Utils
  • Datical

Updated plugins

  • Docker Automation, Docker source configuration, and Docker Compose
  • Artifactory
  • Jenkins and Jenkins Pipeline
  • IBM Integration Bus
  • IBM Rational Quality Manager
  • Microsoft Team Foundation Server
  • Salesforce

UrbanCode at Interconnect

If you are going to Interconnect this year, don’t miss the “Continuous Delivery Keynote: IBM UrbanCode Roadmap” Session ID: 6816A, and numerous client success stories, for example “One-Click Deployment Leveraging IBM UrbanCode at Physicians Mutual Insurance” ID: 1660A.

If you are starting to think about migrating from WebSphere Application Server v7 or v8 to WebSphere Application Server v9 due to the announced end of support for versions 7 and 8, don’t miss these UCD-WAS migration topics:

  • Migrating to IBM WebSphere Application Server Version 9 with IBM UrbanCode Deploy Wednesday, 9:00 AM – 9:20 AM | Engagement Theater Booth #588 | Session ID: 4318A
  • DevOps: Using UrbanCode Deploy to Migrate to WebSphere Application Server 9 Bluemix and SoftLayer App Server / Runtimes Breakout Session BAS–3604

I hope to see you there!

Integrating UrbanCode Deploy with Bluemix services

BluemixContinuous ReleaseDevOpsIBM UrbanCode Deploy
Tom Hudson / March 9, 2017 / 0 comments

In DevOps Connect, use the IBM Deploy for Cloud Reporting plug-in to create integrations that provide UrbanCode Deploy data to the Continuous Release and Continuous Delivery Bluemix services.

Prerequisites

UrbanCode Deploy requires a patch to integrate with Connect. For information about downloading and installing the patch, refer to the Overview page.

In the UrbanCode Deploy instance that you want to integrate with, generate a token for the admin user.

Procedure

  1. From the DevOps Connect dashboard, click Integrations, and then click Add New.
  2. In the Name field, type a name for the integration.
  3. From the Integration Type list, select IBM UrbanCode Deploy for Cloud Reporting. Fields that are related to your selection are displayed. The Version field displays the plug-in version number.
  4. In the Server URI field, enter the public URL of the UrbanCode Deploy server. For example, https://my_UCD.example.com:8447.
  5. In the Authentication Token field, enter or paste the authentication token that was generated by UrbanCode Deploy.
  6. In the Admin User Email field, enter a comma-separated list of IBMids to give access to the DevOps Connect web-based dashboard.
  7. Optional: Click Run Integration to run the integration immediately. You can manually run integrations at any time.
  8. Click Save.

Results

After the integration runs, UrbanCode Deploy data is available in your Bluemix services such as Continuous Release, and Continuous Delivery.

Shift Left: Find defects earlier through automated test and deployment

DevOpsIBM UrbanCode DeployTesting
Joe Wochna / December 5, 2016 / 0 comments

Do you know how much time it takes or how that translates into dollars lost every time you fix a defect in development, QA, or Production? The cost of application failures or errors increases exponentially the further into the delivery pipeline they are when found. If application defects are discovered by end users in Production, or errors cause a Production outage, the cost can be thousands per second, in addition to the intangible loss of reputation.

So how do you begin to identify defects earlier in software development and prevent them from becoming major, costly errors later on? Hear Al Wagner, IBM Technical Evangelist, as he discusses how to “shift left” and;

  • Incorporate service virtualization and automated testing into development for a more thorough and accurate representation of application quality
  • Integrate deployment automation with continuous testing to remove wait times on application promotion
  • Adopt best practices that have proven successful for IBM customers who are currently shifting left

Watch this on-demand webinar today!

Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM

DevOps
Joe Wochna / November 21, 2016 / 0 comments

DevOps has become a major enabler of business innovation that can drive digital transformation at an enterprise level if done well. Challenges remain, however. Crossing the chasm from successful DevOps pilots with “two-pizza” teams to full enterprise adoption, including cultural transformation, best practices and tools remains a challenge. 

Join Alan Shimel (DevOps.com) as he hosts a panel discussion with Hertz’ John LaFreniere, Kaiser Permanente’s Raghunath Raman and IBM’s Sanjeev Sharma on how traditional enterprises are accelerating innovation by adopting DevOps practices at scale across their organizations.

Find out how:

  • Hertz is accelerating transformation of their platforms, business process and operating models with Cloud, DevOps and Agile.
  • Kaiser Permanente is managing the cultural, process and integration challenges of multi-speed IT.
  • IBM has embarked on a DevOps transformation that has engaged over 10,000 developers already — including becoming one of the world’s largest users of GitHub Enterprise.

Register today!

An experts’s view on DevOps for the mainframe

DevOps
DagnaGriffin / October 7, 2016 / 1 comment

I_Nake4R_PQ

Security and DevOps – Managing Security in a DevOps Enterprise

DevOps
cring / April 25, 2016 / 0 comments

Looking at security and DevOps requires a view across two dimensions:

  • Securing the application; and
  • Securing the application delivery pipeline
Sanjeev Sharma - IBM Distinguished Engineer | CTO for DevOps Technical Sales and Adoption

Sanjeev Sharma
IBM Distinguished Engineer | CTO for DevOps Technical Sales and Adoption

Securing the application focuses on ensuring the application being developed and delivered, and the associated data, are secure. This means building and delivering them using secure engineering practices that ensure their security and integrity, as well as that of the business and end-users.

Securing the application delivery pipeline focuses on securing the delivery platform itself, so that the application development and delivery tools, the Infrastructure and environments, configurations, automation tools, repositories, and associated services and APIs are all secure.

Join us to hear an overview of these concepts, how they can be applied across the software delivery pipeline and IBM offerings that can help you on your journey to secure DevOps.

Register now to watch this webinar!

Security and DevOps – Managing Security in a DevOps Enterprise from Claudia Ring


Mastering DevOps Automation – Best Practices and Demo

DevOpsPureApplicationUrbanCode Deploy
cring / April 19, 2016 / 0 comments

Deploying applications in hybrid cloud environments is hard work. Your team spends most of the time maintaining your infrastructure, configuring dev/test and production environments, and deploying applications across environments – which can be both time consuming and error prone. But what if you could automate provisioning and deployment to deliver error free environments faster? What could you do with your free time?

Join our experts to learn about how IBM UrbanCode Deploy and IBM PureApplication provide a powerful combination of technologies that accelerate application deployment from days or weeks to just minutes – enabling your team to be the hero, not the bottleneck.

Attend this webcast to:

  • Learn about DevOps automation key concepts and best practices
  • See how a large financial services client reduced app deployment time by 90%
  • Hear how PureApplication and UrbanCode Deploy accelerate app delivery
  • Watch a brief demo that puts automation into practice
  • Get your questions answered

Register now to watch the webinar!

Mastering DevOps Automation: Webinar from Claudia Ring

Next Page »
Date
April 2018 (2)
March 2018 (1)
February 2018 (1)
January 2018 (1)
December 2017 (1)
October 2017 (2)
September 2017 (6)
August 2017 (7)
July 2017 (5)
June 2017 (5)
May 2017 (7)
April 2017 (3)
Tags
Docker (4)
IBM UrbanCode Deploy (118)
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