Shortlink Platform
A deliberately simple URL shortener wrapped in a production-grade DevOps stack—Docker, Kubernetes, Helm, ArgoCD GitOps, Terraform, and full observability. The app is boring; the infrastructure is the point.
Problem
Modern platform engineering spans containerization, orchestration, CI/CD, infrastructure-as-code, and observability—but these practices are hard to demonstrate coherently on a real application. A feature-heavy app buries the infrastructure; a toy script never exercises it.
Approach
Shortlink Platform is intentionally minimal at the application layer—paste a long URL, get a short code, track click counts on a dashboard—so the full production DevOps stack around it becomes the focus:
- Application: A React + Vite + TypeScript frontend served through nginx, backed by an async FastAPI service with PostgreSQL, SQLAlchemy ORM, and Alembic migrations.
- Containerization: Multi-stage Docker builds with Docker Compose for local development.
- Orchestration: Kubernetes (kind locally, Azure AKS in production) with Helm for templated, environment-parameterized deployments.
- CI/CD & GitOps: GitHub Actions builds and Trivy-scans images, pushes to GHCR, and ArgoCD continuously syncs the desired state from Git.
- Infrastructure as Code: Terraform provisions the Azure AKS cluster and managed PostgreSQL.
- Observability: kube-prometheus-stack (Prometheus, Grafana, Alertmanager) with custom dashboards and k6 load testing.
- AI Operations: A LangGraph-based diagnostic agent (local Ollama or Azure OpenAI) with read-only, RBAC-scoped in-cluster tooling.
Architecture & Deployment
Requests enter through a single LoadBalancer to nginx, which serves the React frontend and proxies API calls to FastAPI; PostgreSQL handles persistence. Prometheus scrapes application metrics, while ArgoCD reconciles the cluster to the Git repository.
To run locally:
docker compose up --build
# App available at http://localhost:8080
Kubernetes deployments use Helm with parameterized values across environments.
What I Learned
- GitOps discipline: Letting ArgoCD reconcile cluster state from Git makes deployments declarative, auditable, and reversible.
- Templating for portability: Helm value files cleanly separate the kind-based local cluster from Azure AKS production.
- Secure supply chain: Wiring Trivy image scanning into GitHub Actions catches vulnerabilities before images reach GHCR.
- Observability by default: Baking Prometheus/Grafana and k6 load tests into the platform surfaces performance behavior early, not after an incident.