The Cloud Resume Challenge - GCP
Published: 2023-10-15 01:30:14

Explore my resume at [www.challenge.selmouni.website](www.challenge.selmouni.website)

## Introduction

I recently completed the [Cloud Resume Challenge on Google Cloud Platform (GCP)](https://cloudresumechallenge.dev/docs/the-challenge/googlecloud/). The challenge is a project that involves building a personal resume website and deploying it using various GCP services like Cloud Storage, Cloud CDN, Cloud DNS, Cloud Firestore, Cloud Functions, Google Load Balancing, Terraform, and GitHub Actions. In this post I will share my experience of completing this challenge.

## Static Website Hosting - Cloud Storage

The foundation of my project was hosting a static website on GCP's Cloud Storage. While I'm bad at web design, I modified [this template](https://startbootstrap.com/theme/resume) to suit my needs.
![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hndfhsu92vxq3ax813jl.png)


## Visitors Counter - Cloud Functions

To add a dynamic touch to my resume, the challenge suggested implementing a visitors counter (the best part so far). This involved a dance between JavaScript for the frontend, Firestore for data storage, and Cloud Functions for serverless magic.I crafted a Cloud Function to consistently update the visitors counter within the Firestore database upon each user's website visit, and then utilized JavaScript to showcase the current number of visitors.

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qr6jv4oml8sok39fozy.png)

## Infrastructure as Code - Terraform

To ensure reproducibility and scalability, I used Infrastructure as Code (IaC) with Terraform. I utilized Terraform to articulate the configurations for all the GCP services implemented in this project.

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6fiddpsh891dsx9pj5s6.png)

## CI/CD - GitHub Actions

Creating CI/CD pipelines becomes a crucial part of the software industry as it automates builds, tests, and deployments. Therefore, I used GitHub Actions to handle these tasks for both the backend and frontend, ensuring automatic deployment of changes and the updating of Cloud Storage content with each push to my GitHub repository.

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bugdpsq3csdk6b1jaixs.png)

## What I Learned

### Terraform

It was a good experience working with Terraform. I discovered the power of infrastructure as code to make projects clear, efficient, and scalable.

### Serverless Components

The concept of serverless computing was initially unclear to me, 
 but implementing Cloud Function introduced me to the world of serverless architectures.

### GitHub Actions (CI/CD)

I had some experience using Jenkins for my CI/CD processes. Transitioning to GitHub Actions, I found the transition to be quite smooth.

## Conclusion

As I wrap up the Cloud Resume Challenge on GCP, I want to thank [Forrest Brazeal](https://forrestbrazeal.gumroad.com/) for this wonderful challenge. This challenge provided me with valuable hands-on experience, and the journey was truly rewarding.

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9uile19h8oujy9mzh0ss.png)

I hope my experience encourages you to take on your own challenges. Feel free to explore my project repositories: 
-[Frontend](https://github.com/Selmouni-Abdelilah/gcp-resume-challenge-frontend) 
-[Backend](https://github.com/Selmouni-Abdelilah/gcp-resume-challenge-backend).