Photo: free stock photography (Unsplash licence) — see imprint
The fear loop
Manual FTP deploys are risky, so teams batch changes for weeks. A big batch is harder to test and harder to roll back, which makes the next deploy riskier still. Small, frequent, automated deploys are not a luxury — they are the way out.
Same image everywhere
Build a Docker image once, run that exact image on staging and production. 'It worked on staging' stops being a mystery when staging and production are byte-identical apart from configuration.
The pipeline that is enough
On push: install, lint, run tests, build assets, build image. On merge to main: deploy to staging automatically. On a tag: deploy to production with one click and a database migration step. You do not need more than this to be safe.
Rollback is a feature you must test
A rollback plan you have never executed is a wish. Practise it on staging: deploy, break something, roll back, verify. Do it once and go-live night stops being a night.
- Deploy small and often to make deploying boring.
- Ship the identical image to staging and production.
- An untested rollback is not a rollback.
We do this for a living — Shopware, Node.js, React, ERP integration and automation for B2B.
Talk to an engineer