Jako vývojáři nebo testeři pracujeme na různých prostředích, kde vyvíjíme a testujeme nové funkce. Čas od času se ale stane nepříjemnost — někdo si splete prostředí a provede destruktivní operaci na produkci, protože si myslel, že se nachází v testovacím prostředí. Taková chyba může vést k výrazným finančním ztrátám a časovým komplikacím. Jak tomu efektivně předcházet?
Kromě základní obezřetnosti existují praktické způsoby, jak si jednotlivá prostředí vizuálně odlišit, což minimalizuje riziko nechtěných chyb.
Co a jak graficky odlišit?
Z mojí zkušenosti většinou postačí následující vizuální indikátory, které vám jasně připomenou, ve kterém prostředí pracujete:
1. Label v CLI
Pokud používáte příkazovou řádku (CLI) pro práci s prostředím, můžete si do promptu přidat jasné označení aktuálního prostředí. Například:
- DEV: zelený text (např.
[DEV]
) - STAGE: žlutý text (např.
[STAGE]
) - PROD: červený text (např.
[PROD]
)
Konfiguraci lze snadno nastavit v souboru .bashrc
PS1="\[\e[32m\][DEV]\[\e[m\] \u@\h:\w$ "
PS1="\[\e[33m\][STAGE]\[\e[m\] \u@\h:\w$ "
PS1="\[\e[31m\][PROD]\[\e[m\] \u@\h:\w$ "
2. Badge v phpMyAdminu nebo Admineru
Pokud používáte nástroje pro správu databází jako phpMyAdmin nebo Adminer, můžete si přidat jednoduché barevné odznaky (badge), které označují prostředí. Inspirace, jak to provést je k vidění zde: https://github.com/midlan/adminer-skin/blob/master/adminer.css
3. Badge v administraci aplikace
Pokud pracujete v administraci systému, přidejte na viditelné místo (např. do záhlaví nebo do rohu stránky) barevný odznak, který označuje aktuální prostředí.
Další tipy pro zvýšení bezpečnosti
- Oddělení přístupů
- Ujistěte se, že přístupy do produkčního prostředí mají pouze vybraní uživatelé.
- Používejte různé účty pro práci na dev/stage a produkci.
- Zálohování a obnovy
- Automatické zálohy produkčních dat by měly být samozřejmostí.
- Testujte obnovu dat z těchto záloh pravidelně. Z mých zkušeností se nevyplácí se spoléhat, že poskytovatel managed služeb je schopný obnovit zálohu včas. Je vhodné toto „nacvičit“ a mít specifikované veškeré procesy předem.
- Logování destruktivních akcí
- Logujte všechny změny provedené v produkčním prostředí, aby bylo možné rychle identifikovat a případně napravit chybu.