Welcome!

@DevOpsSummit Authors: Yeshim Deniz, Zakia Bouachraoui, Liz McMillan, Pat Romanski, Elizabeth White

Related Topics: @DevOpsSummit, Java IoT, Industrial IoT, Microservices Expo, Linux Containers, Containers Expo Blog

@DevOpsSummit: Blog Post

Continuous Delivery Plumbing | @DevOpsSummit #DevOps #Docker #Microservices #ContinuousDelivery

DevOps teams and Continuous Delivery processes must continue to adapt and improve

DevOps and Continuous Delivery Plumbing - Unblocking the Pipes

Jack Welch, the former CEO of GE once said - "If the rate of change on the outside is happening faster than the rate of change on the inside, the end is in sight." This rings truer than ever - especially because business success is inextricably associated with those organizations who've got really good at delivering high-quality software innovations - innovations that disrupt existing markets and carve out new ones.

Like the businesses they've helped digitally transform, DevOps teams and Continuous Delivery processes must themselves continue to adapt and improve. Demands will increase to a point where the dizzying deployments seen today are standard and routine tomorrow. Even with great culture, a plethora of tools and herculean team efforts, there will be a point where many other systemic issues impose a limit of what's actually achievable with DevOps.

One way to address this is with what I call Continuous Delivery plumbing - that is, finding every process and technology issue causing a blockage, applying automation to clear the pipes, and ultimately increasing the flow of value to customers. It sounds simple in theory, but like actual plumbing you'll need to get your hands dirty.

Any idle time is terminal - Continuous Delivery goals like faster lead times often remain elusive because of the constraints deliberately or unintentionally placed on IT. It's hard of course to counter entrenched culture and procedural over-excesses, but we continue to be plagued by problems that are well within our control to fix. These include the usual suspects of development waiting on infrastructure dependencies, manual and error-prone release processes, too many handoffs, plus of course leaving testing and monitoring too late in the lifecycle.

Tools driving process improvements have to some extent helped. Now open source nuggets like Git and Jenkins enable developers to quickly integrate code and automate builds so that problems are detected earlier. Other advanced techniques like containerization are making application portability and reusability a reality, while simulating constrained or unavailable systems allows developers, testers and performance teams to work in parallel for faster delivery.

All these (and many other) tools have a key role to play, but in the context of Continuous Delivery, we often lack the insights needed to purposefully action our considerable investments in pipeline automation - if you will, automate the automation. For example, node-based configuration management is a wonderful thing, but how much more powerful would it be if those configurations were managed in context of an actual application-level baseline during the release process. Similarly, how much time could we save if test assets were automatically generated based on dynamic performance baselines established during release cycles.

Quality inspection actually sucks - There's a lot to love about DevOps and Lean, especially the transformative thinking (ala W. Edwards Deming) on why quality should start and end with the customer. Now in the consumer-centric age, customers rate business on the quality of software interactions and how quickly these experiences can be improved and extended.

But maintaining a fluid balance of speed and quality has proved difficult with existing processes. Too often interrupt driven code inspections, QA testing and rigid compliance checks are grossly mismatched to more agile styles of development and the types of applications now being delivered. Also, many existing processes only give an indication of quality shortfalls, rather than provide teams information needed to drive quality improvements. For example, application performance management (mostly used in production) should also be established into the Continuous Delivery process itself - that'll help DevOps teams continue to find the quality "spot fires" - yes, but also build the feedback loops needed to do what's really awesome - extinguish them completely.

The bar will never be high enough - as application architecture transitions from monolithic to microservice, operational capabilities will become a critical business differentiator. With literally thousands of loosely coupled services being deployed at different rates, success will depend on managing these new platforms at scale. There are other specific challenges too. Newer dynamic microservice architectures with design for failure approaches make it increasingly difficult to build consistent development environments, which when considered with complexities surrounding, messaging and service interaction means comprehensive testing becomes much more challenging.

From a purely quantitative perspective, release automation processes can (provided they scale) solve many of these issues. However, as we continue to raise the bar, it's also important to ensure that continuous delivery leverages and fuses other processes as the means to drive improvements - for example by capturing realistic performance information before testing, cross-functional teams can establish and develop much more confidence in releases. This is much preferable to the traditional approach of monitoring only ever being used to detect problems after the proverbial horse has bolted.

Business success now hinges on the ability to constantly meet the demand for innovative, high-quality applications. But this is challenging if organizations rely on systems and processes that were only ever designed to deploy software in larger increments over longer cycles. Achieving Continuous Delivery to overcome these obstacles is a fundamental goal of DevOps. This means always ensuring the ‘pipes are unblocked' by removing constraints, improving testing efficiency, and enriching processes to increase the velocity and quality of software releases.

More Stories By Pete Waterhouse

Pete Waterhouse, Senior Strategist at CA Technologies, is a business technologist with 20+ years’ experience in development, strategy, marketing and executive management. He is a recognized thought leader, speaker and blogger – covering key trends such as DevOps, Mobility, Cloud and the Internet of Things.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@DevOpsSummit Stories
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering Cloud Expo and @ThingsExpo will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at Cloud Expo. Product announcements during our show provide your company with the most reach through our targeted audiences.
Enterprises are universally struggling to understand where the new tools and methodologies of DevOps fit into their organizations, and are universally making the same mistakes. These mistakes are not unavoidable, and in fact, avoiding them gifts an organization with sustained competitive advantage, just like it did for Japanese Manufacturing Post WWII.
When building large, cloud-based applications that operate at a high scale, it's important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. "Fly two mistakes high" is an old adage in the radio control airplane hobby. It means, fly high enough so that if you make a mistake, you can continue flying with room to still make mistakes. In his session at 18th Cloud Expo, Lee Atchison, Principal Cloud Architect and Advocate at New Relic, discussed how this same philosophy can be applied to highly scaled applications, and can dramatically increase your resilience to failure.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.
With more than 30 Kubernetes solutions in the marketplace, it's tempting to think Kubernetes and the vendor ecosystem has solved the problem of operationalizing containers at scale or of automatically managing the elasticity of the underlying infrastructure that these solutions need to be truly scalable. Far from it. There are at least six major pain points that companies experience when they try to deploy and run Kubernetes in their complex environments. In this presentation, the speaker will detail these pain points and explain how cloud can address them.