Fail Forward, Fail Fast - Part 1
August 23, 2017

Mike Cuppett
Author of "DevOps, DBAs, and DbaaS"

Application programming interfaces (APIs), microservices, web services, and objects have all been "invented" to eliminate complexity, unreadability, tremendous testing requirements, and massive release risk associated with applications containing thousands, hundreds of thousands, or more lines of code. Even "package" applications can require multiple objects (packages) to be modified for a single functional change. Each touch point increases risk.

Dissecting large code segments into services, for example, decreases the time needed to find the code to be modified, which reduces testing time. With DevOps, the duration is decreased further by using automated testing and minimizes the potential release impact on the production environment.

Compiling, packaging, and deploying large applications at once into production are some of the major reasons for disgruntlement between development and operations. The release causes huge problems for the business and customers, with operations under the gun to find and rectify the failure — often with no development assistance. That division ends with DevOps.

Now that development and operations work together during the coding, testing, release, and production support phases, true partnerships develop that provide significant business value and team harmony.

Services mimic real-life situations, increasing focus. Here's a bank analogy: when you step up to the teller to make a deposit, you expect a quick and problem-free transaction to occur. Really, you care about little else. The teller does not need to know how you got the money, where you came from, or how you got to the bank (whether you drove or had someone drive you). This information doesn't matter for the transaction to be completed.

For you, knowing how the bank checks to make sure you are a customer with an active account, how the money flows from the teller to the safe, how the transaction is audited internally, or which bank industry best practice for deposit transactions are being applied means little. You simply want to hand the teller your cash and/or checks and a deposit slip, and receive a receipt verifying the deposit into your account. Managing code as services or APIs, for example, supports real-life conditions by reducing code to the smallest number of lines or functions needed to carry out its purpose.

Code that expects and accepts only a few "requests," which then performs one or two discrete actions and finally returns the "response," makes it possible to accept the "fail fast, fail forward" model.

Being able to deploy distinct code elements quickly, matched with the ability to deploy the next release version or the previous version, facilitates moving forward, even on failure. The small program unit minimizes the production impact upon failure — maybe only a few people experience the problem instead of a large set of application users when large code deployments go wrong.

Instead of backing out a massive change because it would take too long to find the root cause for the failure, the small footprint can be overlaid quickly, rectifying the problem while potentially advancing the code. This model makes sense, although years of "backing out" have incorrectly indoctrinated our perception. Think about it; have you even fallen backward when you trip while walking or running? No, most likely you recover without falling, or momentum keeps you moving forward even if you do fall.

DevOps leverages momentum to maintain forward progression. Remember, though, failing forward cuts across the grain for DBAs who are used to protecting operational stability at all costs, making not rolling back failures a seemingly unnatural act. Experiencing only frequent successful fail forwards brings DBAs fully onboard.

This blog is an excerpt from Mike Cuppet's book: DevOps, DBAs, and DBaaS

Read Fail Forward, Fail Fast - Part 2

Mike Cuppett is a Business Resiliency Architect for a Fortune 25 healthcare organization, and the author of "DevOps, DBAs, and DbaaS: Managing Data Platforms to Support Continuous Integration"

The Latest

February 15, 2018

Organizations are focusing investments on security and analytics, while actively researching emerging technologies such as machine learning and artificial intelligence, according to the 2018 CIO Tech Poll: Tech Priorities survey ...

February 14, 2018

With so many other initiatives to manage, DevOps isn't a top priority for all companies now. Many organizations believe it's wiser to wait. But in fact, the business case to integrate now is very strong — in fact, it's "do or die" territory. This infographic outlines some key reasons why organizations should integrate their software delivery value stream immediately ...

February 12, 2018

Accelerating multi-cloud deployments are enabling organizations to select the cloud platform that best meets the requirements of a specific application, according to the 2018 State of Application Delivery report from F5 Networks. However, this also increases the challenges many companies face in managing operations and security across multiple clouds as they transform their application portfolio to compete in the digital economy ...

February 08, 2018

The slowness of enterprise IT departments to embrace automated, cloud-native solutions for the cloud infrastructure challenges they face has resulted in IT infrastructure that is often ungoverned and insecure. And this is despite the fact that the cloud can be more secure as traditional data centers ...

February 06, 2018

Bank IT teams must embrace that their DevOps capabilities will determine their agile capability. Agile breaks down the barrier between the business and IT, and operations must be treated as a critical element of an agile program. In modern software delivery, the business, development and operations must execute as a unified team. To achieve this, banks are increasingly turning to Continuous Integration (CI) practices as part of the solution ...

February 05, 2018

IT professionals show a heightened concern for cybersecurity risk related to API use, according to a new survey conducted by Imperva. Specifically, 63 percent of respondents are most worried about DDoS threats, bot attacks, and authentication enforcement for APIs ...

February 01, 2018

DevOps are pretty clear for application development, those same applications often have a database back-end. If DevOps is increasing the frequency and reliability of new features for applications, a slower pace of database development can slow down and hinder those same releases ...

January 30, 2018

Without a doubt, DevOps is becoming the go-to strategy for organizations of all industries and sizes looking to master digital transformation and provide the fastest value to customers through software delivery. It is becoming clear that organizations adopting DevOps need a true leader (or engineer) to keep the transformation on track. The following are some tips when hiring for DevOps ...

January 29, 2018

When was the last time your company experienced a significant database error? If it happened in the last 3 months, you’re in good company. In a recent study, 60% of respondents reported a crash or significant database error occurring in the last 6 months. Roughly one in ten respondents reported a serious database problem in the past week ...

January 25, 2018

You've already recognized that business transformation requires digital transformation. Your organization is staffed with the best and brightest developers ready to implement the innovative, business-differentiating technologies you need to attract, engage, and retain customers. And you've invested in scaling Agile, driving DevOps adoption, automating the Continuous Delivery pipeline, and all the other components involved in moving from ideation to delivery as rapidly as possible. So what could possibly go wrong? Testing ...

Share this