DevOps Is Dead, Long Live NoOps
Learn why DevOps is not enough
Sorry for writing this clickbait title. I hate to use these tricks, but I needed to get your attention. In the IT trend, DevOps is the buzz word, nowadays. It happened some years ago with front end, when SPA (Single Page Application) became rampant.
I think it is usual in technology adoption. There is a moment when a new technology is breaking, adopted by enlightened people, becomes accessible to all, and spreads.
That happened to DevOps during the last few years. In the next few years, you will hear the new buzz word: NoOps.
What Is the Difference Between DevOps and NoOps?
DevOps is the fusion of development and operations and is the practice of development and operations engineers collaborating together to define processes that drive the service lifecycle, from the design to the delivery.
NoOps means no operation. Its philosophy is to remove all the platform management parts and reduce friction between developers and infrastructure.
Why Do We Need DevOps?
Technical and business requirements are more challenging and IT service becomes more and more complex. That’s why the delivery is so important and why we need to orchestrate the whole process.
With the cloud, we don’t need more sysadmin, but DevOps technical and business skills are in high demand. To implement DevOps and move into a place where the benefits flow, you need to think beyond technical delivery.
Why Didn’t We Have DevOps Before?
There are many answers to this question. You may say that it wasn’t necessary because scenarios were simpler or there wasn’t enough culture.
I can agree with these arguments, but I think the root cause is another. From my experience, the bigger issue was due to technology. The automation of delivery was hard to implement.
Most of the systems, ten years ago, didn’t have a one-step build or a well-defined workflow like git-flow by default. At that time, there weren’t any cheaper CI solutions, so what is hard to implement is not implemented.
I remember 2009, when I was going to deploy a .net portal. It was one of my first works. I spend a Saturday morning trying to create an automatic deploy system using an open-source tool and in the end, I quit.
I understand that maintaining such a system was more expensive than deploying it manually. Nowadays, using Azure DevOps, I can do it in ten minutes just by using a web browser. Time changes.
Why Do We Need More Than DevOps?
It’s easy to understand why, after a lot of effort to introduce DevOps in your company, you may think you are fine. The matter is that, in the IT world, things change quicker than you.
The market requirement is so much more demanding now that you cannot simply say: “I’m tired of changing, please give me a rest.”
The coming of the cloud makes things more complicated. It allows us to implement complex solutions and solve a lot of challenges but requires more skill.
All parts of your cloud are sold as scalable, but it always needs some DevOps to be set. This means that you always need some manual effort. You still have a person behind most parts of the process. This means working in the old way.
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.
Basically, a NoOps approach is the following: the developer commits the code into the repository and everything is deployed. It may seem exactly like continuous delivery but it is more. Here, for deployment, we mean not only the application but the infrastructure also.
How Is NoOps Possible?
As for DevOps, NoOps is enabled by technology. There are many options here but, basically, we can summarize as follows:
- A PaaS solution, like Heroku, or a cloud service hosted on Azure, AWS, and all other vendors.
- Serverless computing bought from the big vendors (AWS, Azure).
- Creating your replicable infrastructure (yes, this needs operations almost for the first time).
Such solutions are good for resolving the infrastructure part and traditional deployment tools can drive the process and deliver the applications.
Not All That Glitters Is Gold
I admit that the idea of removing infrastructure management is tempting. It’s like removing a bad tooth. The infrastructure is a big management cost and produces friction between developers and operation. Always.
But the point is another. Infrastructure is not the issue. The issue is in the process. If the process is well designed, you won’t have friction, you won’t have delays, and everything will work correctly.
Are you scared about management costs? Just consider the whole cost, not only management. Maybe your non-PaaS cloud-based infrastructure cost more in management but in the end, the cost is the same. It depends. Confused?
I’m telling you a secret. There are some applications that can be deployed on PaaS and others can not. That’s all.
If your application is simple, PaaS is a good solution and DevOps people will be happy to work less. If you are launching the next Netflix, maybe you will need more control.
That’s why, in the end, there are no DevOps and NoOps. There is only one driver: create smart infrastructure with as little maintenance effort as possible and automate everything. Using a big cloud service like Google Cloud or others, you will find the best solution for your scenario.
So, from this point of view, what is NoOps? Just another buzzword in the cloud transformation trend.