The client is a logistics service processing tens of thousands of orders a day, with evening and sale-period peaks and strict SLAs to retail partners. Its infrastructure had grown organically: scattered VPS instances, configurations living “on the servers”, and manual deployments following a wiki guide. Every release meant a night-time rollout with downtime, and every peak carried a risk of lost orders. The trigger for contacting us was an incident during a pre-New-Year sale, when the platform was unavailable for four hours and the service had to compensate partners.
Move the platform to managed infrastructure without stopping the business:
infrastructure as code, automated delivery, containerization and orchestration, observability, and predictable outage recovery. The founder defined success as “deploying during working hours, with no downtime and no person with SSH access”.
We followed a proven sequence: containers and reproducible environments first, delivery automation next, and orchestration with autoscaling only after that.
- Audited the infrastructure: mapped services and dependencies, measured the peak load profile and listed the manual operations most likely to cause incidents.
- Containerized the services: standardized builds, moved configuration out of code into environment variables and created identical dev/stage/prod environments.
- Described infrastructure as code in Terraform: environments are deployed from the repository, and manual changes in the cloud provider’s console are prohibited.
- Built a GitLab CI pipeline: tests and image builds run automatically; deployment to stage happens immediately, production deployment is triggered by a button after review, and rollback takes one action.
- Moved the platform to Kubernetes with autoscaling: the platform now meets evening and sale peaks with extra instances instead of emergency manual work.
- Set up monitoring and alerting around the golden signals—latency, errors, traffic and saturation—with on-call coverage and scheduled escalation.
- Configured backups and disaster recovery: documented recovery procedures and rehearsed an outage on stage while measuring the actual MTTR.
The project’s most valuable result was not the technology, but the shift in responsibility: the infrastructure no longer depended on a “person with SSH access”. Every deployment is reproducible, every environment can be restored from code, and dashboards reveal any outage before the first customer writes in. This turns downtime from a catastrophe into a routine incident with a clear playbook and measurable recovery time.
The project’s economics came together in three parts: direct infrastructure savings of 32% through autoscaling and eliminating permanently warmed “peak” capacity; team hours saved from night deployments; and, most importantly, revenue preserved during peaks that now pass without incidents. A major retail-chain client renewed its contract after the first sale event on the new infrastructure.
| Metric | Result |
|---|---|
| Release deployment | 3–4 hours by hand → 15 minutes automatically |
| Release frequency | 2–3 per month → Almost daily |
| Platform availability | 97.8% → 99.95% |
| Peak loads | Risk of downtime → Autoscaling without human intervention |
Metrics are transcribed from the original case materials. A period is stated where it is recorded in the source.
- release deploy (was 3–4 hours by hand)
- 15 min
- platform availability (was 97.8%)
- 99.95%
- recovery after an outage (was 2–4 hours)
- 20–30 min
- infrastructure cost
- −32%
Upper bounds of ranges are drawn (4 hours, 30 minutes). Downtime = 100% − availability.
- 01Commit
- 02Tests
- 03Image build
- 04Stageimmediately
- 05Prodon a button after review
Infrastructure improvements for the next cycle:
- FinOps practices: alerts for cost anomalies and transparent costs by team.
- A GitOps approach: production state described in the repository, with changes made only through pull requests.
- Multi-region setup: replicas of critical services to withstand a provider outage.
A release used to mean a night, coffee and a prayer. Now it’s a button and fifteen minutes. We celebrated the first incident-free sale together as a company.
— Technical Director of the Logistics Service