DEV Community

Harry@StartQuick Tech
Harry@StartQuick Tech

Posted on • Originally published at startquicktech.Medium on

How to Become a Cloud DevOps Engineer #Skills You Need

People say DevOps will be replaced by long-term platform engineering but don’t worry as the skills you learn will not expire.

Today, we are going to talk about what key skills you need to master to be a DevOps engineer.

If you are new to my Channel, you can go have a look at the videos and subscribe. You can watch the video if you like.

Below is the script.

I broke the technical skill sets base for a DevOps engineer down into 8 domains.

1 Operating System

No matter you are a developer, tester or administrator, Linux is always a must-learn operation system.

You don’t have to understand Linux or Unix in depth such as Kernel Development but something you should be very familiar with. For example, you should understand what linux basic file structure looks like such as what /etc or /var or /bin folder are used for. You should know how to manage packages using tools such as rpm, yum, apt. Also you should know the basic command lines such as ls, mv, cp, rm, mkdir for file system, chmod, chown for permissions; top, ps for monitoring, etc… And it is better that you know how to write a bash scripts for automation tasks.

For above, I think 2 weeks ( about 20 hours) learning and hands-on exercise should be enough for beginners.

2 Code Management

Git is the most popular version control system.

For git repository tool, I have used Github, Bitbucket and AWS Commit but for learning purpose, Github is what I recommended.

If you haven’t used Git before, I would suggest you to start from the theory and basic commands for creating local repository, committing code changes, pushing commits to remote repository. Also, you need to understand how to use branch, how to create pull request to merge code. If you have got some experience on Git, just check if you understand how to control the user access and permission as an administrator, how to manage the code such as complex code workflow and different types of merging strategies. I believe most of you have used Git already but if you haven’t, you may just need a week to learn and practice in your daily work.

3 Container and container orchestration.

Containers is getting more and more popular nowadays. It allows you to build your application and ship it in a container with all its runtime and dependencies, which could hugely simplify the deployment process.

The most popular one I believe you must have heard is Docker.

For beginners, start from the theory and basic docker commands such as docker build, docker run, docker ps, docker images. Then you should learn how to build docker image via Dockerfile and run a container based on the image you created. Also, you should understand how docker network works such as port mapping. Once you get this, you can try using docker compose for building multi-container applications which is type of an orchestration locally. For orchestration, I would highly suggest you to learn AWS ECS Fargate which could be an easy start and cheap for its serverless mode. If you have experience, try Kubernetes as it’s getting popular and almost in a dominate position. You can build a local cluster using miniKube or spin up VMs locally.

4 Cloud

You can choose AWS or Azure or GCP. I use AWS, Azure and even Tencent Cloud. I could not say which one is better but I prefer AWS a little bit more. You can choose one of them based on your working scope but if you are an absolutely beginner, AWS is never a wrong choice.

I will keep making AWS learning video in my YouTube channel. For learning AWS, maybe start from a certificate such as Cloud Practitioner or Solutions Architect Associate. Getting the certificate does not mean you are qualified for the role but the learning guideline can point you to the correct learning path. This is at least my real experience. You can check the video in my channel for my learning path.

5 CI/CD

CI/CD stands for Continuous Integration and Continue Deployment or Delivery. This is one of the core parts of DevOps concept. What is it? I actually like it call it auto-deployment but in order to make it accurate, let’s see the chart.

Continuous Delivery includes from coding, building, deploying to stage as well as acceptance tests. Continuous delivery or deployment include another step which is to deploy into production. But the difference is delivery is manual and deployment is automatic. In the real world project, there are quite a lot of things to consider about the CICD pipeline such as how many environments you have, the balance between quality and speed, what technical tools you gonna use, etc. From learning perspective, I would suggest you to start with AWS code build, Code Deploy and Code Pipeline if you use AWS, or you can choose Azure DevOps as another starting point. Other than this, I use Github Action quite a lot and I also find it quite easy to learn. There are some other tools such as Jenkins, Circle CI and Team City which are all very popular but I would not suggest you start from here as they are either need complex setup or not free.

6 Infrastructure as Code

With IaC, you can easily manage and provision your infrastructure through code instead of manual process. Especially when you have multiple environments for your app, IaC hugely improve the efficiency. I had been using AWS CloudFormation for multiple years but when I started using Terraform, I believe this is what I really want.

I use Terraform to build infrastructure on AWS, Azure as well as Tencent Cloud. There are quite a lot of modules you can use but for real world project, I usually build modules myself. For learning, I would suggest you can use Terraform to build a small project such as three-tier application or static website with CDN service. I am also thinking about make another video about real world Terraform project. You can subscribe my channel when the video is ready. There is a sub domain which is called configuration management. The tool that I recommend is Ansible. It is an easy-to-learn tool so you can take this as lower priority. I actually don’t use it quite often as we are now in containerisation-heavy mode.

7 Coding and Automation

The seventh one is programming which is actually the key part that you implement automation. There is not much to say how to learn coding as there are so many tutorials on the internet. If you have no coding experience, I would suggest you take this as the top priority and learn python as your first the programming language as it is the most popular one for automation and very easy to understand.

Well, size of the community is very important for your learning. However, if you have already know how to code, just pick a language you are most familiar with.

8 Monitoring

This is a very broad topic. The key words are metrics and logs.

In order to understand what to monitor, you need to understand software or cloud architecture. You should know how to monitor the stats or metric such as CPU, memory, Storage, IOPs as well as active connections and errors…etc. You also need to know how to collect logs, if you need to install agent? What types or formats of data you should saved as and what the data lifecycle should be like? Other than these, you need to learn at least one tool to build dashboards. There are many tools in the market, I have used Splunk, DataDog, ElasticSearch, Grafana, PowerBI and Tableau integrated with relational database. Grafana might be your first choice for learning as the free version has very strong capabilities.

If you build your monitoring solution on the Cloud, you can start with CloudWatch for AWS or Azure Monitor for Microsoft Azure. I would recommend CloudWatch for beginners. You can learn how to use it during your journey of learning AWS.

Others

Other than above 8 domains, you’d better have understanding of networking , security and database management. As a DevOps engineer, you should always look at the system or solution from top to button instead of focusing on a specific part. Also you should remember, you will never have learned everything. Just keep yourself with a growing mind and learn the skills with practical exercise at the same time.

I hope you can achieve your career goal in 2023! And make sure you subscrible my youtube channel if you want more valueble content.

Thanks.

Harry in New Zealand

Top comments (0)