A new release management strategy depends on speed and efficiency

Sergey Nivens - Fotolia

When a new software deployment strategy means continuous adjustment

Rolling out application changes is never done without effort. And when it's done as part of a continuous delivery process, it's never quite done.

Faster, better and more efficient. Those are the watchwords for businesses trying to keep pace in the modern IT environment. To succeed, IT-focused businesses have altered application development cycles and now rely on DevOps techniques to deliver new releases more quickly.

While third-party support has matured to help developers transition to this new approach, the operations side comes up short. A company would be wise to dabble with a new software deployment strategy, but few training and certification programs help operations personnel gain the skills needed to exploit these options.

In a conventional release management process, IT would write new software, test it on nonproduction servers, roll out the update gradually, watch for problems and then make it available to everyone. The process was slow, cumbersome and repetitive, but it was controlled, well-understood and safe.

Speeding up the development cycle

With the emergence of DevOps, IT teams deliver new releases at a faster pace. "New business requirements are forcing companies to release software updates more quickly," noted Arpit Joshipura, general manager of networking and orchestration at The Linux Foundation.

DevOps continuous development and continuous integration often mean that software is in a constant state of updating. Amazon Web Services, for instance, delivers new releases every few seconds.

On the operations side of the equation, new options have emerged to speed up system deployments.

To support this sort of new software deployment strategy, IT departments need to change. Continuous software development demands tight operational integration for efficient and effective deployment with high workload availability and minimal user disruption. That entails new business processes as well as new skills.

A number of new programming tools emerged to support this approach and get software delivered faster. Third-party organizations -- such as CBT Nuggets, MindMajix, NetCom Learning, Simplilearn, Learning Tree International and The Linux Foundation -- offer training and certification programs for new development tools. The DevOps Institute offers courses on topics such as DevOps test engineering and continuous delivery architecture. However, all courses mainly seek to provide expertise in various development tools and address management challenges.

New deployment models emerge

On the operations side of the equation, new options have emerged to speed up system deployments. For example, a blue/green approach requires that a company set up two mirrored systems, one deemed blue and the other green. The blue supports the production environment, and the green becomes a test bed. Once testing is complete, changes are pushed out to the blue nodes in one fell swoop.

Other approaches limit new code deployment in various ways. In canary deployment, software releases act as early warning systems, with software tested in a small, controlled, live environment before it's released across all production systems. Testing with real users in a production environment provides the company with insight into actual performance numbers rather than in a simulated environment.

Another software deployment strategy is the early life support technique. In this approach, a deployment team defines and documents the criteria that the business considers acceptable for release. The team monitors the update for a specified length of time to ensure that it is safe. This approach might not be effective in DevOps environments, where multiple releases occur daily, but it can be helpful when updates are less frequent.

Also, some organizations choose rolling deployments. This requires system software, such as a load balancer. New software is tested and optimized on an idle server until the operations teams feel comfortable. The new release deployment is then staggered across servers in a cluster. One node is taken offline and updated, while the other servers process the production traffic.

Then the process is repeated for other servers until they all run the same release. This deployment method isolates any problems from the update to a limited number of systems, but requires that the operations team closely monitor and manage the new software.

A gating factor

Feature flags are software development tools that gate new functionality. Here, operations manages the entire lifecycle of a feature. Organizations perform gradual feature rollouts and disable buggy features without redeploying when problems arise. Once the bugs are fixed, all flags are removed.

Dark launching is a similar process. Software is gradually and stealthily released to users in order to get their feedback as well as to test performance. Code is wrapped in a feature toggle that controls who gets to see the new feature and when. Facebook and Google rely on dark launches to gradually release and test new features to a small set of users before fully releasing them. This approach lets operations staff determine if users like or dislike the new function. It also allows for an assessment of system performance before moving ahead with a full release.

As these different delivery options emerge, companies are looking for ways to train and familiarize their staff as part of a new software deployment strategy. Choices are limited. There are no training programs geared specifically to the emerging deployment options or that can help operations teams determine which choice works best for a particular organization.

The Linux Foundation offers courses on the fundamentals of DevOps with an emphasis on continuous integration and continuous delivery and their different release stages: the build phase, packaging and deployment.

Companies are embracing DevOps to speed up application deployment. Currently, training and certification options for an innovative software deployment strategy are more mature on the development side than the operations component.

Next Steps

Feedback loops keep ops in the DevOps

Where application lifecycle management fits

In DevOps skills, there's always room for improvement

Dig Deeper on Application Rollout Planning and Problems