DevOps explained easily.
DevOps – You can’t buy it, you can’t physically touch it, yet you have to trust that its results are worth the effort of implementing it. But what is it? Most importantly, why do businesses, articles, and techies seem so obsessed with it?
For starters, let’s establish what it isn’t.
It is not a single software, a tool, process, company, or a magical wish-granting genie. Glad we got that out of the way.
Think of DevOps as a strong bridge, between two teams, that in the traditional application production, have some unresolved “beef”: development and operations. That’s where the name DevOps originates as well.
But why do these duos not get along traditionally?
Take a look at all the applications and devices that you use on a day to day basis. All of them had to go through a specific cycle, from design through the development process, to production support.
Now, in organisations that use old methodologies, the standard is that developers deploy code and operations team maintain it.
There’s no clear communication between them and an unnecessary wall of confusion. Seems kind of familiar doesn’t it? To make it easier, let’s say we are dealing with the generation gap of the youth vs the old.
And that’s when the tension arises.
A developer is someone who writes and debugs code to create software and applications. They’re usually encouraged to create, innovate, and generate as much change as possible. Developers want to make their software better, and offer users as many updates as possible. Youthful, one might say.
By contrast, operations (the elderly) see change as the enemy. They have one objective in mind: balance.
They make sure everything is operating optimally and for network resources to be available and functioning perfectly. When that balance is achieved, any new demands on the network resources threatens that stability of the environment. Change requires effort and investment, so it’s a no-no.
We can understand why these two teams might clash in traditional organisations, even though they ultimately want the same thing: to be as productive as possible.
And this is where our dear old DevOps comes into play, breaking down barriers.
Teamwork makes the dreamwork.
DevOps culture promotes collaboration between Development and Operations Team, by deploying code to production faster and in an automated & repeatable way.
With it, it’s possible to create identical working environments for development, testing and IT operations teams. That becomes achievable when infrastructure as code (IaC) is applied.
The goal is to get rid of situations where software works properly in the testing environment but fails in production.
So that’s why a DevOps engineer creates a new development or testing environment aligned with the production environment. After that, developers and test engineers can work with new builds, and remain certain that the created development and testing environments are completely identical to the production.
Continuous testing is one of the key components of the DevOps approach as well. To achieve it, testing is automated with the use of specialized tools. And they’re not the only ones being used during this cycle.