Een environment is een aparte, op zichzelf staande kopie van je software-opzet waar code in een bepaalde fase van zijn leven draait. De meeste teams houden er minstens drie aan: een development-omgeving om te bouwen, een staging- of testomgeving om te controleren, en een productieomgeving die echte klanten gebruiken.
Denk aan een toneelvoorstelling. De cast repeteert achter de schermen, doet een volledige generale op een leeg podium, en speelt pas daarna voor een betalend publiek. Elke stap is hetzelfde stuk in een veiligere setting. Environments doen dat voor software en geven wijzigingen een plek om uitgeprobeerd en stukgemaakt te worden voordat ze de mensen bereiken die ertoe doen. Een developer kan in een dev-omgeving het verkeerde wissen en zijn schouders ophalen. Datzelfde doen in productie is een heel andere ochtend.
Elke omgeving heeft ook zijn eigen instellingen en data. De testomgeving wijst misschien naar een nep-betaalsysteem zodat er geen echt geld beweegt, terwijl productie met de echte bank praat. Die twee door elkaar halen is precies hoe een testbetaling per ongeluk de kaart van een klant raakt, en dat soort fout voorkom je met een schone scheiding.
Die fases identiek houden is het lastige deel, en daarom gebruiken teams Docker om elke omgeving te laten matchen. Een CI/CD-pijplijn verplaatst geteste code dan automatisch van de ene fase naar de volgende, zodat een wijziging in staging gecontroleerd wordt voordat hij ooit naar productie wordt gepromoot. En glipt er toch iets doorheen, dan maakt een schone scheiding het makkelijk om terug te rollen.
Bij TopDevs zetten we voor elk klantproject nette environments op, zodat nieuwe features in een veilige kopie getest worden lang voordat ze de live site raken.