Jak oddělit verzování kódu aplikace od verzování konfigurace

· 2 min read
Jak oddělit verzování kódu aplikace od verzování konfigurace

Začni tím, že oddělíš repozitáře, ale ne bezhlavě. aplikace patří do jednoho repozitáře, kde se verzování kódu řídí podle vydání aplikace. Konfigurace však není součástí kódu, i když s ním úzce souvisí. Vytvoř samostatný repozitář pro konfiguraci, ideálně jeden pro každé prostředí (vývoj, test, produkce). Do něj ukládej jen to, co se mění podle prostředí nebo zákazníka: připojovací řetězce, adresy služeb, přepínače funkcí, limity, šablony e-mailů. Kód by měl naopak obsahovat výchozí hodnoty a logiku, která konfiguraci načte z předem definovaného umístění. Tím dosáhneš toho, že při nasazení nové verze aplikace nemusíš zároveň měnit konfiguraci a naopak.


Klíčové je zavést jasná rozhraní a validaci. Konfigurační soubory drž v textovém formátu, který umí verzovat historii změn, ať už jde o JSON, YAML nebo TOML. Každou změnu konfigurace doprovoď krátkým popisem, proč k ní dochází, a proveď ji jako samostatný commit. To ti umožní kdykoli zjistit, která verze aplikace spolupracovala s kterou konfigurací. Zvaž i oddělení tajných údajů: hesla a klíče nepatří do žádného repozitáře, použij správce tajemství nebo proměnné prostředí. Propojení mezi verzí aplikace a konfigurací řeš pomocí verzovacích značek nebo jednoduchého souboru, který obsahuje číslo verze aplikace a očekávanou verzi konfigurace. Tento soubor může být součástí obou repozitářů a při nasazení se kontroluje.

Nakonec si nastav proces, který oddělení udrží dlouhodobě. Při každé změně kódu, která vyžaduje jinou konfiguraci, vytvoř novou větev v konfiguračním repozitáři a propoj ji s větví v aplikaci. Testovací prostředí by mělo vždy používat konfiguraci z odpovídající větve, ne z hlavní linie. Zaveď automatickou kontrolu, která při sestavení aplikace ověří, že načtená konfigurace odpovídá očekávanému schématu a verzi. Pokud tato kontrola selže, build se zastaví. Díky tomu se vyhneš situaci, kdy nová verze aplikace běží se starou konfigurací a způsobí výpadek. Pamatuj, že verzování kódu a verzování konfigurace mají různé tempo i důvody. Zatímco kód se mění při vývoji funkcí,  https://vyvojarska.cz/  se mění při změnách prostředí nebo požadavků zákazníka. Jejich oddělením získáš přehlednost, rychlejší nasazení a menší riziko chyb.