Change is a reality in every organization and life continues to get more complicated through trends such as the adoption of Service Oriented Architectures (SOA) and the rationalization or modernization of legacy applications. This article will take a look at these two trends and how they complicate life for application development teams by increasing both the volume and complexity of change. I will then discuss the ways effective release management can help organizations deal with the constant change churn, complexity and change volume. Though release management isn't a silver bullet, it is a tangible way to make a difference.
The Ever Changing World of IT
Application modernization is about rationalizing your application portfolio with the intent of constructing more sustainable applications that reap higher rewards with a lower maintenance cost.
In an ideal world, applications would be written once, perfectly and require little or no maintenance, freeing up application development teams to work on newer, more innovative products or services.
The reality of IT however, is that legacy systems do require maintenance, in many cases the maintenance cost can be more significant than the initial investment. As well, this maintenance requirement often results in differing applications with similar functional capabilities.
Application modernization is the evolutionary practice of rationalizing your existing applications to introduce innovation and efficiencies in your application portfolio, but not at the cost of throwing everything away and starting again. This dynamic process requires diligence to maintain the existing legacy systems while freeing up resources to produce more innovative and manageable applications that satisfy new and emerging business requirements more readily.
From an IT operations perspective, application modernization can spell disaster. In many scenarios, coordinating the release of modern architectures such as J2EE and .NET along with legacy systems such as System i (iSeries) and System z (zSeries) can cripple an organization tying up resources and costing time.
To manage and coordinate a multi-platform release, IT decision-makers need solutions with the necessary level of traceability and control over all software artifacts. Allowing your application development teams and IT operations teams to work in silos, often by platform, obstructs the ability to prioritize and manage these related systems holistically. As well, the risk associated with managing these environments in isolation may be huge if there are application dependencies.
A single application lifecycle management platform provides coordinated release management across all strategic and legacy platforms within an organization. Through tight integrations with System i development and integrations into System z tools, cross-platform dependencies can be managed through a single release package. These integrations ensure that dependent changes are released at the same time and where necessary, rollback occurs simultaneously.
Another compelling feature of a single integrated ALM platform is the ability to measure and manage effort and cost across your legacy and modern application base. With dashboards, organizations can effectively track and categorize their development and operational effort by platform or application, ensuring accurate measurement of the development and maintenance cost of their strategic applications and legacy applications. Senior IT executives are empowered to keep their finger on the pulse of IT throughout a multi-year modernization initiative through this ability to constantly re-evaluate priorities.
The traceability offered by a single consolidated ALM platform is fundamental to manage the large volumes of change attributed to a multi-platform environment. With continuous change churn, traceability is vital from requirements through to release. Such end-to-end traceability ensures that the IT operations team implementing the application change will have a solid understanding of the requirements being satisfied by the release. Understanding the associated requirements ensures adequate validation can occur during the integration or acceptance-testing phase of the release.
The Adoption of Service Oriented Architectures
A recent trend in the development of business systems is the adoption of Service Oriented Architectures (SOA), interoperable services which, once combined, provide a powerful application or business process.
An SOA framework is designed to enable organizations to achieve three key benefits:
- Faster time to business through a more modular framework
- Increased re-use of assets
- Reduced integration cost
Each of these benefits may yield significant cost savings to an organization but implementing an SOA strategy is not without its challenges, such as the management of interdependence, scope of deployment, and large change volume.
One of the challenges in adopting an SOA strategy is the delivery or deployment of related services. With discrete, re-usable services being deployed all the time, how do you manage delivery of changes to a service if it depends on another service?
An additional challenge introduced by Service Oriented Architectures is their highly distributed nature. Consider a retail deployment, where a service or group of services may be deployed to hundreds or thousands of individual stores. How do you manage the distribution of a service to hundreds or thousands of target machines?
Finally, with the high volumes of change introduced by such a strategy, how does your IT operations group cope with the rapid changes that are ongoing? Manual procedures are simply not adequate for dealing with the volume of change and managing scenarios such as recovery and rollback.
Much like the cross-platform change scenario, a process-based approach will ensure satisfactory approval is obtained, traceability back to requirements exists, adequate testing and validation occurs to manage the coordinated release of related services. An integrated ALM platform for release management can also help in automating many of your IT operational practices, equipping your teams to deal with higher volumes of change in a repeatable way.
An integrated platform groups related service changes into a single release package, ensuring a coordinated release effort. In addition, deployment can be scaled to support hundreds of target servers for a given release package, ensuring that it can scale for your SOA environment. Through integrated process and workflow, automation ensures that teams can manage with the large volumes of changed introduced by SOA development.
Managing High Volumes of Change
Release management practices are vital for dealing with high volumes of change in an IT environment. Three key benefits of a release management practice are collaboration, efficiency and compliance.
Greater collaboration between application development teams and IT operations teams occurs through the use of common processes and technologies. This cross-team collaboration ensures a clear sense of ownership and more transparency over the release process. This enhanced visibility equips your IT operations teams with a better understanding of application dependencies and the ability to elicit input from the application development teams when constructing a release.
When a release is promoted through stages in the release lifecycle, application development teams can be more dynamically involved through real-time notifications of testing or deployment failures, reducing the overall time to business.
Efficiency is generated through the implementation of a release management practice through automation. The automation of application delivery into production and pre-production environments translates into time saved by staff in overseeing releases. The recovery and rollback process can also be automated, ensuring that when a failure occurs, the corrective action is automatically taken and appropriate owners notified.
Cost efficiencies can be obtained through less operational overtime and through the ability to raise the operational capacity, ultimately dealing with larger volumes of change, to satisfy the business more rapidly.
Finally a release management practice is vital for dealing with compliance. By tightly integrating release management into your change and configuration management practice, you build the capability to deal with larger change volumes, and demonstrate key compliance criteria, including:
- What business requirements are addressed?
- Which artifacts make up this release?
- Who developed the artifacts contained in the release?
- Who approved this release for each environment it was promoted to?
- When was it delivered to production?
- If a failure occurred, what action took place?
Plan Your Release Management Process
A starting point for release management is to define the requirements your organization has for a solution.
- What kind of platforms do you need to release to, do you need to support legacy environments?
- Does an active SOA strategy how is SOA being adopted today?
- What are your objectives in adopting formalized release management practices, efficiency, greater collaboration amongst teams or a need to better meet compliance goals?
With a clear set of requirements defined you can be realistic about what you hope to achieve and the necessary steps to achieving your objectives.
It is also important to leverage existing methodologies or industry practices where they fit. ITIL and other industry accepted frameworks for change, configuration or release management can provide a solid footing for implementation, but you need to be sure that they realistically align to the way your IT team needs to function.
Change and Configuration Management
The next logical step in defining a release management solution is ensuring you have adequate change and configuration management practices in place. It is important to ensure that the appropriate balance of change and configuration management tool support exists to support all of the environments that your IT project may span. This is especially true where multi-platform dependencies exist. Without a solid change and configuration management footing, anything that is released into a production or pre-production environment will be suspect.
Integrated Deployment Support
With the appropriate CM tools and policies in place organizations should look to achieve integrated deployment support, where the deployment of artifacts only occurs with the appropriate change approvals using secured configuration management baselines.
Technologies for deployment should be selected based on their ability to scale within your organization and their ability to form an integrated release management solution. Managing high volumes of change is about having the right tools in place, forming an integrated scalable solution in order to deal with the magnitude of change you face.
Automating the Deployment Practice
Once you've achieved integrated deployment in your change and configuration management environment, automation should be a key objective in order to drive further efficiency and to reduce risk.
Automation can be employed to reduce risk exposure and to force teams to work in a more repeatable manner. On the surface project teams and teams on differing platforms will appear to work in a unique manner, by initiating an automation project you will be forced too examine the commonalities.
Automating the deployment of change is one area to focus on, but of equal importance is the automated rollback and recovery. Consider the scenario where a release to production fails, as the result of a software defect or perhaps due to a lack of capacity on the production system. How do you invoke rollback and recovery in this scenario? In many cases if rollback doesn't occur in a timely manner, a disruption to business including potential financial penalties may be incurred. By automating your rollback and recovery procedures you are eliminating the scramble for resources to fix production issues and reducing your overall risk exposure.
When you stand back and look at the whole process of creating applications, release management is a key piece. Done right, release management enables more effective deployment of applications across an organization. With greater complexity and increased volumes of change within organizations, scalability, traceability and visibility for cross-team collaboration are key factors in selecting a release management solution. A comprehensive release management solution enables Application Development teams to manage and deploy change across their enterprise effectively. At the end of the day, any process that can be streamlined helps deal with the constant, increasing amount of change that a business demands.
Once deployment is under control, you can spend more time creating innovative applications to move the business ahead.
About the Author: Ryan Lloyd the ALM Product Manager for MKS Inc.