What Do You Need to Know to Become a DevOps Engineer?
How do you get one of the most in-demand positions in IT? Where do you start learning, and what key knowledge and skills do DevOps need? Victor Vedmich, AWS Senior Developer Advocate, answered these questions for you.
Who is a DevOps Engineer
— DevOps is a methodology and approach to software development that combines development and operations. At this point in time, the impact of marketing and IT business development is such that DevOps specialists are basically system engineers. DevOps specialists do not write code that is part of the application’s business logic, but they write a lot of other things — helper code.
A product in IT does not consist only of business logic. For an application to work, it is necessary to prepare the infrastructure for it by writing code in advance that will deploy and configure the infrastructure. Additionally, you need to connect and configure monitoring. Don't forget that developers deliver new features quite quickly, so an optimized CI/CD process is also needed. That's what DevOps engineers do.
Responsibilities of a DevOps Engineer
— When the simplest application is written, it is possible that DevOps may not be needed. But when we go to scale, we need good accessibility. When the number of users is not two people, but thousands or millions of them, then completely different questions arise. You need to know, for example, where the application will be located, and how we will ensure the application’s fault tolerance, its scalability, etc.
To break down the responsibilities of a DevOps Engineer, let’s look at a very simple example. You have GitHub, where you can throw a project, and the magic of building the final product takes place — an artifact that will need to be deployed (transferred to the server). But GitHub has GitHub Actions — this is also a small piece of code that needs to be written. Then an artifact appears — an executable file. It's like an application on a phone — an icon, under which is an assembled file with a lot of dependencies, and so on. In our world, these are mostly docker containers. The executable file needs to be launched somewhere. Once the executable file is launched, users from different parts of the world need to reach the application. The application needs to open as quickly as possible for every user. The first step is to write GitHub pipelines and actions to build this container, and then deliver it somewhere. In most cases, the delivery location is in the clouds or on client servers. In fact, DevOps also write code, but very specific kinds of code, most often things such as YAML or specific DSLs.
After the application has started, you need to understand how it works, monitor it, and maintain its stability. DevOps provide maximum application stability. When you have accomplished maximum stability, that's when the final product is achieved, and is ready for users.
What should DevOps know: key knowledge and skills
Soft skills for DevOps engineer
— First of all, a DevOps engineer must be able to talk with and listen to other people and be able to speak the language that they speak. There are many sub-teams with different functions: business analysts, frontend developers, backend developers, those who are responsible for testing, etc. Depending on the size of the team and what kind of personnel is on that team, DevOps engineers need to learn how to speak all of the relevant languages. Superficially, it would seem that they speak the same language, perhaps Russian or English, in which we conduct conversations. In fact, “speaking the same language” means something very different when we refer to engaging with different specialists. Without speaking their specialist language, we do not understand them, and we do not understand their problems or pains. Perhaps some other important things are incomprehensible to us as well that, for the specialists, are standard and necessary background.
For example, when we speak with a student who studies at the Faculty of Mathematics, knowledge of the principles of mathematics is a default for them. They think that everyone knows how statistical analysis, regression, and other concepts routine to them work. There's a set of standard definitions and concepts that everyone seems to know. When we talk with different functional teams, we kind of speak the same language, but we have completely different conceptual understanding and background. From this follows the main soft skill — the ability to talk with different teams, with different functionalities, and understand them all.
— Stress resistance must be constantly trained. DevOps engineers often work with, or as close to, production as possible. Due to the high level of responsibility, they are under a lot of pressure. Any misstep can lead to users being unable to access the site. Or you may be dealing with a million-dollar business, and every minute that a problem persists, a large amount of money is lost. It is important to retain your adrenaline, but train your stress resistance. Too much adrenaline in your system can degrade your performance. But when there is too little adrenaline, your system may not be adequately activated to solve a problem as quickly as possible.
Ability to learn
— This skill is important for all IT professionals. If we talk about the T-shape model, then the top bar represents the horizon of your knowledge, and the descending bar represents its depth. For DevOps specialists, the horizontal bar is very important because there is a lot to know. A DevOps engineer needs to study hard, absorb information efficiently, and identify and extract what is important and necessary for everyday work.
How to become a DevOps from scratch: 5 essential steps for beginners
- Basics of programming. You need to learn how to write simple code — tasks for some cycles, some conditions, a script that has a simple understandable logic. I would recommend Python.
- Networks. It doesn't matter where the infrastructure is being built — in the cloud or in local data centers — you still need to understand the network and how it functions. You do not need to become a certified network engineer, but you do need to understand what networks are, how they work, how routing is built, how networks are cut, etc.
- Clouds. Clouds are the standard these days. Intro certification will allow you to perform an overview of cloud services.
- Operating systems. Maybe not too much depth is required, but basic knowledge is needed.
- Kubernetes. Many projects that work with containers or microservice applications running in containers will use Kubernetes.
— If a person makes a training plan, I would advise them to take a course on Computer Science as a zero step, and then follow the steps described above.
Do DevOps engineers have future?
— DevOps engineers are in high demand. I think that they will be in demand for quite a long time. At the moment, I see a trend in some companies to rename DevOps to SRE so that people work more with production. I would say that since the horizontal bar in the T-shape model is very wide, there are still not enough DevOps engineers in the market to satisfy all the demand. The need remains quite high due to the high entry threshold and the ever-growing amount of information and new tools that need to be mastered at a fairly proficient level.
Tips for beginning DevOps engineers
— To become a professional in any field, you need to study a lot. DevOps is no exception. Many large companies have their own DevOps courses, followed by internships. It's worth looking at them.
For books, I would recommend: The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, by Gene Kim, Kevin Beher and George Spafford and The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, by Gene Kim, Jez Humble, Patrick Debois, & John Willis.
You can learn more about Data Science in the IT Beard Shorts issue on the Anywhere Club YouTube channel.
Want to discuss DevOps?
- English Through Music: Learn and Have FunLearn04 Nov 2022
- Effectively Launching as a Junior: an Expert's ViewWork23 Nov 2022
- 3 Ways to Find Your Dream JobWork24 Nov 2022
- Project Manager Responsibilities: Tasks and Skills vs RealityWork31 Oct 2022
- “Forget About Impostor Syndrome”Community18 Oct 2022
- How to Learn EnglishLearn04 Aug 2022
- How Does a Junior Get Their First Job in Singapore?Work22 Nov 2022
- 8 Reasons to Move to KrakowRelocate26 Oct 2022
- Trends in IT Company EventsCommunity30 Nov 2022
- The Brain-Up Project is Looking for VolunteersVolunteer11 Aug 2022
- 3 Facilitation Case Studies: Better and Worse ScenariosWork31 Oct 2022
- What You Need to Know to Relocate to SerbiaRelocate26 May 2022
- Business Analyst in IT: What You Need to Know and DoLearn14 Nov 2022
- How to Learn Ruby on Your OwnLearn25 Nov 2022
- Life in Italy: What You Need to PrepareRelocate19 Oct 2022
- How to Manage Interview AnxietyWork12 Oct 2022
- 10 Ways to Stay on Top of IT TrendsLearn25 Oct 2022
- What Does a Botanist Do in IT?Work04 Nov 2022
- How to Effectively Give Feedback?Work18 Nov 2022
- Relocation to GeorgiaRelocate20 Sep 2022
- How to Become a Tester in three weeksWork19 May 2022
- How to Compose a ResumeWork16 Aug 2022
- Sent out 500 Resumes and Moved to UzbekistanWork28 Nov 2022
- What Should a Beginner Automation QA Engineer LearnLearn29 Sep 2022
- "Where Else but Spain?" — the Experience of MovingRelocate06 Dec 2022
- IT Beard Talks About Anywhere Club IT CommunityCommunity19 May 2022
- The Easiest Programming Languages to LearnLearn07 Sep 2022
- Lithuania: Features and Life HacksRelocate10 Oct 2022
- Home for Every IT Professional in the WorldCommunity19 May 2022
- Living in Serbia — Pros and ConsRelocate16 Jun 2022
- Life Hacks And Impressions of Moving to PolandRelocate28 Jul 2022
- Relocation to TurkeyRelocate31 Aug 2022
- What Is a Vocation, and Does It Exist in 2022Work20 Jun 2022
- What Do You Need to Know About the South of SpainRelocate22 Aug 2022
- Facilitation: How to Conduct It EffectivelyWork17 Oct 2022
- How to Start an IT Career in TestingWork01 Jun 2022
- Pros and Cons of Life in MontenegroRelocate08 Sep 2022
- 7 Soft Skills for DevelopersWork27 Sep 2022
- 5 Common Questions about RelocationRelocate19 May 2022
- Best Countries to Relocate for IT SpecialistsRelocate06 Jun 2022
- From Travel Agent to a Tester in ITWork20 Jul 2022
- Why Time Management Doesn't WorkLearn19 Sep 2022
- What to Read and Watch for a Novice Java EngineerLearn19 May 2022
- Relocation is Like the First Child's BirthRelocate23 May 2022
- Tips for Relocating to SerbiaRelocate02 Jun 2022
- What Are Some of the Unusual Jobs in ITWork21 Jun 2022
- The Psychological Trauma of EmigrantsRelocate28 Jun 2022
- An 8-month Journey to Front-EndWork04 Jul 2022
- 6 Stereotypes About Life in HungaryRelocate30 Jun 2022
- The Real Story of a Radical Change in ProfessionWork18 Jul 2022
- Top 5 Startup Books to Read in 2022Learn27 Jul 2022
- What is Data ScienceWork09 Aug 2022
- Doctor in ITWork24 Aug 2022
- 5 Myths About IT: True or FalseWork19 May 2022
- The Reality and Myths of Life in TurkeyRelocate19 May 2022
- To Learn How to Write Code, You Have to Write CodeWork24 May 2022
- Android: What Should Beginners and Professionals DoLearn09 Jun 2022
- How Do Expatriates Live in UzbekistanRelocate15 Jun 2022
- How to Support Someone Who Is StressedCommunity23 Jun 2022
- How to Avoid Burnout And Stay Productive in 2022Work06 Jul 2022
- The Joys And Challenges of Relocation to HungaryRelocate11 Jul 2022
- Where is Python Used And Why Should You Study It in 2022Learn13 Jul 2022
- Family Traumas in EmigrationRelocate03 Aug 2022
- What Impresses in MontenegroRelocate18 Aug 2022
- Where to Make Friends With BlockchainLearn25 Aug 2022
- How to Become an HR ManagerWork05 Sep 2022
- Top iOS Developer ResourcesLearn12 Sep 2022
- Features of Life in GermanyRelocate05 Oct 2022