Nasazení přes
symlink releases.
Symlink release je způsob nasazení bez výpadku. Nová verze webu vzniká ve vlastní složce a živý web se na ni přepne jedním krokem. Je to jako výměna kulis mezi dějstvími: diváci uvidí jeviště, až když je hotové. Když nová verze nesedí, vrátíme kód webu na předchozí verzi do 5 minut.
Co je symlink release
Symlink je odkaz, který míří na složku, podobně jako zástupce na ploše počítače: otevřete ho a jste ve složce, na kterou ukazuje. Obecně se používá takto:
- Každá verze webu má vlastní složku.
- Jeden odkaz říká, která verze je živá.
- Nahrané soubory a nastavení zůstávají stranou, mimo jednotlivé verze.
Přepnout živý web na jinou verzi pak znamená jen přesměrovat jeden odkaz.
Proč nasazujeme bez výpadku
- Soubory webu se nenahrávají po částech, protože nová verze je celá hotová dřív, než se na ni živý web přepne.
- Kód webu vrátíme na předchozí verzi do 5 minut, protože se jen přepne odkaz zpět.
- Příprava a kontroly proběhnou mimo živý web a návštěvníci mezitím vidí původní verzi.
Fáze nasazení
Nasazujeme přes GitLab CI/CD. To je automatický postup, který změnu v kódu otestuje a předá k nasazení, jako pás v dílně, na kterém každý kus projde kontrolou. Novou verzi připravíme mimo živý web a samotné nasazení má čtyři kroky.
- Záloha před nasazením. Než se cokoli přepne, uložíme zálohu databáze.
- Přepnutí verze. Živý web se přepne na novou verzi jedním krokem.
- Smoke test. Je to rychlá kontrola, že web naběhl a klíčové adresy fungují, jako zkouška světel před premiérou.
- Návrat k předchozí verzi. Když nová verze nesedí, vrátíme kód webu na předchozí verzi do 5 minut.
Soubory webu a databáze se vracejí zvlášť, a proto lhůta do 5 minut platí pro kód webu, ne pro databázi.
Obecná pravidla
- Každá změna kódu jde přes verzování (zápis, kdo co změnil, s možností vrátit se) a přes nové nasazení.
- Databázi zálohujeme každou noc a zálohy držíme 14 dní zpět. Obnovu ze zálohy zkoušíme alespoň jednou za čtvrtletí.
Chcete vědět, jak by nasazování vypadalo ve vašem projektu?
Na konzultaci zdarma probereme, jak by nasazení probíhalo u vás. Ozveme se do jednoho pracovního dne.