Zhivko Todorov
ALL CASE STUDIES

CASE 26 · COVE · 2024

EPHEMERAL ENVEKSNAMESPACEPREVIEW URLS

A preview environment per pull request, without bankrupting the team.

An education tech company wanted preview environments for every pull request — but their first attempt had spun up a full-stack copy per PR and blew the budget in two weeks. We rebuilt it as namespace-scoped previews on a single shared cluster, with on-demand databases and aggressive teardown.

INDUSTRY

Education tech

DOMAIN

PLATFORM

DELIVERED

2024

STACK

EKS·GITHUB ACTIONS·ARGOCD·AURORA SERVERLESS V2·CADDY·CLOUDFRONT·KYVERNO

RESULTS

What changed, by the numbers.

COST PER PREVIEW

$0.18/hr

WAS $4.20/hr

SPIN-UP TIME

3m

PR OPENED → PREVIEW URL

PREVIEW SURFACE

FULL APP

NO MOCKS

TEARDOWN

AUTO

ON PR CLOSE OR 7-DAY IDLE

HOW IT WENT

The first attempt had been one cluster per preview, one database per preview, one CloudFront distribution per preview. Conceptually correct, financially impossible. The CFO had quietly asked the CTO to fix it or kill it.

We rebuilt it on a single shared "preview" EKS cluster, one Kubernetes namespace per PR, with name-mangled ingress hostnames terminating on a single CloudFront distribution. Database needs were served by Aurora Serverless v2 with cold-start tolerated (preview, not production). Kyverno blocked any preview from running images outside the team’s ECR.

Cost per preview-hour dropped from $4.20 to $0.18. Spin-up time landed at three minutes — fast enough that engineers actually use it. Teardown is automatic: PR closes, namespace deletes; PR sits idle for seven days, namespace deletes. The cluster runs at consistent capacity regardless of PR volume.

READY WHEN YOU ARE

Let's get your AWS bill (and architecture) in order.

The discovery call is free. You walk away with at least one concrete idea — even if we never work together.

Or email directly →