the codelog
Published in

the codelog

Top 3 technical areas to getting started in DevOps

By Simo Tchokni & the Makers team

Image credit: Mapbox

DevOps is an area of tech that’s grown in popularity in recent years with job listings popping up across tech giants and start-ups alike. But what is DevOps? And how do you know if it’s the right career choice for you?

DevOps stands for Development and Operations and is more about improving the way software is developed, managed and kept running rather than developing features.

It aims to bridge the gap that historically existed between development teams and software engineers that write features, and operations engineers who deploy the apps and make sure that they keep running smoothly.

Someone in a DevOps role will be trying to improve the systems used to release software, test it, monitor it, and so on. They’ll need to have software engineering skills as well, but they’re more interested in making sure the process from “feature idea” to “feature is up and running and released to users”, is as smooth and quick as possible by automating testing and deployment, making sure the systems the app is running on are secure, reducing the impact of failures or bugs on users.

For those wanting an entry-level DevOps Engineer role, there are so many things to learn that it can feel overwhelming. But if you were going to get started with just 3 technical areas, we think it’s worth familiarising yourself with operating systems, terminal and shell scripting, and networking concepts.

1. Operating Systems

An Operating System is the software that interfaces between the hardware and the applications on a computer, and it’s crucial to familiarise yourself with some OS concepts as DevOps involves working with servers and applications.

Here are some important OS concepts we suggest learning about (and where to read more on them):

Understanding these will help you go on to understand more about memory and disk usage, optimisation, allocation of resources, processes, and so on. This matters because when we run applications at scale and serve many users, performance and efficiency are crucial but so is keeping IT costs down.

Part of a DevOps job is to think about how to best run complex applications in a way that is as scalable and efficient as possible in the budget the company has available. A key prerequisite for improving performance is actually being able to measure how efficient your app is.

Right now, the most popular OS tends to be Linux, although other examples include Windows, Ubuntu, and Unix.

2. Terminal and Shell Scripting

Terminal commands are a big part of life as a DevOps engineer, so it’s worth having a go at these commands as regularly as possible, as they’ll help with process monitoring and scripting skills. Terminal — a console or command line — is what helps you get different tasks done without a Graphical User Interface (GUI).

These basic shell scripting functions are good to learn:

3. Networking Concepts

DevOps is all about making interconnected systems work properly, linking together servers and apps and resources. This makes it essential to know about networking and security concepts so that you can deal with troubleshooting or network issues.

We suggest getting started with:

  • TCP/IP network protocols

“TCP/IP is a data link protocol used on the internet to let computers and other devices send and receive data. TCP/IP stands for Transmission Control Protocol/Internet Protocol and makes it possible for devices connected to the internet to communicate with one another across networks.” (More here)

  • HTTP and HTTPS

“HTTPS is not the opposite of HTTP, but it’s younger cousin. The two are essentially the same, in that both of them refer to the same “hypertext transfer protocol” that enables requested web data to be presented on your screen. But, HTTPS is still slightly different, more advanced, and much more secure.” (More here)

  • SMTP and FTP

“The basic difference between SMTP and FTP are listed below: FTP stands for file transfer protocol, SMTP stands for simple mail transfer protocol. FTP is used for the transfer files while the SMTP is used for E-mail. FTP is a stateful protocol, SMTP is a stateless protocol.” (More here)

These resources are a great starting point, but can be a little abstract when learned in isolation.. To put it all into context, here are a few topics that come at DevOps from the point of view of someone building an application to get out to users. On this higher level, it would be worth familiarising yourself with:

Often, it’s when we start to try and deploy software to the cloud that we run into issues for which we need the more low-level skills/understanding to solve. In that way, they complement each other. Understanding both ends of the spectrum is important, but some people may prefer to start at one or the other end or to mix and match.

Interested in learning more about DevOps? Check out Makers here.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Makers

Makers

3.1K Followers

Creating a new generation of tech talent who are ready to build the change in society and thrive in the new world of work.