SkyOps - Air Traffic Control Simulation
An event-driven microservices architecture simulating active air traffic control radars. Deployed on high-availability Kubernetes environments with automated infrastructure provisioning, dependency ordering, and tuned DNS configurations.
System Architecture
Data Flows & Communication
System Architecture & Communications Diagram
Interactive Scenario Simulator
Select a scenario to trigger and view simulated backend logs & database traces.
DevOps
Kubernetes Orchestration
Configured resilient deployments, NodePort services, ConfigMaps, and Secrets. Managed container lifecycle, environment variables, and ingress ports.
Service Dependency Ordering
Enforced reliable startup sequences by introducing initContainers to check dependency readiness (PostgreSQL & Redis) before starting core services.
CI/CD & Testing Pipelines
Automated linting, type-checking, Jest testing (shared package & frontend), Pytest (user service), and production build verification via GitHub Actions.
CI/CD GitOps Pipeline & Tech Stack Justification
A comprehensive overview of the automated build-to-deploy GitOps workflow and key DevOps infrastructure choices.
GitOps & Git CI/CD Workflow
Full automation pipeline from developer commit to Kubernetes rollout.
DevOps Roadmap & Tech Stack
Kubernetes (K8s) & Redis
K8s provides service discovery, DNS routing, and self-healing. Redis handles high-throughput message streaming queue between microservices.
ArgoCD & GitOps Loop
Integrating ArgoCD to automate deployment matching state configs from the Git repository, eliminating configuration drift.
Terraform IaC & AWS Cloud
Automating cloud infrastructure provisioning with Terraform IaC, deploying production clusters to AWS (EKS, VPC, IAM).
Run Infrastructure Locally
You can easily spin up the complete containerized stack in your local terminal.
git clone https://github.com/everleepham/SkyOps-web-app-version.git
cd SkyOps-web-app-version
docker-compose up -d --buildEngineering Challenges & Design Decisions
DNS Resolution & Service Startup Failures
Problem
Microservices frequently crashed at startup because dependent databases (PostgreSQL/Redis) weren't ready, or due to DNS lookup timeouts (EAI_AGAIN) in the Kubernetes cluster.
Engineering Solution
Configured Kubernetes dnsConfig options with increased timeout and lookup attempts, and implemented initContainers with wait-for-service netcat loops to defer main container startup until services are ready.
Key Achievements & Metrics
- Configured robust multi-service environment setup using Docker Compose for local development.
- Established high-availability deployment configs on Kubernetes with zero-downtime service dependencies.
- Built full CI/CD test automation covering TypeScript and Python codebases via GitHub Actions.