Suleiman Abdulkadir

Loading...
Back to Projects
DevOps

DevOps Capstone

Reduced deployment time from hours to minutes - 95%+ test coverage with TDD

PythonFlaskPostgreSQLDockerKubernetesTektonCI/CD
View on GitHub

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.

← View all projects