DEV Community

Eric Swantek
Eric Swantek

Posted on

From Network Admin to aspiring Cloud Engineer - The Cloud Resume Challenge (Azure)

If you're reading this, then I've done it! I completed the Cloud Resume Challenge in Azure! Here's the current version of my resume webpage eric.swantek.me

How it all started

Why the resume challenge?

About eight years ago, I was very excited to get into network administration. But as time passed, I wanted to get into something more than the technology I had been working with. Over the last two years, I have become more intrigued by cloud technologies, so I began to look for ways to expand my role at work and gain experience on the job. However, that was not meant to be, and I needed a new approach. Earlier this year, my wife, a DevOps engineer, put me in contact with a Cloud Engineer who helped me confirm that I wanted to break into cloud engineering-type roles. Unsure how to get there myself, my wife presented me with The Cloud Resume Challenge, which really got me excited!

As I read through Forrest Brazeal's ebook, The Cloud Resume Challenge Guidebook Azure Edition, I became determined to complete it. The challenge is presented as a project spec with 16 steps with some tips, but not the implementation to complete each. The implementation of all parts had to be researched. At this point, I had little to no experience with any of the technologies this challenge called for, but I couldn't wait to jump in.

Achieving the AZ-900 Certification

Learning the platform

The concept of certifications was not really new to me. Back in 2019, I independently got the Cisco Certified Network Administrator certification to bolster my skills for the job I held at the time. Seeing that I had to get the AZ-900 Azure Fundamentals Microsoft certification for this challenge made sense.

I started by reading through Microsoft's free self-paced documentation on Microsoft Learn, which laid out all the knowledge needed to pass the AZ-900 exam. After going through the material most evenings after work and on weekends, I passed the exam on my first try in July!

Early technical bits

Creating a Resume in HTML with CSS, with a little JavaScript

I was vaguely familiar with HTML and CSS, but I last worked with them as a college student over 11 years ago. So, I set out to brush up on basic HTML and CSS by reading through resources from w3schools, as well as Mozilla's developer websites.

After a few minutes, I got the hang of the HTML structure and tags I would use. I set about creating the folder structure recommended by documentation I found online; then, I created empty index.html, styles.css, and scripts.js files. To get something usable immediately, I translated my last resume from Google Docs to HTML, adding metadata, head, body, and list items to mimic my original resume's structure and follow best practices.

While JavaScript was only called for later, my wife suggested adding a basic light mode/dark mode toggle for user experience and readability. This was straightforward to implement with just a few lines of code.

First Experiences with Azure

Resource Groups with Resources

Creating an Azure Account and running on a consumption plan was easy. The tricky part was planning and designing a naming scheme for subscriptions, resource groups, and resources. I realized with my first resource group that I wanted to change the name, but that meant I needed to move the storage account to a new resource group. After researching ways to move the storage account, I used the portal to initiate the move out of familiarity and simplicity.

Source Control and CI/CD

Using GitHub and other tools

I had never been a developer, so I had never worked with GitHub or CI/CD pipelines. After creating my repositories and writing the YAML, seeing my code changes automatically getting pushed was fun! Another part I found cool was having all that code versioning history and being able to quickly revert when something stopped working.

DNS

Azure CDN and Domain Registrars

I first created the domain swantek.me on GoDaddy, but admittedly, I missed that SSL certs were a separate and expensive offering from them. After doing more research, I found that Cloudflare offered SSL certs for every domain without extra cost, plus many other neat features. But before moving my domain, I had to wait two months before I was permitted to move it.

Once the time restrictions were lifted, the migration went very smoothly, and I had my SSL cert in place. Seeing my web page display without clicking through browser warnings was a proud day!

The Big Technical Hurdle

Website, Python Function App, and Cosmos DB

At this point, I had recently left my job for a much-needed break. After a few weeks, I started working on the final technical parts of this project. I now had much more time and energy to focus on learning and implementing the final parts.

I created my Cosmos DB with the NoSQL API instead of the suggested Table API because I reasoned companies I may encounter would likely use this API. After all, it supports SQL syntax database admins would be used to. I initially tried implementing the database with only two columns and one row. After spending a significant amount of time trying to get this working with the Python Function App, I accepted some help and discovered my implementation was too simple. To manipulate the DB and increment a value, there needed to be at least one more value to work with.

The Azure Function app needed to run on Python with an HTTP trigger. Creating the resource was pretty easy; actually getting the Python code to work and understand Azure Functions, however, took many hours to figure out. While working through this part off and on, I had several code rewrites and often sought help clarifying my understanding. The most annoying part was whenever I pushed my code to Azure and the HTTP trigger disappeared! This happened fairly often early on, and I figured out this occurs whenever the code has fundamental errors. Having working code and a trigger that functioned whenever its HTTP endpoint was hit (tested with Postman), I celebrated another technical piece down.

The project called for JavaScript to talk to the Azure Function app and display a visitor counter, with the count stored in Cosmos DB. While the dark mode/light mode toggle I implemented earlier was straightforward, talking with the Function App was another beast.

With a good bit of research, I managed to get very close to implementing this functionality before getting some help. Turns out, I just needed to call a JSON parsing function already imported and take its output.

Blogging Out

This post, final thoughts

Working through this project proves I can pick up new skills and technologies. I'm now working towards the AZ-104 and AZ-700 certifications, hoping to get into a cloud role someday and bring some of my networking background with me.

There's always more to play with, and I don't believe anything is ever a truly finished product. I plan to keep using what I did here to continue iterating on my website and learn more Azure features!

Project Codebase

GitHub logo emswantek / es_cloud_resume

repo_for_cloud_resume_web

es_cloud_resume

repo_for_cloud_resume_web





Top comments (0)