First, we need some history. One of the changes in the last decade is the adoption of the cloud.
– a server is a computer that runs a service, like a website. You can think of it as a physical computer you might have in front of you, that you own.
– The cloud is where cloud companies own the physical computers and you pay to use them, and product companies keep them in their own offices.
Before the cloud, if you wanted to run software, a website for example, you would need a server to run it.
You would need to set up internet access and the software you want it to run – your website in this case. If you needed a database then you would need to install that too.
Sometimes you would have to update the software or the internet connection might break. Sometimes, you might just need to restart the whole server.
Websites became larger and needed more servers, meaning more machines to update and restart. That is a lot of time spent installing the database software. It is a full time job managing server internet connections and database updates. This job is known as “System Administration” or “Operations” (Ops).
Product companies changed to start using the cloud. To use their computers, we tell them how we want the system to work – for example, what database software is needed, using specialized programming languages.
This means developers can write code to describe the servers – but not all of it. The servers still need updates and companies still need people who know about networks so that they know what they need to describe in the code.
This is where DevOps comes in. It’s a movement to find ways for Devs and Ops to share the workload of managing cloud systems. However, nobody ever really agreed on exactly what it means. Product companies started advertising for DevOps engineers and many people see this as a bit of a joke because it’s an idea, not a job title. You might also hear “Infrastructure” or “Systems” engineers or “SRE/Site Reliability Engineer” – it is all the same thing really.
If you ask people working in tech what DevOps means, they will give you different answers because the term has evolved over a short time. This is why it is really hard to explain what a “DevOps Engineer” is – we are still figuring it out.
In summary, DevOps Engineers work with Developers to build and maintain systems based in the cloud.
The exciting part of all of this is that it involves a lot of teamwork and collaboration. The whole idea of DevOps is that developers and operations come together to find creative solutions to problems and more efficient ways of building computer systems. One of our DevOps engineers, Csilla Bessenyei, told me she feels her job is about finding new and better ways to do things – like taking a different route to school each day that takes you past a beautiful garden on the way to school, or deciding to cycle – rather than just doing things the same way you always have. It is an idea as much as a job title – and an exciting one too.
This piece was written by Emma-Ashley Lilles, Software Engineer and Csilla Bessenyei and Steve Hill, DevOps Engineers at Kaluza.