Deploy a Containerized Service with Terraform, CI/CD & Observability
Track: Cloud / DevOps / SRE
Plenty of juniors can write an app. Far fewer can ship one — provision the infrastructure, wire up a pipeline that deploys on every push, and prove it’s healthy in production. That gap is exactly what DevOps, SRE, and platform roles hire for. This project closes it.
What you’ll build: take a small containerized service, provision cloud infrastructure with Terraform, set up a CI/CD pipeline that builds, tests, and deploys it automatically, and add the observability — health checks, logs, metrics — that tells you it’s actually working. Bring any small service (or use the stub); the platform around it is the point.
DevOps interviews probe whether you’ve actually run the deploy loop, not just read about it. A repo with real Infrastructure-as-Code, a green CI/CD pipeline, and a deployed service that exposes health and metrics endpoints answers that on sight. It maps to the keywords these roles list: Docker, Kubernetes, Terraform, CI/CD, GitHub Actions, cloud (AWS/Azure/GCP), observability, infrastructure-as-code.
Skills & keywords you’ll demonstrate
Containerizing a service with Docker
Infrastructure-as-Code with Terraform (provision, plan, apply, destroy)
A CI/CD pipeline (GitHub Actions) that builds, tests, and deploys on push to main
Observability — liveness/readiness probes, structured logs, a metrics endpoint
Optional Kubernetes manifests (Deployment + Service with probes)
Starter repo
Clone github.com/OptimalMatch/resume-project-devops-pipeline — an app/ Dockerfile, a Terraform infra/ stub, a CI/CD workflow stub, and k8s manifests. Build it under your own account, committing per milestone. Use free tiers and run terraform destroy when you’re done so it costs nothing.
Build it in milestones
Containerize. Get a small web service running in Docker locally with a /health endpoint. Commit.
Infrastructure-as-Code. Write Terraform that provisions where the container will run (a small VM/container service). plan, then apply. Commit.
CI. A GitHub Actions workflow that builds the image and runs tests on every push. Commit — screenshot the green check.
CD. Extend the pipeline so a push to main deploys the new image automatically. Commit.
Observability. Add readiness/liveness probes, structured logging, and a /metrics endpoint; confirm you can see the service is healthy. Commit.
Document & tear down. README with an architecture sketch and the deploy URL; then terraform destroy. Commit.
Stretch goals
Deploy to a managed Kubernetes cluster using the included manifests.
Add a dashboard (Prometheus + Grafana, or the cloud’s native monitoring) and screenshot it.
Blue/green or rolling deploys; a rollback step in the pipeline.
Put it on your résumé
“Provisioned cloud infrastructure with Terraform and deployed a containerized service via a GitHub Actions CI/CD pipeline that builds, tests, and ships on every push to main.”
“Added observability — liveness/readiness probes, structured logging, and a metrics endpoint — to monitor service health in production.”
Update your résumé and check it with the free ATS resume score — DevOps and SRE roles weight exactly these keywords.
Frequently asked questions
Will this cost money to build? It can be free. Use cloud free tiers and run terraform destroy when you finish each session, so nothing keeps running. The starter repo and guide both flag this. The skills — IaC, CI/CD, observability — are identical regardless of provider.
Do I need to already know Kubernetes? No. The core project deploys a container with Terraform and a CI/CD pipeline — no Kubernetes required. Kubernetes manifests are included as a stretch goal once the basics work, so you can add it when you are ready.