Co žádné sestavení nevrátí

Notebook doslouží, nebo se server buduje znovu od nuly, a otázka, na které skutečně záleží, je užší, než zní. Ne „jak to zálohovat" – „které z těchto souborů po mně engine opravdu potřebuje chránit, protože nic jiného tady je znovu nevyrobí."

Většina instalace tuto podmínku nesplňuje. Engine sám je git klon; stáhni ho znovu a je to tentýž engine. Všechno, co sestavení zapisuje, se vrátí jedním sestavením, pokud zbylo to ostatní.

Instinkt velí zálohovat samotný web – složku, kterou prohlížeč skutečně vidí. To je přesně ta jediná věc, kterou tento seznam vynechává. public.nosync, vlastní výstup sestavení, je stejně postradatelný jako engine, který ho vytvořil: jedno sestavení ho zopakuje bajt po bajtu, takže držet jeho kopii by znamenalo ukládat tutéž informaci dvakrát pod dvěma jmény a omylem věřit té starší.

Co zbývá, když odložíme engine i web, který sestavuje, je krátký seznam.

Co je skutečně nenahraditelné

Nejdřív samotné příspěvky – jediná položka celého seznamu, kterou žádné sestavení, nový klon ani nové nasazení nevrátí za žádných okolností.

Vedle nich, a snadno omylem vynechaná: historie verzí, kterou si každá úprava ukládá. Leží vedle příspěvků, ne v nich, takže záloha samotných příspěvků zachová archiv a potichu přijde o možnost vrátit se zpět – rozdíl mezi obnoveným webem a obnoveným webem, který ještě umí odpovědět „co tu stálo, než jsem to rozbil".

Média jsou od 1.6 zvláštní případ: publikovaný obrázek je pevný odkaz na původní soubor, ne druhá kopie, takže jeho záloha stojí přesně tolik, co jedno uložení – i když se na tentýž obrázek odkazuje z tuctu míst v archivu.

Pak menší, snáze zapomenutelné kusy: config/site.yml s identitou webu a jeho napojeními, env.sh s tokeny, bez kterých web nikam nepublikuje, a obrázky banneru a favicony – záměrně mimo git, což znamená, že čerstvý klon ti potichu vrátí výchozí obrázky enginu místo tvých, pokud jejich kopii nic nedrželo.

Za tím zbývá jen pár pohodlností: koš, kdyby bylo potřeba smazání později vrátit, a vlastní paleta, pokud web někdy měl jiné barvy než ty, se kterými přišel. Ani jedno není cenné tak jako zbytek tohoto seznamu.

Co obnovení skutečně je

Čerstvý klon, těch pár cest zkopírovaných zpět, jedno sestavení. To je celý postup – a beze změny je to i to, jak vypadá přesun instalace na úplně jiný stroj. Záloha a stěhování jsou tentýž krátký seznam, čtený ve dva různé špatné dny.

Všechno, co na něm chybí – vlastní výstup sestavení, manifesty nasazení, mezipaměť sestavení, značky, které si naplánované publikování nechává mezi kroky – se buď zadarmo obnoví při příštím běhu, nebo stojí přesně jednu operaci. Nic z toho není záznamem čehokoli; všechno je to záznam toho, co poslední běh už uměl udělat znovu.

Ne záloha – export

Stojí za to obojí držet od sebe, protože odpovídají na jiné otázky. Záloha jsou ty cesty přesně tak, jak jsou, určené k přesnému návratu. Export převádí – co Markdown neumí zapsat, vyjde jako HTML – protože je stavěný na odchod, ne na návrat. Obnova z exportu funguje, ale obnova z archivu samotného je ta, která cestou nic neztratí. Export zachovává web. Záloha zachovává projekt.

Komentáře