Overview of IBM UrbanCode Release

Use IBM® UrbanCode™ Release to standardize and automate processes in your release lifecycle.

With IBM UrbanCode Release, you move releases through your development cycle's phases, from preproduction to production. You create and implement a predictable schedule of releases for your software applications. If you use team-based planning software, you can integrate related changes to your release plan to make your plan comprehensive and clear. You can openly share your release plan and status with all stakeholders so that they know the schedule and the key milestones and can identify issues that might delay releases.

A release is a repeatable plan that is used to drive deployments; it is the core function of IBM UrbanCode Release. You can schedule a release at any point in your development-operations lifecycle. Your releases can represent all kinds of events, from major events in the life of your company to comparatively minor events, like recurring maintenance.

A release consists of several parts. When you create a release, you assign a lifecycle, or an ordered list of phases, to it. Then, you assign the applications, which are business-meaningful pieces of a system or software that can be independently deployed, to the release. You map the applications to the environments and target deployment hosts for each phase of the release lifecycle. Next, you create deployment plans, which define the tasks that must be completed when a deployment runs, for your release. Finally, you use the release environments, appropriate application versions, and the deployment plan to run deployments for your release.

Integrations

You can expand the function of IBM UrbanCode Release if you integrate with other software. If you integrate with an IBM™ UrbanCode Deploy server, you can schedule deployment tasks for its applications as part of your release. If you integrate with a supported change tracking program, such as IBM Rational® Team Concert™ or JIRA, you can use the changes that are associated with your releases to monitor release readiness.

Lifecycles

A lifecycle is an ordered list of phases, such as development and QA, through which software passes on its way to production. You can customize the phases in a lifecycle to match how your applications move from the beginning to the end of the release cycle. In addition to phases, you can set quality statuses, called gates, that must be met before an application can progress to the next release phase. When an application attains the quality statues that are associated with a gate, it can pass through the gate. For example, an application might have to pass certain tests or receive an approval. You can manually apply quality statuses, or, if you integrate with IBM UrbanCode Deploy, you can automatically apply statues to applications in application processes.

Applications

The term application is used in two ways. First, it refers to the applications that you import from IBM UrbanCode Deploy and run with automated deploy tasks. Second, the term application refers to objects you can create with IBM UrbanCode Release and manage with manual tasks. Manual applications do not have automated processes and are used to manage activities related to applications, such as preparing their environments.

Use the Applications page to create manual applications and review the details of imported IBM UrbanCode Deploy applications.

Environments

Release environments represent the systems on which applications are deployed. You map release environments to phases of your release lifecycle and then deploy applications to them. Although phases might have several environments defined for them, you typically use one environment per phase for a given release. If you integrate with IBM UrbanCode Deploy, you link specific application environments from IBM UrbanCode Deploy to your release environments.

Deployment plans

In deployment plans, you define the tasks that must be accomplished to complete a release. A task represents a business-meaningful activity that is associated with a release that has starting and ending points and a measurable duration. You can define two types of tasks: automatic and manual. Automatic tasks represent application processes that are imported from IBM UrbanCode Deploy. A manual task can represent any activity that is related to a release, such as taking a server offline. When you create a manual task, you specify its duration and define its pattern. The pattern determines how frequently the task can be used and the release environments where it can be used.

Deploying releases

You complete the deployment plan's tasks to deploy the release into a specific release environment. When you schedule a deployment, you select the release, the release environment, the associated applications, and the deployment plan. Beginning at the scheduled start time, you and your team complete the deployment's tasks. You can schedule deployments to start automatically or manually. You can also set rules to start deployments on a recurring schedule.

When a deployment starts, regularly updated feedback keeps you informed about the deployment's progress. If changes arise during the deployment, you can modify existing tasks and add new ones even after the deployment starts to handle unforeseen issues as they arise. By monitoring the deployment, you can identify problems as soon as they occur, accommodate unexpected events, and, if necessary, defer applications to a later release. In addition to this real-time feedback, you can define rules that send email notifications to users when certain events occur, like tasks starting. See Configuring notifications.

Enterprise-wide release events

Coordinate multiple deployments across business units and releases with enterprise-wide release events. By using signal tasks to signal waiting tasks in other release, you can orchestrate multiple releases simultaneously with the Enterprise Deployment dashboard.

Collaboration and process improvement

The web-based front end provides real-time, cross-team collaboration and provides views into every facet of your software release lifecycle. Business units can collaborate by sharing a release plan. If business units have a central management point, sharing a single plan makes sense. If business units have different reporting models, a separate release plan for each unit might be more efficient.

Capturing the differences between release artifacts and processes is the basis for auditing and compliance reporting. You can capture all activities throughout the release cycle, from preproduction through production. Key metrics are available for these aspects of releases:
  • Compliance
  • Governance
  • Data aggregation and reporting
  • Auditing and logging
  • Version and change control
You can determine project status at any point and measure every aspect of the release cycle. At any time, you can view the detailed status of a single release by using the Pipeline view. To view the status of multiple releases that you select, you use the Federated Deployment Dashboard view.

IBM UrbanCode Release can coordinate multiple deployments in any combination, including concurrent deployments and deployments that depend on other deployments. Dependencies can be ordered and coordinated with middleware and networks. You can use current processes by interleaving manual tasks with automated processes and integrate with tools such as IBM UrbanCode Deploy.

For an overview of the steps you take to create and run a release, see Getting started with IBM UrbanCode Release.