← All Projects
GCP • Cloud Run • Serverless

Cloud-Native Portfolio Website

A serverless, scalable personal portfolio deployed as a Docker container on Google Cloud Run using the gcloud CLI.

Role

Cloud Engineer

Stack

Cloud Run, Artifact Registry, Docker

Deployment

gcloud CLI

Outcome

High Availability • Near-Zero Cost

The Challenge

As a Cloud Engineer, hosting a static portfolio on a basic web server wasn't enough. I needed to build a highly scalable, secure, and production-ready environment that practically demonstrates my skills in containerization and cloud hosting.

The system needed to:

Architecture Overview

The solution uses a fully Google Cloud-native architecture with Docker containerization and a managed serverless runtime environment.

GCP Architecture Diagram showing Developer pushing to Artifact Registry and deploying to Cloud Run, while Users connect via Cloud Domains.

Fig 1. GCP Architecture — Serverless Portfolio Deployment

How It Works

Step 01 — Containerize

Docker & Nginx

The HTML, CSS, and JS files are packaged into a lightweight Alpine Nginx Docker image to ensure consistent performance across environments.

Step 02 — Provision

GCP Console & CLI

Google Cloud Run service and Artifact Registry were provisioned securely using the GCP Console and the gcloud CLI.

Step 03 — Host

Artifact Registry

The built Docker image is pushed to Google Artifact Registry, establishing a secure and version-controlled repository for the application.

Step 04 — Serve

Cloud Run & Domains

Cloud Run pulls the image and serves the site. GCP Domain Mapping connects my custom domain and provisions a free managed SSL certificate.

Implementation

The deployment is handled via the Google Cloud CLI. Here are the commands used to securely build the image and deploy the serverless Cloud Run environment:

Tech Stack

Cloud Run Artifact Registry Cloud Domains Docker Nginx

Future Improvements

To further align with modern DevOps practices, the next phases of this project involve fully automating the deployment lifecycle:

← All Projects