DevOps Capstone
Reduced deployment time from hours to minutes - 95%+ test coverage with TDD
95%+ test coverage
Hours to minutes deploy
Full TDD
Overview
Containerized Flask microservice following TDD principles. Automated CI/CD pipelines using Tekton, orchestrated deployments with Kubernetes, and implemented PostgreSQL for data persistence.
Architecture Diagram
Architecture diagram coming soon.
See the GitHub repository for architecture documentation.
Design Decisions
- →Chose Tekton over GitHub Actions because the project required Kubernetes-native CI/CD with no external dependencies.
- →Used TDD from the start writing tests before implementation ensured 95%+ coverage and caught regressions early.
- →PostgreSQL over SQLite for production parity the dev environment mirrors production exactly.
- →Containerized with Docker to eliminate 'works on my machine' issues across the pipeline.
Deployment
Containerized with Docker, pushed to a container registry, and deployed to Kubernetes. The Tekton CI/CD pipeline handles build → test → push → deploy automatically on every commit to main. Zero-downtime rolling updates configured via Kubernetes deployment strategy.
Lessons Learned
The biggest lesson was how much TDD changes your design. Writing tests first forced cleaner interfaces and smaller functions. The CI/CD pipeline also revealed environment inconsistencies early issues that would have been painful to debug in production.