In this blog, we will be discussing about the cultural shift from DevOps to NoOps. At its essence, a DevOps involves closer collaboration and a shared responsibility between development and operations for the products they create and maintain. It involves cultivating multidisciplinary teams who take accountability for the entire lifecycle of a product. They strive to communicate frequently, increase efficiencies, and improve the quality of services they provide to customers.
This is the theory behind devops and creating a devops culture in a company. But in reality there are a lot of difficulties associated with creating a devops culture. Operations teams that are not very deep into development won’t have a full understanding of what the code they’re deploying is supposed to do. This is okay when you’re releasing code less frequently, say twice a year, but it doesn’t work when you move to weekly release cycles. DevOps is also a difficult culture to breed as you grow because staffing excellent operations talent isn’t easy, even if you have the budget to do it. For one fintech company which I interacted with, it just wasn’t feasible to build a 50-person ops team consisting of top talent. Even if they could, they’d be easily frustrated because top talent wants to move quickly – they don’t want the roadblock of always having to confer with another team.
In my interaction with 100+ developers and devops engineers, I understood that friction between developers and the operations team is one of the major reasons that leads to poor product delivery and increased downtime. Developers keep complaining about doing tons of operations work which reduces their productivity and results in slower product delivery. According to GardenIO, developers spend 15 hours a week doing unproductive tasks like setting up dev environments, debugging pipelines, waiting for builds, doing load testing and analyzing results.
In my own experience, an outage happened which could have been resolved within minutes, but due to poor communication between developers and devops it took 4 hours to resolve the outage. A recent outage in Facebook(now Meta) cost them $160 Million in revenue. Not only that, they lost $40 Billion of market capitalization due to the outage.
In a DevOps culture, you have a team, typically the Ops team, that is defining how production monitoring, alerting, etc work. Staging and development environments are typically monitored differently by developers themselves. With the NoOps culture in mind, we wanted to shift the full monitoring responsibility to the development teams, so that testing could happen in production, also known as “shifting Left.”
Hence, I strongly believe that NoOps culture is the solution to the problems of Devops Culture. At big organizations like Google, Apple, Netflix, Uber, they have created this NoOps culture by heavily investing in automation to play the roles of deploying, scaling, monitoring, and improving software. They no longer have a DevOps team that’s dedicated to protecting the development team from doing things wrong in production; instead, they have self-diagnostics and self-healing that does this automatically.These big organizations like Google, Apple, Netflix, Uber can afford to put so much effort and resources into automation. Now the question is how can small and medium companies achieve this automation and create NoOps culture. Majority of the DevOps automation tools are focused on reducing the efforts of DevOps Engineers. Developer still has to follow the process, communicate with the DevOps Team to get the things done. Hence we bring the concept of NoOps which means no operations for every company. Its philosophy is to remove all the platform management parts and reduce friction between developers and infrastructure. The infrastructure is a big management cost and produces friction between developers and operation Always. The purpose of NoOps is to define a process where there is no need to combine the part of the development with the operation to make things work. NoOps has a goal: make everything deployable by design with no effort from anybody.NoOps, aims to improve productivity and deliver results much faster than DevOps. In the ideal scenario, developers never have to collaborate with a member of the operations team. Instead, they can use a set of tools and services to responsibly deploy the required cloud components in a secure manner, including both the code and infrastructure. Now you must be interested to know how you can implement NoOps culture in your organization.