What a DevOps engineer does?

564 viewsEngineeringOther

I am recruiting devops engineers / SREs and am having trouble understanding their role in an organization. Bonus points for explaining Terraform, Python scr,ipting and Kubernetes. Thanks!

In: Engineering

6 Answers

Anonymous 0 Comments

Devops specifically deals with development tasks and deployment of a service. SREs specifically deal with making sure those services stay running and responsive. Services can be anything from an API other services use to a full blown site like Reddit.

Terraform is a tool used to manage the servers said services run on. Python is a scripting language typically used to automate tasks run on a server (like installing or starting/stopping applications). Kubernetes is a tool used to manage (restarting services that stop responding, scaling up/down depending on load, etc) the software parts that keep your service running.

Anonymous 0 Comments

**Devs** make stuff. Software Developers.

**Ops** keep stuff running. Operations. IT Sysadmins.

**DevOps** do both. Usually they make stuff to keep stuff running. Keeping things running is more and more complex these days so we’re writing code to manage it.

**Terraform** Never heard of it.

**Python scripting** it’s just a programming language. Usually interpreted. Nice to write scripts in. Scripts are just short programs that aren’t too complex. If you get a giant pile of scripts that can be just as complex and unworkable as serious software programs.

**Kubernetes**. It manages containers I believe. Containers are just things that run in virtual machines. So when your build target is a container, it’s compiling to specifically work in a virtual machine. And virtual machines can run on a bunch of different hardware so that program can easily be sent to run on an old x86 PC, a new swanky laptop, off in the cloud, whatever. It’s easier to ship. Kubernetes just keeps tracks of what’s where. If the load of some program is too high, it can spin up another virtual machine and put the same program on it. This is the sort of thing that sysadmins used to handle by buying another computer, installing stuff on it, plugging it in, and appending it to all the other configurations. Now it’s done automatically with tools which launch more virtual machines. Which is why Sysadims need to code so they control those tools. Hence, devops.

Anonymous 0 Comments

Devops is quite a bit like a hands-on team leader. Like a sergeant in military. Or more bluntly – “the responsible”. It’s a rising, but dreaded position, because it “fixes” a problem that shouldn’t exist to begin with – poor coordination between developers and sysadmins.

Even more bluntly, software developers and sysadmins are rarely vocal and social people. No matter what job description says on paper, devops is usually one to pull words out of everybody and get a picture of what’s being done, evaluate it, then report it further up the chain. But to do this well, devops has to be very good in everything teams do by themself, as well, because your classic middle management or HR worker couldn’t understand much.

Scripting is often misunderstood. It’s basically programming, but with a very narrow goal. For example, you have fifty photos from your phone, named “DCIM0120312.jpg” etc and want to organize and rename them all. Renaming each file manually would take entire day, but you could write a little script that’d do it for you, add a date in different format automatically, and so forth. In seconds. Scripting is good for automation tasks. Python is one of most popular scripting languages.

Anonymous 0 Comments

It is a very hard position to define, I say that because this is my current title. It can mean different things for different organizations and even different parts of the same organization. It is a mix between developer and system administrator. You could say it is a developer who helps integrate the application into the production system, or a system administrator who develops tools to automate this job.

Scripting is the act of writing scripts, small applications which does simple things. You can kind of compare it to scribbling notes where you do not need fully finished documents. Python is a programming language which is commonly used to write scripts. DevOps engineers do a lot of scripting. A lot of the problems we are solving is very limited in scope where a small script is much faster to write and sufficient for the job. A system administator tend to not have to write as much logic and a developer usually deals with more complex problems that require more fully fledged programing techniques.

Terraform and Kubernetes are different tools used for deploying and operating software. There is a bit of overlap but in general terraform is used to set up cloud infrastructure, such as virtual machines, storage, networking, etc. while terraform is used to run small containers on those virtual machines. They both use a comprehensive configuration language where you specify how the world should look and then these tools make sure that it looks this way.

Anonymous 0 Comments

The role of a typical software engineer is to build an application. For a devops engineer or SRE, their role is to deploy the application to end users and keep it running smoothly.

Let’s say you have a web app, I’ll pick a big online store as an example.

The engineers are building the features. They’re writing the code to make the app work well on mobile. They’re adding features so you can pretend to try on a shirt before purchasing it. They’re implementing coupons that give you 40% and expire at the end of the week. They’re writing algorithms to compute what other items each customer might like based on their past purchases.

These days, web apps run “in the cloud”. The cloud is really just renting a bunch of computers in a big warehouse from companies like Amazon, Google, or Microsoft that have machines for rent all over the world.

When a customer uses your web app, they’re connecting to these computers in the cloud. Those computers host the website content, large files like images and videos, and the databases where all of the inventory is stored. Those computers also handle transactions with other partner companies – like maybe a payment processing site that you use to take money from customers.

The job of devops / SRE is to make sure all of that stuff is running 24/7. That includes:

* Adding more computers if customer traffic is higher
* Upgrading to devices with larger disks or more RAM if needed
* Running in multiple data centers around the world so that users can connect to one close to them
* Monitoring each new version of the app that’s deployed, and rolling it back to a previous version if something’s wrong
* Dealing with power failures, network failures, anything that can go wrong
* Making backups and restoring from backups in a catastrophe
* Working with engineers to seamlessly make changes to the system, like switching to a new database, or a new payment provider, with minimal downtime

Python scripting: it’s just programming / writing code. The only difference is that instead of writing the code to build the app, it’s writing code to automate things that happen behind the scenes to keep the site running.

Kubernetes: the system that manages all of the software running on those computers in the cloud.

Terraform: a tool used to help safely make changes to all of your stuff running in the cloud with less opportunity for human error

One last note: devops and SRE are not quite the same role. There are different visions of how this role should work and how responsibility should be shared. The common thread, though, is focusing on deploying and maintaining the app in the cloud rather than building the app.

Anonymous 0 Comments

They make shipping software faster, easier, and safer. Frameworks such as Terraform and kubernetes both allow you to bring up servers and what not with a short hand language that removes a lot of the complexity of the underlying stack.

Site reliability engineer makes sure app/website stays up. Otherwise, an engineer getting a call in the middle of the night because something is broken is more common. Basically, they do work up front to prevent the middle of the night scenario, as well as reduce customers having issues (support tickets).