The story of how DevOps, as a software development model, evolved from necessities born out of increasingly complex project environments is fascinating. Nearly a decade since its conceptualization, DevOps has flourished across the industry, allowing enterprises, from diverse markets, to adopt it at their very own pace.
One of the interesting examples of successful DevOps implementation is that of Nordstrom, an American retail chain. Back in 2004, when delivery models were predominantly waterfall, the company was grooming its ecommerce website with silo-ed development and operations teams. When the company tried to host an online sale event on a holiday, all hell broke loose as their website came crashing down with an accelerated incoming traffic.
The lessons learned from that disaster sowed the seeds for the organization’s rethinking of their project model into a rough DevOps structure. As a primary initiative, they automated the IT infrastructure of their “payment store processor” with Chef and involved collaboration of engineers from development, database, operations and other stages of the project. The result ended up being a one-time fix for what would have cost 18 man-hours every day across their 200 stores.
Companies like Nordstrom that accidentally stumbled upon the DevOps way through the operations end of the spectrum indirectly tell that enterprises, invariable to where they are in their growth trajectory, can remold and adapt themselves to the DevOps way of life; they just have to start somewhere.
By sealing the deal with the Infra-Ops team aligned to this lifestyle, they can rest assured that DevOps is adopted until the last mile; something that many of them are not sure of. In fact, according to Gartner, at least 50% of organizations that are currently using DevOps will not be able to deliver the benefits that were stated in their original business cases.
The following are some of the common DevOps Implementations via the IT teams.
Continuous Integration/ Continuous Delivery (CI/CD)
The concept of CI/CD takes the principle of DevOps and puts it on an accelerator- develop, integrate, test and deliver continuously. When an organization is said to adopt CI/CD as a practice, they are committing to incrementally improving quality at a consistent pace. With such a tall order at stake, the “ops” part of their DevOps manifesto, especially the IT teams have a larger role to play in ensuring faster time to market. With rampant cloud adoption everywhere across markets, enterprises of any size can start realizing their CI/CD dream with a solid IT game plan.
The first two elements of 5S, a world-renowned Japanese workplace organization method, seiri (sort) and seiton (set in order) talks about how organizations success starts with clearing clutter and provisioning requirements to make the overall workflow efficient. Infrastructure provisioning as a concept helps organizations achieve that discipline in a DevOps implementation. From wired-in PC resources to provisioning in the cloud, automating infrastructure provisioning is crucial in ensuring that quality and the quantity aspects of delivery go hand-in-hand.
Containerization as an idea promotes "DevOps on wheels," an idea that lets anyone pack environment and operating system resources of choice to move around and deploy the package to unleash the original setup whenever and wherever they want. The increasingly popular trend of offering Containers as a Service (CaaS) and the enablers’ market surrounding it ensures that all the stakeholders of a DevOps team can pick up and proceed with the project right from where the other party handed it over almost instantaneously.
Infrastructure Monitoring in the times of DevOps involves a lot more than mere status of servers, applications, and systems. The scope of monitoring extends beyond to ensuring that the physical and virtual resources at the teams’ disposal is and can be made available in tandem for overall corroboration and increased collaboration- the very essence of a DevOps construct. In addition to that, modern tools that are integrated with the overall automated IT setup can ensure that the resources, on-premise or on the cloud, can be optimized to ensure cost savings along with speedy delivery.
Infrastructure as Code
The concept of Infrastructure as Code (IaC), otherwise known as programmable infrastructure, takes automation in DevOps a step further and converts the entire process of setting, running and maintaining an IT setup into a bunch of executable code. One of the biggest roles of IaC in DevOps is ensuring no lags or stoppages due to unavailability of a particular setup for a developer or tester; anyone can run the code to create, run and destroy environments on the go.
The very platform-agnostic nature of this concept pushes the limits of what agility means to an organization. It is no wonder that a recent Forrester report titled “Infrastructure as Code: Fueling the fire for faster application delivery” stresses the role of IaC in a DevOps setup as the component that “fosters better collaboration between Dev and Ops teams, reducing errors and increasing efficiency.”
The 2016’s State of DevOps report by puppet labs recorded that organizations that were categorized as “High-performing” performed 200 times more frequent deployments with 2555 times shorter lead times and 3 times lower change failure rate than a supposedly “low-performing” enterprise. With numbers heavily favoring a continuous, agile, and DevOps way of project development, the non-conformists in the market can only have a limited say before they get consumed by the next big technological disruption.