March 3, 2020
Once upon a time, American entrepreneur, investor, and software engineer Marc Andreesen wrote his famous WSJ treatise on “Why Software is Eating the World”? In the year 2011, this would almost sound futuristic. But we know that is what happened later on. Look at the way companies like Uber, Amazon and Airbnb have disrupted the workings of transportation, retail and hospitality industry respectively. This goes on to prove that software is digitally transforming every business with disruption and innovation and that this trend is here to stay.
The Information Technology (IT) landscape is undergoing a radical change as companies are migrating from traditional data centers that run siloed client /server applications on-premise to running cloud-native applications on highly virtualized infrastructures. Faster go-to-market, desire to adopt digital transformation strategies to disrupt traditional markets and need to remain competitive are some of the factors driving this change. It is no less than a corporate war room and here it makes sense to completely agree with what Brett Hofer wrote in his 4 part blog series on the Art of DevOps way back in 2015. As he draws a parallel between the Art of War and the Art of DevOps he drops in a vital piece of advice. He writes,
“Ultimately, we’re fighting for the absolute best services and features that we can deliver to our customers as quickly as we possibly can. We seek to be victorious over our competition, successful in informing and meeting or exceeding the expectations of our commanding officers while preventing and mitigating casualties caused by critical issues and poor performance.”
While the above quote sufficiently sums up why DevOps exists, it will help if we define DevOps first.
Definition: DevOps is an amalgamation of cultural and technical philosophies of software development, quality assurance and IT operations united into a single system that is managed centrally. The overarching purpose of having a DevOps philosophy is to increase the speed at which both applications and support services are delivered. At the same time, DevOps emphatically negates the bimodal notion that speed, and stability are mutually exclusive, and instead reinstates the concept that speed depends upon stability.
In the last decade, this is the thought that has driven multiple companies to wholeheartedly imbibe DevOps into their corporate DNA. In fact, the early adoption of DevOps (albeit in their own versions) in larger tech companies like Google, Salesforce, Facebook, and Netflix, has helped them scale their operations and at the same time continue to give excellent customer service.
DevOps is essentially a transformative methodology that encompasses culture, innovation, and technology in one single frame to efficiently organize workflows to achieve faster GTM at optimum costs and subsequently driving more value to customers. While these are the broad benefits, let us look at some of them in greater detail:
1. Reduced operational costs:
While DevOps is known for helping enterprises achieve continuous software development, it is also highly regarded by enterprises for reducing operational expenditures by lowering costs involved in software development, deployment and maintenance.
2. Continuous delivery and iterative development:
Practicing DevOps within the organization promotes continuous delivery and iterative development of projects. Continuous and iterative delivery helps in the consistent and successful deployment of new product features as regular increments thereby helping reduce risks.
3. Greater synergies between development, testing, and operations teams:
The whole idea of DevOps is to break down the silos that exists between teams in order to enhance cross-team collaboration and reduce repetitive work. The method enables continuous feedback to create a highly efficient environment where building and testing of software, as well as deployment, can happen in tandem.
Quicker turnaround of change requests
As the complexity of enterprise mobility landscape increases and stakeholders and customers expect quicker turnaround, enterprises have started looking at DevOps as the savior. DevOps is a pro-active approach to change management as opposed to the traditional reactive nature of change request management that was being followed earlier. As DevOps offers continuous integration and delivery of incremental changes, it offers a quicker turnaround of change requests by assessing risks and impacts simultaneously.
Improved monitoring and quicker service recovery
The beauty of employing the DevOps methodology is that it helps fully integrate functions like HA, auto-scaling, disaster recovery, and service monitoring into one solution. The monitoring part of the DevOps toolchain helps in measuring and reducing the Mean Time to Recovery.
Improved software quality enabled by automation
Owing to the close collaboration between engineering and operations teams, DevOps helps provide an overview of the software development pipeline. All SDLC phases testing can be automated and integrated for overall product health thereby improving software quality.
As every organization under the sun is adopting a cloud strategy DevOps does not remain a matter of choice anymore. After all, there is no point deploying code and installing fixes as it was done in yesteryears. It is time that enterprises irrespective of their size imbibe best practices from industry leaders like Amazon, Netflix, Google etc. and completely rethink and rearchitect their approach to software development, testing and deployment by adopting the DevOps Methodology.