Application Release Automation with Zero Touch Deployment

Application Release Automation with Zero Touch Deployment

The Challenge

The use of cloud computing for custom-built, mission-critical enterprise applications is in its infancy, but both the technology and mind-set are starting to influence enterprise application architectures and delivery. Virtualization has become the first step for enterprises embarking on the journey to the cloud, with the next steps usually being a private or hybrid cloud. For custom-built, mission-critical applications, development and testing are the first functions to leverage virtualization and cloud, with production still only testing the waters. As production applications start to move toward virtualization and then private or hybrid cloud, the discipline of application release will both grow in importance and change radically. This paper is a high-level outline of how application release operations will change in response to the cloud, and it defines the key ingredients needed to help ensure that your enterprise’s release operations for production applications don’t get left behind

Changing the Landscape of Application

Release Automation

Cloud computing means that many of the time-consuming provisioning issues IT used to worry about on a regular basis are automated. That frees IT to concentrate on what interests the business: user experience and application agility. Just as the Internet and direct user access drive the focus on user experience, virtualization and the cloud are driving the growing focus on application agility.

Application agility is one of the primary business benefits from a move to the cloud, since an application’s business value is realized only after its release. Until an application or upgrade is in the hands of users, it doesn’t generate value—only costs. The growing emphasis on application agility will require that IT focus on excellence in application release operations. Getting application release operations right streamlines the process of getting an application (or application update) into the hands of users, providing the business with justification for a move to the cloud.

For IT, application agility translates into shorter application release cycles and effective deployment of incremental releases. Most of the work for release operations will be around deploying incremental application releases—not twice-a-year mega-releases or new applications. Tighter release cycles also mean that once unit testing is complete, all the steps from testing to production will be viewed as part of the release process and will need to be as streamlined and automated as possible.

Cloud and virtualization managers enable fast and simple basic provisioning of infrastructure environments, providing the capability to quickly create the environments for basic application development and testing. As an application moves out of its basic dev-and-test cycle and moves toward becoming a release candidate, the complexity of application deployment increases, as does the need for streamlining release operations. Cloud release operations will need tools to enable an “assembly line” that moves an application through its release pipeline stages (i.e., integration testing, UAT, staging, production) as quickly and efficiently as possible. Cloud release operations tools are specifically designed to support the complexity of cloud release processes and the environment variations, data configurations and release flavors, as well as cross-tier and cross-component dependencies needed at each step of the release. Without appropriate tools for application release operations, the cloud won’t provide enhanced agility for production applications—and companies won’t see the business value expected from a move to the cloud.

As custom-built, mission-critical production applications move to virtualized and cloud environments, excellence in release operations for cloud applications will become the key factor in enabling cloud to provide a quantifiable time-to-market advantage for IT and for the business.

Components for release operations for cloud applications

There are two key architectural components required for cloud release operations—an application model and executable release process descriptions.

Application model

Dynamic, diverse deployment environments are an integral part of application release in the cloud. These different environments make up the release operations pipeline as applications move through the stages from development to production. Existing cloud management and automation tools focus on the hardware and software infrastructure topology for cloud deployment (i.e., server types, OS, or basic packages). The standard approaches are through “golden images” and snapshot provisioning or sysadmin scripting and automation tools, which aren’t enough for application release operations.

Application release operations require a higher-level application model that describes an abstract application topology (i.e., abstract server types not bound to a specific server instance or layout topology, dependencies between server types, application artifacts and the relationships between them, and the relationships between application artifacts and server types). This level of abstraction enables IT to create deployment procedures that can be easily applied in different environments, without having to handle every new environment from scratch. A single application model across release environments helps ensure consistency across environments.

Executable release process descriptions

Release processes describe the real-world steps (including the manual ones) needed to release an application into a given environment, or for an end-to-end application release across environments. The first step of a release process is to bind release procedures to a specific environment in order to create automated deployment procedures tailored to that environment. Release processes then orchestrate those automated release procedures, staff interactions and external services in order to achieve a timely release for a specific environment, or an end-to-end application release through its progressive stages. Release processes help to ensure commonality, correctness and consistency across release environments.

Components for release operations for cloud applications

The application model and release processes provide the basic building blocks for the rest of the functionality needed to ensure application release operation efficiency for the cloud:

Operational release status monitoring

As companies do more frequent releases, IT release operations need real-time feedback on the state of a specific release and across multiple concurrent release pipelines. This status information helps release operations understand whether a release is at risk of overrunning its window, interfering with other planned releases (e.g., resource conflicts) or is stuck waiting for some event that hasn’t yet occurred (e.g., an approval or signoff ).

Application level versioning and rollback.

The frequency of release in the cloud makes the ability to quickly return an application to a previous version and the ability to understand which application artifacts have changed between releases a critical capability. Every application release should have an associated remediation process enabling IT to return to a previous version in a safe and repeatable fashion.

Application release window maintenance

Release window maintenance is currently a manual process, without automated enforcement or remediation. As the cloud increases the number of releases and release environments, release operations will need the tools to become much more facile at supporting release windows.

Application sense and response

One of the visionary goals of the cloud is autonomic sense and response, enabling an application to expand or contract based on user demand. A monitor can sense the need for change, but only a release operations tool can decide what needs to be done from an application perspective to respond.

Conclusions

IT departments starting to move to virtual and cloud environments need to prepare for the day their customized, mission-critical production applications will also move to virtual and (hybrid) cloud environments, even though the cloud may be currently used only for dev-and-test. This move will put a whole new set of pressures (and measures) on application release operations to ensure that the business is getting the full benefit from its move to the cloud. As part of any cloud strategy, companies need to prepare and ensure that their application release operations are “cloud-ready.

CA Release Automation can help you automate the deployment of application changes to a variety of tiers - App server, database server, web server etc., as well as across multiple servers and environments hosted in the cloud, all within a single deployment while enforcing dependencies. See how in this new demo video. http://bit.ly/1E8xovC

To view or add a comment, sign in

More articles by Hugo Raposo

Others also viewed

Explore content categories