Saturday 3 August 2019

To NoOps from DevOps - Dream vs Reality

We have come a long way in SDLC methodologies - from waterfall to iterative to agile to DevOps. In this evolutionary process, the main focus was on faster deployment of solutions and quicker feedback mechanisms, thus ensuring a quality product faster. The main aim of DevOps especially is to increase the rapidity and efficiency of software deployment process through collaboration between development and operations teams. But what if the deployment, monitoring and management of deployment software is completely automated? Will we need ops team anymore?

(Courtesy - C3DNA)
Mike Gaultieri of Forrester Research coined the term NoOps, where he surmised that developers will never need to talk to the operations team. This definition was further expanded by Netflix's Adriam Cockcroft. He explained that at Netflix there was no ops organization involved in running their cloud, no need for developers to interact with ops team to get things done, and less time spent in actually doing ops tasks than developers would spend explaining what needed to be done to someone else. Basically his definition of NoOps was - Automation of deployment, monitoring and management of applications. (Ref - Is NoOps the end of DevOps? Think again)

What is the difference between DevOps and NoOps? It's pretty straightforward. While DevOps talks of better collaboration between Development and Operations team by putting them together in order to speed up the creation and deployment of quality product, NoOps is about the same but without the need of having an operations team at all! It's role is taken over by automated software deployment products. So, while DevOps is more of a collaboration philosophy with or without specific software, NoOps is more about automated deployment software than collaboration.

Several PaaS (PaaS) solutions to automate deployment process are available on the market and give to developers with no skills about operations the chance to launch applications autonomously, without the need of request system admins help. Indeed, the operations team would simply prepare the infrastructure, with the aim of providing to developers an environment ready to deploy applications quickly and easily. PaaS solutions described above provide a set of services to orchestrate and manage the execution, scaling the infrastructure according to each application need. In addition, PaaS solutions include a significant number of features, including the administration of resources, servers and operative systems maintenance.According to NoOps model, thanks to these platforms developers can work autonomously and, especially, they can do without the support of system administrators. (Ref - DevOps vs NoOps)

However, everything is not as rosy at it sounds. While it is quite tempting to think that deployment and related operations support can be completely automated, it is not necessarily the case always. There are some practical issues that need to be considered -

  1. Many organizations still have a lot of legacy software and that cannot be easily transformed to work with the NoOps model.
  2. Smarter edge devices mean more data being produced and even though this data can be interpreted by machines, decisions would still need to be made in many cases by humans - including oversight. The role of ops team may change in such cases, but the team still remains.
  3. Regulatory compliance and security related issues cannot be left completely to the systems. There will have to be Ops team oversight on this.
  4. No system is foolproof and manual interventions will be needed at some point - especially when a disaster strikes and disaster recovery is needed.
While NoOps might a good way to go in certain cases, in vast majority of cases it might not be a viable option. However, It certainly can be considered as the next step in evolution of SDLC after DevOps. Even if we can't reach the completely NoOps model, improving DevOps and moving more towards automation of repetitive processes in testing or deployment will take us one step closer. So, while NoOps replacing DevOps might be a dream, a more automated DevOps is certainly becoming a reality.

No comments:

Post a Comment