What is DevOps?
What comes to mind when you hear the word ‘DevOps’? Do you start thinking of a bunch of tools? Is it simply technical jargon that few non-technical folk really have a grasp of? Do you think it’s the latest silver bullet for solving all software development issues?.
There is no prescriptive definition of framework that DevOps follows, which is one of the biggest issues people have when trying to wrap their head around it. It is not a silver bullet, or a tool you can simply implement and move on. DevOps is a set of practises that focus on shortening the software development lifecycle whilst maintaining a high quality of continuous deployments.
How does DevOps work?
The typical DevOps practices involves ensuring the Operational Team (the team supporting the software once it is deployed to a production environment) and the Development Team (the team developing and testing software) work collaboratively as one unit, using tools to automate testing and deployment in a way that enhances the software development experience.
As DevOps evolves, the teams involved in the development process is expanding to further optimise software development efficiency. For example, the involvement of software security teams has seen the emergence of DevSecOps, where the Development, Security, and Operations teams all work together harmoniously toward a shared goal.
What is the goal?
DevOps is a concept aiming to create cross-functional, product-centric teams, that work collaboratively to reduce the time it takes to deliver high-quality software to users. It is a holistic set of practises that help businesses achieve agility, by aligning people, process, technology, and data.
What are the basic principles?
While there is no prescriptive definition or framework, typically there are three primary practice concepts directed by DevOps:
Automating the provisioning of infrastructure components used by App Deployments i.e. Infrastructure as Code.
Automating the building, testing, and deployment of App Deployments to each environment.
Site Reliability Engineering.
Automating the orchestration and management of App Deployments for scalability and reliability.
Not just just about technology.
Every DevOps practice needs a toolchain, a set of distinct tools that are linked together, but it’s important to remember that DevOps is not just about technology. It is a holistic set of practices for optimising software development workflows and addressing cultural barriers and inefficiencies. It’s a journey, not a destination.
DevOps is about continuous improvement built from continuously assessing practise, recognising the things that could be done better, then implementing changes. If you’re using DevOps in combination with Agile, it’s important to take note of a few things.
“Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning.” – Albert Einstein