How to Become a DevOps Engineer? What do you need to learn, and in what order?
Andrey Byhalenko
I am a self-driven DevOps expert with 15 years of experience in the IT industry. I write articles aimed at Junior DevOps engineers and those aspiring to become DevOps engineers.
Devops is a very broad concept, especially these days.
In different companies, a DevOps engineer may do different things and be responsible for different fields. In some companies, a DevOps engineer is responsible only for CI/CD. In others, he is also responsible for security and, in some companies, for site reliability as well.
In this article, you will discover how to become a DevOps engineer from scratch, what you need to learn, and in what order.
From the outside, the DevOps world may seem like chaos.
There are many tools, many processes, and many technologies.
Let’s start with the big picture: the periodic table of DevOps tools.
As you can see, it contains a huge number of tools. By the way, it’s even less than 30% of all existing tools.
Of course, it’s impossible to know everything. But if you become familiar with DevOps concepts, you will be able to learn any tool.
First, you need to understand the most important DevOps ideas. Start by reading the Wikipedia article: DevOps in Wikipedia.
Ideal if you come to the world of DevOps from a system background or software engineering.
This will greatly simplify your learning process because, theoretically, you should have a lot of basic knowledge and be familiar with working processes and pipelines.
I suggest you to read the book “The DevOps Career Handbook” by John Knight and Nate Swenson, whether you are new to the industry or have experience. It will help you to explore the diverse DevOps career paths and prepare for each stage of the interview process with collective wisdom from DevOps experts and interviews with DevOps practitioners.
You can find it here on Amazon: The DevOps Career Handbook.
Let’s start with the technologies and then cover the soft skills.
Most likely, you have seen the Devops pipeline image. It’s a set of automated processes and tools that allows developers and operations professionals to collaborate on building and deploying code in a production environment.
In order to become a junior DevOps engineer, you should have basic knowledge, and what is more important, you need to understand the concept of each DevOps pipeline stage and know at least one of the tools from each stage.
Let’s see what tools you should learn.
Plan
Tools: Jira and Confluence.
Planning is the most important stage of any project.
In most cases, planning is what determines whether a project will be easy or difficult, how long it will take, and how much it will cost. You should learn about Jira and Confluence, develop, and continually improve your documentation skills.
The DevOps engineer who knows how to document well is usually highly valued.
Code
Tools: GitHub.
In this stage, developers work together and manage source code changes using version control systems like Git.
More than that, as a DevOps engineer, you should strive to ensure that all your code is stored on GitHub as well (or any other source code management tool). All the Dockerfiles you write, all the Terraform scripts, Ansible playbooks, everything.
The infrastructure code should pass the same pipeline as an application code.
Build
Tools: Jenkins and GitHub Actions. Docker.
In the build stage, we build code in a development environment and test it.
Jenkins is the most popular open-source automation server, with hundreds of plugins to support building, deploying, and automating any project. As a result, Jenkins is a frequent requirement in DevOps jobs.
GitHub Actions lets you automate, customize, and execute your software development workflows right in your GitHub repository. Learning GitHub actions is a great opportunity to learn YAML, how to work with secrets, 3rd party keys, and environment variables.
You also need to learn what Docker is and how to work with it.
领英推荐
Test
Tools: Sonar Cloud, Snyk, Selenium.
Automated testing ensures that the code and the Docker images are free of bugs and vulnerabilities.
Sonar Cloud scans the code for any bugs or vulnerabilities. Snyk scans the Dockerfiles. Selenium is a tool for browser-based regression automation suites and tests, but not only. It’s a powerful tool, used in many organizations.
The goal of the test stage is to make sure dirty code doesn’t get into the clean environment (Staging or Production).
Release
Tools: Jenkins and GitHub Actions, AWS ECR, Harbor.
The release stage is where the final version of the software is prepared for delivery.
It’s where we assign a unique version number to the current state of the software, compile the code, if necessary, package it into deployable units, and perform final tests. Then we need to store the ready-to-deploy version of the software in a repository. Jenkins and GitHub actions are the tools used in the build, release, and deploy stages.
You should be familiar with the artifact repositories, such as AWS ECR and Harbor.
Deploy
Tools: Jenkins and GitHub Actions, Docker and Kubernetes.
Deployment is the stage where we install the released software in a production environment with access for end-users.
Besides Jenkins and GitHub Actions, you should know how to work with Docker and Kubernetes. Start with Docker first, and learn Kubernetes when you feel comfortable with Docker.
You also should learn about rollbacks and recovery strategies.
Operate
Tools: Ansible, Terraform, Kubernetes.
The operation stage involves managing the application and the infrastructure in the production environment.
This stage is all about ensuring that the application is available, reliable, and performing as expected. You should learn:
You should also have a basic knowledge and understanding of:
Monitor
Tools: ELK stack, Prometheus, and Grafana.
The monitoring stage is the continuous process of collecting, analyzing, and using information about the performance and health of the application and infrastructure.
It includes log and alert management, performance monitoring, and infrastructure monitoring. It also includes the customer's feedback collection. The result of the monitoring stage is planning.
This completes the DevOps circle.
Aside from that, it’s very important to know how to write scripts. I suggest you learn Python scripting and bash scripting.
Next, I would like to talk a little bit about Soft Skills.
Our professional foundation rests on three pillars: Mindset, Soft Skills and Hard Skills.
Soft skills are a set of non-technical skills and attributes that are valuable in various professional and social contexts.
Soft skills typically involve how individuals interact with others, communicate, and navigate social and workplace dynamics. They are essential for building positive relationships and achieving personal and professional success.
Soft skills are essential for a DevOps engineer’s success.
You can read my article about soft skills by following this URL: Soft Skills.
If you liked my articles, you can join my newsletter, and you will receive weekly DevOps tutorials, articles, and tips every Saturday.
As a bonus, you will receive a free step-by-step DevOps CI/CD project, which you can use in your portfolio.
Subscribe here: https://junior-devops-hub.ck.page
Disclosure: I’m writing my free articles not for profit, but I need compensation to operate this website like any other website owner on the internet. I may receive consideration from Amazon for affiliate links, but I’m totally unbiased and do not accept paid reviews or fake reviews. Every book I promote, it’s the book I purchased myself, read, and found useful.
CEO @ Immigrant Women In Business | Social Impact Innovator | Global Advocate for Women's Empowerment
7 个月???? ??? ?? ?? ???????? ??? ?????? ???? ?????? ???: ?????? ????? ??? ??????? ????? ????? ?????? ??????. https://chat.whatsapp.com/BubG8iFDe2bHHWkNYiboeU