před nasazením do produkce se většinou nasazuje na testovacího prostředí pro zákazníka, aby si ji mohl vyzkoušet a otestovat
DevOps řeší problémy, které vznikaly mezi předávání informací mezi vývojáři a správci serverů (kteří aplikaci nasadí a budou provozovat)
nechceš nasazovat manuálně
může se stát nějaká lidská chyba
proces nasazení je mnohdy pomalejší
Release
= uvolnění nové verze aplikace pro předání zákazníkovi
vždy musí být specifikovaná přesná verze aplikace Balíčkovací systémy a sémantické verzování a zdrojové kódy (verze knihoven, konfigurační soubory atd.) pro tento release
společně s tagem
release aplikace - většinou rychlé “nahrazení”
release databáze - je složitější, je potřeba dát pozor na poškození/ztrátu dat - skripty jdou většinou spustit jednou (na DDL změny nejde mít rollback)
důležité mít zálohu
skripty jsou
opakovatelné - při každém nasazení
neopakovatelné
úplné - vytvoření nové databáze
inkrementální - vyžaduje specifickou konkrétní předchozí verzi DB
dá se řešit např. verzovanými migracemi (kde jsou změny i “antizměny”)
Feature flag
možnost do release dát i funkčnosti, které budou dostupné jenom po “zapnutí” přepínačem (např. ještě nejsou úplně hotové)
zpřístupnění pouze pro vybranou množinu uživatelů
Prostředí aplikace a jeho správa
většinou je potřeba více prostředí
testovat na produkčních datech nikdy není dobrý nápad