Publish Date: 23 March 2024
If you are looking to become a cloud engineer, this guide is for you.
In this guide, I tell you about
With these skills you should be able to solve a lot of problems on the cloud and clear any interview for cloud engineering.
A cloud engineer is a person who will:
Devops engineering is a lot about smoothening the deployment of applications.
Since most of the applications today are deployed on the cloud, cloud engineering forms a major part of devops engineering. So if you want to become a devops engineer, you become a cloud engineer by default.
For all practical purposes, you can say that these two roles are going to heavily overlap with each other.
There are three major cloud providers in the market today. They are AWS, GCP and Microsoft Azure. If you want to become a cloud engineer today, you need to focus on one of the three cloud providers at the beginning and eventually expand your skills to become better in multiple cloud providers.
All cloud providers provide almost the same set of services but with differences in details of implementation.
There are two parts to becoming a cloud engineer. The first one is about mastering the fundamentals of computer engineering. The second one is about mastering the cloud specific details like what services they provide, how they work and how the services compare to each other.
The fundamental skills that you need to master as a cloud engineer are -
Scripting and automation skills:
Your scripting and automation skills should be really good because creating and changing cloud infrastructure is going to be a big part of your role. If you are not good at automation, you will have to manually set up all the infrastructure which can be time consuming and error prone. Also once you set up the infrastructure, it will be replicated across multiple environments. With no automation, this part is going to be very hard and boring. Also it’s not scalable.
Computer networking skills:
A lot of the issues faced in the cloud are related to networking, hence having a command over networking is important. I have written a guide here showing how you can improve your computer networking skills.
Operating System and Linux skills:
Linux is a big component of running applications in the cloud. So it is good to spend time learning how Linux works. Learn about virtualization, become very good with using the command line and spend time setting up your command line such that it speeds up your workflow.
Debugging Skills:
These skills are going to develop over time as you work on more and more issues. However, to be able to debug issues, it is important to have the mindset of not giving up. Also it is very important to communicate with others so you can learn from their insights and experience. This might give you a direction in how to solve a particular issue.
Container Skills:
This is not really a fundamental skill and more of a technology. But since a lot of applications in the cloud today run on docker and kubernetes, it is important to learn about how containers work. Start with learning Docker and then slowly move on to learning Kubernetes.
Once you have mastered the fundamentals, the next part is to focus on the actual cloud and put that fundamentals to use. If your fundamentals are strong you should be at ease with operating the cloud.
The cloud is made up of hundreds of services, but there are a few fundamental services that you should be a master in. Being a master in the below services will cover 80% of the needs. I am going to reference the names of services from AWS in the below section but the other cloud providers also have equivalent services with different names. These services are:
Compute Services:
A good cloud engineer should be able to choose the right compute service for the task at hand. Compute services can be broadly be classified into three parts:
Spend time going into details in each one of the above.
Storage Services:
Storage services include services to store data. These are broadly classified into three types:
Networking Services:
Every cloud provider has a concept called VPC (Virtual Private Cloud) where all the infrastructure operates. It is important to understand how to work with VPCs. Learn how to secure the network using WAF, firewalls and security groups. Learn the difference between public and private subnets.
Identity And Access Management:
Identity and Access management is all about controlling access to the cloud for different entities. There is a concept called principle of least privilege which is about ensuring that every entity is given the minimum access that he/she/it requires. Learn about how access can be granted to different entities in the most secure way.
Logging and Monitoring Services
To be able to debug issues, it is very important to have the correct logging and monitoring setup in place. To ensure that there is no downtime, proper alerting should also be set up. Today cloud providers provide a lot of tools that can help in making these tasks easier. AWS has an umbrella service for all such services which is called Cloudwatch. Learn about the best practices around setting up logging and monitoring services.
CDN:
A CDN helps in serving content to customers on their devices faster by storing the content as close to a customer as possible. AWS provides a service called Cloudfront which provides CDN services. Learn how to set one.
Autoscaling and High Availability:
Auto Scaling is important for two reasons. The first one is that it helps to save costs, the second one is that it helps to handle a higher amount of traffic during peak hours leading to a better customer experience. Do spend some time learning about AWS Autoscaling groups, Elastic load balancers and AMIs.
Disaster recovery and Backup:
Disasters can always happen and a good cloud engineer should be able to recover the infrastructure with minimum down time for the customer. Understanding how to create backups and knowing how to create a disaster recovery plan are important skill sets for a cloud engineer.
Once you are done with the above, you must focus on a few aspects whenever designing a solution. These are covered by AWS in a framework called the Well Architected Framework. A good cloud engineer should be able to implement this framework irrespective of what cloud he chooses. These include:
Read the well architected framework to have a better understanding of each one of the above.
I hope this guide helps you become a Cloud Engineer and subscribe to my newsletter for more such content.
Let me know if you have any questions at [email protected]
Your Man
Sagar Gulabani