What is DevOps? (Yeah, now!)
Isn't it too late to talk about "What is DevOps?". Industry has moved far ahead on DevOps. Every cloud has its own DevOps certification. Is it really the time to talk about this topic? The answer is Yes because what if we are doing it wrong.
Feel free to join the LinkedIn gourp for discussion and queries.
Basics
Let's start with Why. What is the purpose of DevOps? To increase the speed, cut overhead and improve quality of our products to the market. For that matter why do we try anything in business? There are three factors:
- Increase speed
- Improve quality
- Reduce cost
- Cut overhead
Only Reduce cost is not applicable in DevOps because by using so many tools and people to set it up, we increase the cost. Let's hope that we are clear on the Why of the DevOps.
Real world
So, let's move to how the real world of DevOps is for various people.
Service consuming company
All of the wants to do the DevOps as long as it is a new project. For some old projects, or in some cases of enterprise, for maintaining the consistency, they do not go for DevOps, else everyone wants to be there in there project. It's a trend!
Service providers
Every service provider company would have some accelerators to woo the clients. Some home-grown DevOps framework or platform. I too created one and witnessed many others. Also, they would like to showcase and push for the DevOps for any new coming projects, just in case client didn't proactively asked for it.
Cloud providers
Look at any cloud provider, they would have a set of tools to handle DevOps in their own cloud. Few platforms like OpenShift also provide you code to deployment in few simple steps. Not only cloud providers, now even code repositories like GitHub, GitLab and BitBucket come along with concept of pipeline which automate the code release steps. Not only that, there are many professional certifications by major cloud providers just on their DevOps tools.
Job Description
Look at any job description related to DevOps. What did you find other than the candidate must know hell lot of automation tools, some experience in cloud technologies, good unix/linux knowledge, knowledge in few scripting languages - basically tons of automation knowledge.
About the DevOps Architect, this is probably the most irrelevant job in the IT industry. It's more of imagination skills than a designation, in my opinion.
Aspirants
You might have heard a lot of developers saying, "I want to be a DevOps professional." In most of the cases the motivation is the high paycheck DevOps guys get. Even you might be knowing few Ops guys, who suddenly started calling themselves as DevOps professional/practitioners.
Process
Simple questions:
- When you say you have DevOps in your project, what do you exactly have other than CI/CD pipelines?
- Is there a team who does builds and deployments for you?
- Post DevOps implementation, what got increased - Numbers of rules to follow or the ease of work?
What went wrong?
We got too very attached the automation part of the DevOps - that's what went wrong.
- We are too much into the What and how of DevOps than the Why of the DevOps.
- Our focus is not on how to improve the productivity.
- Our certifications teaches us how to use various tools, they don't teach us how to think of improving quality and speed.
- Our approaches are not towards solving the practical problems, they are more about how to automate more and more.
- Our aspirants don't realize that changing the designation or learning 10 automation tools and scripting can make the to the tasks, but won't make them think on how to approach for DevOps.
Conclusion
So, what is DevOps ?
- Yes, there is a lot of automation, but we need to know what all is to be automated. It does not end with CI/CD pipelines.
- DevOps is about increasing speed, improving quality and cutting overhead - Repeat it 100 times daily. If anything you do, which makes you work against this, you are killing DevOps. It's ok to find opportunities slowly.
- DevOps does not happen if you need to depend on a team to get your build and deployments done. It also does not mean that you allow everyone to do everything. Find your sweet spot!
- Find out the unique things which matter to your team and build the feedback system accordingly. Every team is unique and hence the DevOps solution for the team needs to be unique, with some best and common practices in place.
- Don't do unnecessary over engineering and build things, which are not needed by the team. Team's productivity is the top concern, not the technical arrogance of the automation.
Yes, in lot of cases, our focus is misplaced about DevOps and we need to fix it.