Posts

Day 29 - GitOps Patient Zero — Continuous Delivery on AWS EKS with Argo CD and Kustomize

Image
Today's project moves away from manual, ad-hoc cluster provisioning and embraces true modern cloud operations by setting up a production-grade GitOps Continuous Delivery (CD) Pipeline using Argo CD and Kustomize running on an Amazon Elastic Kubernetes Service (EKS) cluster. Traditional infrastructure management often suffers from "configuration drift," where changes made manually via CLI or console make environments impossible to reproduce. By shifting to a GitOps topology, my entire application stack state is now declared natively in code and driven directly from a GitHub repository as the single source of truth. 1. The System Architecture Topography This project establishes a clean boundary separating core cloud infrastructure provisioning from the software application delivery lifecycle. Below is the technical structural blueprint behind today's successful deployment: 2. Technical Highlights & Version Pinning Strategy To eliminate fragile integration depend...

Day 28 - Building a Highly Available 3-Tier AWS Application with Terraform and GitHub Actions

Image
For Day 28, the goal was to build a highly available 3-tier application on AWS. The application included a Node.js frontend, a Go backend API, and a PostgreSQL database. My mentor demonstrated this using VS Code and manual Docker commands, but I wanted to take it one step further and deploy it through GitHub Actions. The objective was not only to create AWS infrastructure, but also to understand how application code, Docker images, Terraform, and AWS services work together in a real deployment workflow. Architecture Overview The application was deployed across multiple layers inside a custom VPC. The public layer contains an internet-facing Application Load Balancer. This is the only entry point exposed to users. The frontend layer runs Node.js containers on EC2 instances managed by an Auto Scaling Group. The backend layer runs Go containers on EC2 instances behind an internal Application Load Balancer. The database layer uses Amazon RDS PostgreSQL in private database subnets. The...

Day 27 – Production Style AWS Infrastructure with Terraform and GitHub Actions CI/CD

Image
Introduction For Day 27 of my AWS and Terraform learning journey, I wanted to move beyond basic Terraform deployments and simulate a more production style Infrastructure as Code workflow. The goal of this project was not just to deploy AWS resources manually from a laptop, but to build a deployment pipeline where infrastructure changes are reviewed, approved, and automatically applied through GitHub Actions. This project included: Terraform based AWS infrastructure deployment GitHub Actions CI/CD workflow AWS OIDC authentication instead of static access keys Protected production approval workflow Auto Scaling Group infrastructure updates through Git commits Multi AZ production style network architecture Architecture Overview This architecture includes: VPC with public and private subnets Internet Gateway NAT Gateway Application Load Balancer Auto Scaling Group EC2 instances running Nginx S3 backend for Terraform remote state GitHub Actions CI/CD pi...

Day 26 -Terraform Cloud and Workspace Management

Image
For Day 26 of my AWS Terraform learning journey, I explored HCP Terraform Cloud and workspace management. Until now, most of my Terraform projects were executed from my local machine. I used local state in the beginning and later moved to an S3 remote backend with state locking. That approach works well, especially for AWS based projects, but Terraform Cloud gives a more centralized way to manage Terraform runs, remote state, variables, logs, and collaboration. The goal of this project was to understand how Terraform Cloud works in a practical setup. I created a Terraform Cloud account, created a workspace, connected Terraform CLI to the workspace, and deployed a small AWS environment using Terraform. Architecture The architecture for this project is simple. A developer runs Terraform commands from the local machine. Terraform CLI connects to the Terraform Cloud workspace. Terraform Cloud manages the run, stores state remotely, and provisions AWS resources using the AWS provider. ...