Cloud Resume Challenge - Finished
Published: 2022-12-17 23:06:21

In October of this year I received my AZ-900 certification. That's when I decided to take on the Cloud Resume Challenge. The Challenge is composed of 15 steps (16 including this blog post), and it took me about two months to complete.

I'm going to divide the blog post into three parts: the front-end, the back-end, and tying it all together. So, without further ado:

## The Front-end

For anyone who has taken and completed the challenge, I think it can be universally agreed that the initial steps are by far the easiest part of the challenge. These steps are very approachable by beginners and serve as a good build-up to the true difficulty in the challenge.

The HTML, CSS, and JavaScript were all fairly easy for me as I've previously designed websites before. Similarly with setting up DNS. HTTPS posed quite a challenge as this was the first time I dipped my toes into cloud technology. I needed to learn how to use Azure Storage, Azure CDN, and Azure DNS Zones to get my website online. Thankfully this only took a bit of tweaking and was straightforward to do in the portal.

![An Azure CDN Profile showing the active endpoint of the website](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k55ep08zfq2aypkihsbr.png)

The difficulty, however, significantly ramps up in the following steps.

## The Back-end

This is where the Cloud Resume Challenge really shows its difficulty. The database was simple enough to create. But the API is where I would wager a vast majority of challengers simply don't make it through. This portion required a rather significant time investment in studying exactly how Azure worked--particularly, setting up a local development environment. In retrospect, it would have been much better if I had set up CI/CD at this point, as I feel the development process was much easier in terms of testing code rather than deploying to the portal from VS Code.


![Terraform Infrastructure-as-Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2no39o31gcaumambs3vj.png)

There was also a long time spent on Terraform and learning Infrastructure-as-Code. I like that the challenge had me deploy a fully functioning environment before attempting this step as it made switching to Terraform much easier, though now I could start with Terraform from scratch having learned it.

## Tying it all together

Another tricky portion of the challenge is actually having the back-end communicate with the front-end. This involved a lot of troubleshooting CORS issues. 

Then, finally, there was deploying the code to GitHub for CI/CD. Despite not taking as much time as the API, this one seriously stumped me for quite a bit due to problems with Cypress integration. After a couple of days, I finally got GitHub actions functional on both the front-end and back-end repositories, though.

![GitHub code repository](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/teodptfp33mm20tdeerf.png)

## Final thoughts

Despite having quite a bit of background in coding and development, it still took me quite a while to piece together all the different parts of the challenge. I learned a ton and feel much more prepared to pursue a career in the cloud.

Here is the final website: https://cjmedina.dev
The front-end repo: https://github.com/cjmedina95/crc-frontend
And the back-end: https://github.com/cjmedina95/crc-backend