Dream Has Come True!
I am a person who believes that if someone wants to do a successful job, they first need to understand what the job is fundamentally. I love how Albert Einstein put it as he states:
If you can’t explain it simply, you don’t understand it well enough.
– Albert Einstein
With that being said, I consider Amazon’s DevOps definition as a simple yet amazing definition. It describes DevOps in a rough way but also covers nearly everything. Although, it needs some elaboration.
From what I’ve seen, ~99% of the definitions on the internet don’t cover up everything related to DevOps. Let’s be ~1%.
If you know what DevOps actually is, you will start seeing things from a different, constructive, rewarding and top-view perspective and contribute even more to your team.
Amazon’s Definition Analysis
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.
Unlike other definitions on the internet, this definition seems like a good start for finding the best explanation, analyzing and elaborating on what DevOps is. Let’s investigate this beauty piece by piece.
DevOps is the combination of cultural philosophies,
Cultural philosophies of DevOps are how companies do things. From smaller source code changes to new features. This includes small autonomous teams, small batches of iterative work instead of monolithic projects, deploying applications and releasing features fast, not punishing mistakes but learning from them and probably the most important; development teams and operations teams (and QA, security and all other teams) working closely together, collaborating, and communicating all the way through a product lifecycle.
This is crucial because people think DevOps is all about automation. While this is technically and mostly true, DevOps is also about creating a collaborative environment.
These all have a main purpose-goal for sure, we will come into that later.
Methods like Agile, Lean, Scrum, and Kanban are practices for achieving all of the above.
As you guess, tools are the applications that help us to achieve all of the above. There are so many applications for this. Here is a link to a list of these applications from automation to boards which I already put in “Useful Tools” page.
that increases an organization’s ability to deliver applications and services at high velocity:
Now, this part includes automation. As nearly each definition states, DevOps is mostly about automation and making deployments, releases in a faster way.
evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
In addition to all of above, DevOps also aims keeping high quality and stability while driving fast. These are done by test automation and monitoring.
We can think of Waterfall model by traditional software development and infrastructure management processes. Waterfall is nearly the opposite of DevOps because the deployment and release procedures are so slow compared to it. Although, there are still some fields using this strategy such as Military Operations, Space Operations, Banking Companies and so on.
This speed enables organizations to better serve their customers and compete more effectively in the market.
This part is the main goal of DevOps. In the end, this approach has came up because companies want to serve products more frequently to own bigger marketshare.
In the End
We have three core requirements to achieve one ultimate DevOps goal:
- Quality and Stability
which aim for:
Serving customers and competing more effectively in the market.