My journey on "The Cloud Resume Challenge"
Tags: python, devops, aws, webdev
Published: 2020-07-12 01:01:41

It was a long journey but it was worth it. 

Someone just plugged this "[Cloud Resume Challenge](https://forrestbrazeal.com/2020/04/23/the-cloud-resume-challenge/)" on our study slack and just like anyone else after the long read, I got interested and committed on doing it. 

I'm just still a kid in IT that will be a Cloud Developer soon.

STEP 1: Needs to have the AWS Cloud Practitioner certification - I did not take the AWS Cloud Practitioner certification as I already have an AWS associate certificate. Since last year, I begun self studying about the cloud and specifically Amazon Web Services (AWS) Cloud.

STEP 2 & 3: Your resume needs to be written in HTML and CSS - I'm not new on creating websites then I proceed on creating my own from scratch.

STEP 4 & 5: Deploy website on cloudfront in the back of S3 - This step did not take a while as I did it already when I'm trying to explore AWS stack during my studies. 

STEP 6: Register your domain name - I skipped this one for a while because I don't have yet money on buying a domain, I tried on searching and registering for free domains but I just wasted my time getting nothing. Eventually, I've registered my custom domain name and begun refactoring my CloudFront distribution and Route53 records. 

STEP 7, 8 & 9: Create a Javascript and Python code to count every website visit using serverless stack - This step took me a while as I need to refresh all my JS knowledge on how to get values from a REST API as I'm not that familiar but you'll just love it when you understand your code and its working well, although, I will make some improvements for this in the near future.

STEP 10: Test your python code - I got stuck here because its my first time implementing it on my codes as I only test my code manually and I just learned that kind of testing is called "Exploratory Testing", did more research here and there and I just settled on using "unittest" as for me it is the easiest way to implement. I love it when I discover new things, I learned although I admit that what I know is not enough. I will surely work on improving this and take time to have it as a skill.

STEP 11: Implement your serverless stack as a code using Serverless Application Model (SAM) - This is the most challenging and exciting part for me as I did not yet use SAM although I know CloudFormation, this took me a while to implement, everything I did in the console will now be converted as a code, so I deleted all the resources created in steps 7, 8 and 9 and start from scratch then little by little I rebuilt the serverless stack.

STEP 12 & 13: Build CI/CD using GitHub actions - I learned a lot on this step as I just found out that GitHub just launched this kind of feature, it's thrilling when I explored GitHub actions and start on creating workflows onto it, when I saw that you need to store your AWS credentials on GitHub secrets in order deploy your code and to call AWS API's this gave me a second thought as I don't want my AWS credentials to be compromised just like anyone else, started to seek advise and look for the relevant sources if I can proceed on doing it, I stumbled on watching AWS Re:Invent 2019 where they demo implementing GitHub actions then that settled my mind and proceed on implementing workflows to complete the needed on this step. 

STEP 14: It's my first time on posting on this site, actually I just knew it because of this challenge and I'm not sure if I'm doing it right. :D

Finally, I would like to thank Forrest Brazeal @forrestbrazeal on creating this challenge as I learned a lot and it urge me to continue pursuing what I really want to do when I was studying at school and move forwards on achieving it. I hope you're doing well! More cloud challenges to come! 

Here is the [final product](https://edwardallen.de/). I also outlined below the architecture I made base on my own understanding. 
![My Architecture](https://dev-to-uploads.s3.amazonaws.com/i/f0uqz2cysu08lrrt75wz.png)

If someone stumbled on this post and accidentally clicked my [website](https://edwardallen.de/), please leave a comment on how can I improve my work, I will really appreciate it.