The Azure Cloud Resume Challenge by Vithuren Shanthasivam
Tags: azure, javascript, github, serverless
Published: 2022-09-26 04:31:49

## Intro
I began my cloud journey with A Cloud Guru and have been meaning to tackle the [Cloud Resume Challenge](https://cloudresumechallenge.dev/docs/the-challenge/azure/). I have finally got around to hosting my resume as a website using Microsoft Azure using Blob Storage, Content Delivery Network, Function App and Cosmos DB.

The challenge itself is straight forward however there were several instances throughout the project where I had to debug, retrace and redeploy steps in order to ensure the website and function were up and running.

Website can be viewed at:

https://www.vithurenresume.com

See below for architecture diagram:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3xn51psg1v3ihz744cqb.png)

## 1. Certification
The challenge does require one to have at least a foundation level certificate however as of August 2022 I have attained the following certifications:

- AWS Certified Solutions Architect Associate
- Google Cloud Certified Professional Cloud Architect
- Microsoft Certified Azure Solutions Architect Expert
- PCAP Certified Associate in Python Programming

## 2. Static Website
The purpose of this challenge is to create a static website which is intended to be a portfolio/resume depicting your work experience, certifications, achievements and contact information in HTML and CSS. I used a pre-existing template that was downloaded from an external website and modified the html file to suit my professional profile. 

The greatest challenge I faced within this phase was conflicts between .Net versions 3, 5 and 6. I had to uninstall .Net 3 and 5 and then only have .Net 6 installed on my computer in order to get the function app and website operating as intended.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m61axuot34gsurlltlui.jpg)

## 3. Website Hosting
The static site is hosted using Azure's Blob Storage and Content Delivery Network. An essential step was to ensure that CORS was enabled.

## 4. DNS
The website is using a custom DNS domain name that was registered on Namecheap.com.

## 5. Visitor Counter
The core function for the resume website is to have a visitor counter detailing the total number of views that your website has accumulated. Although I am not proficient in Javascript and did use a function that was created by Gwyneth (author of the Azure Resume Challenge and former A Cloud Guru instructor) I was able to get the visitor counter function up and running. 

Azure Cosmos DB is used to store and update the visitor count object. The integration between the JavaScript code and CosmosDB database is being handled by Azure Function App.

## 6. CI/CD, GitHub Actions and Tests
An integral part of completing the project is to incorporate CI/CD. For this project I integrated my GitHub repository with GitHub actions to ensure that unit tests are successful upon each code commit and repository push.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sfv3kt0pidmdalk6vjor.jpg)

## Conclusion
Studying for the certifications was definitely a cake walk in comparison to completing and deploying a live project of this stature. Debugging the different services and ensuring the website is functioning provided a level of difficulty that one would truly experience in the working world. 

I would highly recommend anyone venturing into cloud computing and software engineering to pursue this project as it provides one with true insight into how to debug and successfully deploy applications.