DevOps: Shift Left to Reduce Failure

DevOps is all about increasing the feedback loop from idea to customer and back again. Tremendous gains have been achieved in automation and tools to drastically reduce the amount of manual labor involved in progressing down the release pipeline. But mission-critical applications in a highly competitive market cannot afford to go down. Complex applications, environments and infrastructure increase risk, which can cause failure.

The failure rate of production deployments is still too large. Studies show that the average cost of a production outage is roughly $5,000 per minute, while the average cost of a critical application failure per hour is $500,000 to $1 million.

Why so much failure? All too often we’re still seeing a lack of consistency across the release pipeline. Many times the provisioning and deployment processes are very different at the opposite ends of the pipeline. But by shifting left the operations concerns, you can achieve much more success in production.

Understanding How to Shift Left

The term “shift left” refers to a practice in software development in which teams focus on quality, work on problem prevention instead of detection, and begin testing earlier than ever before. The goal is to increase quality, shorten long test cycles and reduce the possibility of unpleasant surprises at the end of the development cycle—or, worse, in production.

Shifting left requires two key DevOps practices: continuous testing and continuous deployment. Continuous testing involves automating tests and running those tests as early and often as possible, along with service virtualization to mimic unavailable systems. Continuous deployment automates the provisioning and deployment of new builds, enabling continuous testing to happen quickly and efficiently.

The first and most obvious way to shift left operations is to work side by side with development in creating the deployment and testing processes. Failures observed in production often are not seen earlier in the life cycle. Many times these failures can be attributed directly to differences in deployment procedures. Development may create its own deployment procedures that are very different from those used by operations for production. Sometimes production procedures are much more manual and may even use different tooling. Operations and development need to take ownership in building standard deployment procedures. The deployment process is then practiced potentially hundreds of times in test environments before reaching production. You then have much more confidence that the production deployment will be successful.

Another way to reduce the failure rate is to make all environments in the pipeline look as much like production as possible. This is almost impossible using traditional provisioning processes. Production environments usually are much heavier and detailed than are needed by development. But by using cloud and pattern capabilities, you can get much closer.

The ability to use patterns to define consistent environments eliminates the failures that occur simply by configuration inconsistencies. This again requires operations and development to work together in creating the provisioning process so developers create their test environments the same way they are created in production. Using IBM UrbanCode as an example, this can be done by connecting UrbanCode Deploy to an automated self-service provisioning system such as OpenStack HEAT or IBM Cloud Orchestrator connected to OpenStack.

Picture1

These standard patterns can be used to create environments for all stages of the pipeline. And by using cloud capabilities you can deprovision these environments as fast as you can create them. This also allows the enterprise to have confidence in their environment patterns. They are tested on a daily basis and, therefore, operations can feel confident that testing is done on production-like environments.

No one wants to experience production failures—and it is in everyone’s best interest to do all they can to prevent them. At the root of DevOps is the removal of those silos between development and operations. By applying these shift left operations principles you are well on your way to reducing your failure rate.

The ingredients to make shift left are real and available: automated testing and deployment tools, service virtualization technology, agile practices and cloud environments. The main obstacle that remains is the mindset of delivery organizations. Learn more from the newly updated Application Deployment and Release for Dummies ebook to find out more.

About the author / Dr. Darrell R. Schrag

Darrell Schrag

Dr. Darrell R. Schrag (@devopsdrs) is an experienced software lifecycle consultant specializing in the IBM cloud solution, helping customers establish their cloud strategy across the enterprise. He’s focused on implementing continuous delivery of software applications through the delivery pipeline incorporating cloud and provisioning solutions. He’s experienced in helping clients transition to “born on the cloud” applications utilizing microservices to take advantage of a flexible and nimble cloud platform.

Comments

20 responses to “DevOps: Shift Left to Reduce Failure”

  1. […] DevOps is all about increasing the feedback loop from idea to customer and back again. Tremendous gains have been achieved in automation and tools to drastically reduce the amount of manual labor involved in progressing down the release pipeline. But mission-critical applications in a highly competitive market cannot afford to go down. Complex applications, environments […]The post DevOps: Shift Left to Reduce Failure appeared first on devopsy.kinsta.cloud.  […]

  2. […] DevOps is all about increasing the feedback loop from idea to customer and back again. Tremendous gains have been achieved in automation and tools to drastically reduce the amount of manual labor involved in progressing down the release pipeline. But mission-critical applications in a highly competitive market cannot afford to go down. Complex applications, environments and infrastructure increase risk, which can cause failure.The failure rate of production deployments is still too large. Studies show that the average cost of a production outage is roughly $5,000 per minute, while the average cost of a critical application failure per hour is $500,000 to $1 million.  […]

  3. […] team – but I will say that even I, as a leader and someone who gets on a soapbox a lot about pushing left, had not explicitly emphasized or required these things as first class features […]

  4. […] no need to introduce another silo by testing your code changes at the end of the workflow. Shift tests to the left because you need to test early, often, and with confidence. You need a way to certify that what […]

  5. […] left requires two key DevOps practices: continuous testing and continuous deployment,” says Dr. Darrell R. Schrag, Watson and Cloud Platform Architect at IBM. “Continuous deployment […]

  6. […] actually hadn’t heard the “Shift Left” term before, but after reading about it, I recognize the concept. It basically means testing should be performed earlier when possible, […]

  7. […] as testing and development remove wasteful coding and testing processes. That comes with a “shift left,” the process that moves testing to an earlier stage of the software development cycle. By […]

  8. […] den agilen Prinzipien von DevOps zu lernen und sich zu eigen machen. Eines dieser Prinzipien ist «Shift Left», welches besagt, dass Kontrollen und Qualitätschecks nach Links – respektive früher in den […]

  9. […] DevOps approach is all about shifting left. Automation of the build process, test execution, and deployments are basic DevOps steps, and this […]

  10. […] to devopsy.kinsta.cloud “The term “shift left” refers to a practice in software development in which teams focus […]

  11. […] concepts of “shifting left” and, to a lesser extent, “shifting right” in CI/CD are gaining visibility this year. As release […]

  12. […] wanted all requests going through his new service desk tool, where data went to die. Any hint of left-shifting was missing here.One development manager from another team we had cross dependencies with even […]

  13. […] understand why this “shift left” is so important, consider recent revolutionary changes in the software testing function. Not […]

  14. […] to devopsy.kinsta.cloud “The term “shift left” refers to a practice in software development in which teams focus […]

  15. […] may have heard of “shift-left” and DevSecOps. At SAP, we now apply these principles to public cloud security and policy […]

  16. […] may have heard of “shift-left” and DevSecOps. At SAP, we now apply these principles to public cloud security and policy […]

  17. […] using tools that continuously integrate and scan in-process. It is an approach that represents a “shift left” in the DevOps world, a practice in software development where problem prevention is the priority […]

  18. […] an approach that represents a “shift left” in the DevOps world, a practice in software development where problem prevention is the priority […]

  19. […] an approach that represents a “shift left” in the DevOps world, a practice in software development where problem prevention is the priority […]

Leave a Reply