Všechny články

Nasazení, u kterého nemusím být

2 min čtení

Když si u mě někdo objedná úpravu svého systému, dřív nebo později přijde otázka, která s programováním nemá nic společného: a kdy to teda bude nasazené?

Roky na to byla jediná odpověď — večer, až nikdo nepracuje. Připojím se na server, vypnu aplikaci, nahraju do ní nové soubory, zapnu ji zpátky a doufám. Když se něco pokazí, řeším to o půlnoci. A když se to pokazí tak, že si toho nikdo hned nevšimne, přijde na to ráno účetní.

U jednoho zákazníka jsem tenhle týden dodělal věc, která tuhle noční část ruší. Na zkušebním provozu už to takhle jede.

Aplikace zabalená v kontejneru

Základ je v tom, že se aplikace nenahrává po souborech. Zabalí se celá do kontejneru — do jednoho balíku, ve kterém je úplně všechno, co k běhu potřebuje: program, nastavení i systém, na kterém běží. Ten balík je neměnný. Co se do něj jednou zavře, už nikdo nepřepíše, takže na mém počítači běží naprosto stejně jako na serveru. Stará se o to Docker, což je dnes ve světě serverů úplně běžná věc.

Na serveru pak hlídá jeden malý program, jestli nedorazila novější verze. Když ano, starou odstaví, novou pustí a je hotovo. Trvá to pár vteřin a já u toho nemusím být.

Nejdřív na zkušebním, teprve pak na ostrém

A tady je ta část, kvůli které si troufnu pustit tohle na cizí firmu.

U zákazníka běží dvě kopie systému. Jedna zkušební, kde si všechno vyzkoušíme, a jedna ostrá, na které lidi opravdu pracují. Změna jde vždycky nejdřív na tu zkušební.

Až se schválí, nebalí se nic znovu. Na ostrý provoz jde přesně ten samý kontejner, který stál na zkušebním. Ne nový, sestavený znovu podle stejného receptu — ten samý.

Zní to jako hnidopišství. Není. Kdyby se balil znovu, mohla by mezitím vyjít novější verze některé ze součástek, ze kterých je aplikace poskládaná. Vypadalo by to stejně a chovalo se to skoro stejně — a to „skoro“ je přesně to slovo, kvůli kterému pak člověk dva dny hledá, proč se ostrý provoz chová jinak než zkušební.

Cukrář taky nepeče zákazníkovi nový dort podle stejného receptu. Pošle mu ten, který si přišel ochutnat.

Co z toho má zákazník

Změny chodí rychleji, protože nasazení přestalo být událostí, kterou je potřeba naplánovat na večer. Nasazuje se to, co bylo odzkoušené, a ne něco, co se tomu podobá.

A když se přesto ukáže, že je nová verze horší než ta minulá, návrat je otázka minuty — předchozí kontejner nikam nezmizel, jen se řekne, že se má pustit zase on.

To poslední je mimochodem to, co dělá odvahu. Ne že se nikdy nic nepokazí. Ale že se to dá vzít zpátky dřív, než si toho kdokoliv všimne.

Další články

  • Jak jsem si shodil vlastní web

    Nechal jsem umělou inteligenci pracovat na svém webu a ona mi místo testovací kopie vypnula tu ostrou. Třikrát po sobě. Píšu o tom, protože je to přesně to, co chci, aby o mně zákazník věděl dřív, než si mě najme.

    2 min čteníagentiprovozdocker
  • Web bez lišty se souhlasem

    Kdykoli se u nového webu řeší návštěvnost, přijde stejná obava: že se za to zaplatí otravnou lištou k odklikání. Lišta ale není daň za měření — je za to, že se návštěvníkovi něco uloží do prohlížeče a pozná se podle toho příště.

    2 min čteníprovozsoukromi