What Is DevOps?
It's the one of the most in-demand skills & job in the UK in 2021 but what is DevOps?
DevOps Engineers are one of the most in-demand job roles in tech according to Hays. However, despite the demand, many do not know what DevOps is so let me explain it in 5 minutes or less.
What is DevOps?
There is not one decided definition of DevOps so I'm going to define it in my own way. DevOps is simply a culture. It's a way for engineers within development & within operations to collaborate together, on the various services or products, through the entire service lifecycle.
The service lifecycle can start from the planning and the design through to the development and deployment process to its customers.
What is the point of DevOps & why is it so popular?
Normally, when you think of engineering teams, you may think of everyone being separate & rarely collaborating but rather passing things down to another team once they are done with it. For example, you may imagine a team of Software Engineers who do the coding who, then, pass it on to the team of Software Testers to test and, maybe, even another team to deploy it.
What is the problem with this? The lack of collaboration can lead to miscommunication as well as imperfect releases to the customer which could lead to a discovery of more issues which leaves an unhappy customer and so on.
With DevOps, you are practising all of this in one with the benefit of collaboration & accountability. The likelihood of a customer receiving products that are incomplete, or not working efficiently, is significantly reduced, and changes get to the customer faster because of the culture practised with DevOps.
There is no one-size-fits-all approach to DevOps.
What are some concepts of DevOps?
There are many concepts that come up when talking about DevOps. You may also have come across these terms before.
The first is Agile. Agile is a way of bringing together different methods & methodologies in order to develop effectively. To break this down further, it's described as a sustainable way of problem solving. We have to make sure that we are able to make changes to a product that meet the needs of the customer and the business so in order to do this, we want to ensure we don't waste code because that also wastes time so we use methods to encourage productivity rather than the opposite.
Agile is one of the foundations of DevOps so you may see this mentioned when DevOps conversations are had.
Another popular concept are the Continuous Processes. You may have seen it written as CI/CD. This will stand for Continuous Integration & Continuous Deployment, or it may mean Continuous Development to other teams.
Continuous Integration is when you have an automatic process to building and testing your software or application. Continuous Delivery is when you are deploying every change into a production environment. From here, the change is automatically integrated & testing is done. Continuous Deployment is the process of where every tested change is deployed into production for customers to use.
There are also two other stages with this being Continuous Testing & Continuous Monitoring. With Continuous Monitoring, this may include using tools to monitor the performance of a business' product or services. It may set off notifications if something is wrong which helps to be able to fix any issues before any major impact is caused to the customer.
How does Cloud Computing comes into DevOps?
Many ask about how Cloud comes into DevOps but Cloud isn't practised in every DevOps team. Some use tools like containerisation tools like Docker or Kubernetes. It all depends on what backend the teams are using, & what works well for them.
Cloud can be used in DevOps to manage their infrastructure. It has many benefits including saving money & time, creating a more efficient way to manage the infrastructure to ensure the product is deployed & managed smoothly & much more.
So what can I take from this breakdown?
There is no one-size-fits-all approach to DevOps. It can be practised differently in different teams. You may find some using different Agile techniques like Kanban or Scrum, you may find others using AWS (Amazon Web Services) or GCP (Google Cloud Platform), others may be using different Configuration Management Tools like Jenkins, Puppet or Chef.
Despite all of this, and the wide variety of tools available for use in DevOps, they are all practising DevOps in the way that works well for their businesses & their teams.