FEATURED CLOUD PROJECT
Cloud Resume Challenge
A production cloud portfolio built on AWS with infrastructure as code, serverless architecture, automated testing, and CI/CD deployment.
PROJECT OVERVIEW
What I Built
I built and deployed a production cloud portfolio on AWS that combines static web hosting, serverless backend services, infrastructure as code, automated testing, and continuous deployment.
The project demonstrates the full lifecycle of a cloud application, from provisioning AWS infrastructure with Terraform to deploying updates automatically through GitHub Actions.
ARCHITECTURE & TECHNOLOGIES
How It Works
Frontend
HTML, CSS, JavaScript
Cloud Infrastructure
Amazon S3, CloudFront, Route 53
Serverless Backend
AWS Lambda, API Gateway, DynamoDB
Infrastructure as Code
Terraform
CI/CD
GitHub Actions
Automated Testing
Python, pytest, moto
CLOUD ARCHITECTURE
Architecture
The portfolio uses a serverless AWS architecture that separates static website delivery from the visitor counter backend.
Visitor
Requests the portfolio website.
CloudFront + S3
Delivers the static website globally.
API Gateway
Receives the visitor counter request.
Lambda
Processes and updates the visitor count.
DynamoDB
Stores the visitor count.
INFRASTRUCTURE AS CODE
Built with Terraform
I used Terraform to define and manage the AWS infrastructure for this project as code, creating a repeatable and version-controlled deployment process.
Infrastructure Defined as Code
AWS resources are defined in Terraform configuration files rather than created entirely through the AWS Console.
Repeatable Deployment
Terraform provides a consistent process for provisioning and updating the project's cloud infrastructure.
Version Controlled
Infrastructure changes can be tracked alongside the application code through Git and GitHub.
CI/CD & AUTOMATED TESTING
Tested Before Deployment
I built a GitHub Actions CI/CD pipeline that automatically tests the serverless backend before deploying updates to AWS.
Push to GitHub
Code changes pushed to the main branch automatically trigger the workflow.
Run Unit Tests
Python tests run with pytest and moto to validate the Lambda visitor counter logic.
Deploy to AWS
The deployment job runs only after the automated test job completes successfully.
CHALLENGES & SOLUTIONS
What I Learned Along the Way
Building the project end to end required more than connecting AWS services. I also had to troubleshoot how the application, infrastructure, testing, and deployment processes worked together.
CHALLENGE 01
Protecting the Deployment Pipeline
I needed a way to prevent application updates from deploying when backend changes introduced a problem.
SOLUTION
I added automated Python unit tests with pytest and moto to the GitHub Actions workflow and configured the deployment job to depend on the test job succeeding.
CHALLENGE 02
Managing Cloud Infrastructure Consistently
Managing AWS resources manually makes infrastructure harder to reproduce, track, and maintain as a project evolves.
SOLUTION
I used Terraform to define the project's AWS infrastructure as code so infrastructure configuration could be repeatable and version controlled.
KEY TAKEAWAYS
What This Project Demonstrates
This project gave me hands-on experience building, automating, testing, and deploying a complete cloud application using AWS and modern DevOps practices.
Cloud Architecture
Designed a serverless AWS architecture connecting frontend hosting, content delivery, APIs, compute, and database services.
Infrastructure as Code
Used Terraform to define cloud infrastructure in a repeatable, version-controlled way.
Automation & Testing
Integrated automated Python testing into a GitHub Actions CI/CD pipeline to validate changes before deployment.
End-to-End Deployment
Connected application code, AWS infrastructure, testing, and deployment into one working production workflow.
EXPLORE THE PROJECT
Want to See the Code?
Explore the source code, infrastructure configuration, automated tests, and deployment workflow behind this project.