Network Engineer to Cloud Engineer
By Ryan DeBerry, Cloud Solutions Architect, SMS
This is an attempt to give other Network Engineers a brain dump of the things you should learn if you want to make the transition from networking to cloud. I decided to do this because an opportunity was presented to me at my company, SMS. I was hesitant as I was comfortable in my previous position, but it turned out to be a good decision.
Getting up to speed on Amazon Web Services or AWS was difficult; just like learning anything new, there are many new terms/bells/whistles/you name it. I learn best by building/breaking/fixing/destroying, so I created my own AWS account to get hands on experience, with the goal of achieving the AWS Certified Solutions Architect – Associate.
I quickly learned that there is a lot to learn, A LOT! This exam is like the CCNA, a lot of topics but it doesn’t go too deep. I followed the exam guide syllabus and searched the internet for examples of creating resources, testing, and tearing it down (staying in the free-tier to avoid being charged!)
Disclaimer: I also was forced to learn Infrastructure as Code(IaC)-Terraform, to be exact- so a lot of my experience was probably not conventional. I mean, I did not ClickOps anything, I learned how to use Terraform and learned AWS at the same time. I do not suggest this method; ClickOps is a good way to learn how something works and usually the exams want you to know how it’s done in the UI. The problem with ClickOps is that in production, you shouldn’t be doing that at all unless absolutely necessary. You’ll soon find out it will be impossible to keep track of what you did in ClickOps and also how to delete what you did, which all cloud providers love because you keep getting charged for the provisioned resource.
I spent many evenings learning what I could from Google. I soon realized that YouTube channels are very handy in learning all things cloud-related (see useful links at the bottom of this post). I ended up creating multiple AWS accounts, running various services between them, and “networking” them together as well. I am not going to go into detail about the various terms and options in the cloud, it will make your brain hurt. Just know that your networking and system design knowledge is pivotal in making all this work.
This is when I figured, “I should take the AWS Networking Exam!” That said, I still haven’t taken that exam but I do have at least 12 hours of Adrian Cantrill’s course video under my belt. If you read the exam guide from the AWS Certified Advanced Networking – Specialty, you will see the same terms from your Network Engineer path. My suggestion for the true Network folks is to study for this exam right after the Solutions Architect or at least treat it as your CCIE equivalent. Personally, I don’t think you need to sit for the exam; I’d just learn all the material as if you were going to. You will be drinking from the firehose no matter which path you end up taking. Big skill gap? Maybe, it depends on you.
A good Engineer skillset is comprised of the following:
- An analytical mind
- An ability to learn new technologies quickly
- Good time management skills
- An ability to follow processes
- An ability to figure things out when no process exist
- When to know you don’t know…and know who to reach out to to get that understanding.
Does this really change for a Cloud Engineer? The short answer is no. These are the skills that I think are the most important, not the actual technology itself. You can learn and be an expert at any technology with these foundational skills. The cloud is still infrastructure that needs to be configured and maintained. You still have to know how systems are built and how they can talk to each other and how you can secure them.
Enough of the fluff, you came here to learn how to easily transition.
I put these baseline skills into three categories, this is obviously not a comprehensive list.
Technical skills you must have (high level foundational):
This is in the order I believe you should learn these:
- Linux: This is a non-starter IMHO. I could write an entire blog about it. The more experience the better; most, if not all, resources deployed in the cloud are Linux based. It will help you in the long run if you know your way around and how to deal with it when it breaks. I’d recommend installing Linux and using it, without a UI; it’s important to get comfortable with the command line and package manager depending on your distro. Check out this link for distro-agnostic Essential Commands.
- Git: GitLab, GitHub, bitbucket, gitea. There are many platforms but git is still git not get; be familiar with the git cli.
- IaC: Terraform, Pulumi, Chef, Puppet, Ansible. If you know any of these, it shouldn’t be too hard to learn any other; these all have free versions.
- Integrated Development Environment (IDE): Pycharm, IntelliJ, VScode, etc.
- Understanding how to create and manipulate the following file formats; JSON, Yaml.
You have to be able to navigate all of these in any cloud environment.
Technical skills that I believe are past foundational
So, you have mastered the foundational aspects…to get to the other side will be like climbing a mountain, but if you make it, there might be a pot of gold.
- Basic understanding of a Programming Language: Python, Java, C++, Golang
- Container Orchestration: Kubernetes, Docker, Containerd, Nomad
- Public Key Infrastructure: Trust me, it pays to understand this, I still struggle
- Continuous Integration/Continuous Deployment (CI/CD): Jenkins, Travis, Argo, GitLab, GitHub actions, the list goes on…
- Database – General understanding: Relational vs. NoSQL vs. Object Oriented vs. Key/Value
Way Past Foundational
Bookmark this link!
If you don’t do anything else, bookmark this: DevSecOps Learning
This link has a lot of what I have already talked about and more, a lot more.
Concepts to get in your head
YouTube channels that I subscribe to for various Cloud/DevOps resources
Cloud Service Provider Links
Each cloud provider has their way of implementing the same thing. You will need to just get your hands dirty to figure out the differences. Get an account with any provider they all have free tiers, and Git-R-Done!
If you keep an open mind, it won’t be that bad. You will definitely turn into what we call a “glorified Sys Admin” but at the end of the day, you can never learn enough. That is the gift… and the curse!