Postavit software je půlka práce. Druhá půlka začíná ve chvíli, kdy ho používají skuteční lidé a vy už nemůžete říct „počkejte, restartuju to“. Software v provozu musí běžet, když spíte, musí přežít, když se něco rozbije, a nesmí pustit ven data, která mu lidé svěřili. Tahle lekce je o tom, jak to zařídit, aniž byste museli mít vlastní serverovnu nebo bezpečnostní oddělení.
Kde to celé poběží: cloud, VPS, nebo vlastní železo
První rozhodnutí je, kde software fyzicky žije. Máte v zásadě tři cesty a liší se v tom, kolik za to platíte penězi, kolik vlastní prací a kolik kontroly vám zbyde.
- Managed cloud (AWS, Google Cloud, Azure, nebo jednodušší platformy jako Vercel, Railway, Fly). Pronajmete si službu, ne stroj. O hardware, aktualizace systému a škálování se stará poskytovatel. Platíte víc za provoz, ale skoro nic za starost. Pro většinu projektů je rozumné začít tady.
- VPS (virtuální server u Hetzneru, DigitalOceanu a podobně). Dostanete holý stroj a děláte si na něm, co chcete. Levné, plná kontrola, ale aktualizace, zálohy i bezpečnost ležící na vás. Dává smysl, když máte koho, kdo to umí hlídat.
- Vlastní server u vás ve firmě. Plná kontrola a žádné měsíční poplatky za výpočetní výkon. Zato řešíte výpadky proudu, klimatizaci, internet a chlapa, co tam v sobotu v noci pojede vyměnit disk. Pro malou firmu skoro vždycky zbytečná zátěž.
Čím větší kontrolu si vezmete, tím víc práce vám spadne na hlavu. Vlastní server vypadá na papíře levně, dokud nespočítáte hodiny, které u něj strávíte místo u byznysu.
Začněte co nejjednodušeji. Přejít z managed cloudu na vlastní řešení můžete vždycky, až vás k tomu donutí náklady nebo objem. Opačná cesta, kdy malá firma rovnou staví vlastní infrastrukturu, končí většinou tím, že software běží hůř a dráž než na pronajaté službě.
Nasazování bez dramatu: co je CI/CD lidsky
Špatný způsob, jak dostat novou verzi do provozu, vypadá takhle: někdo večer ručně nakopíruje soubory přes FTP, něco zapomene, web spadne a nikdo si přesně nepamatuje, co vlastně změnil. Tomu se chcete vyhnout.
CI/CD je jen automatizace téhle nudné a chybové práce. Ve dvou krocích:
- CI (průběžná integrace). Pokaždé, když programátor něco změní, počítač sám spustí testy. Když něco rozbije, dozvíte se to hned, ne až od naštvaného zákazníka.
- CD (průběžné nasazování). Když testy projdou, nová verze se nasadí sama, stejným postupem pokaždé. Žádné ruční kopírování, žádné „u mě to fungovalo“.
Hodnota není v tom, že je to módní. Je v tom, že nasazení přestane být událost, ze které máte strach, a stane se z něj rutina, kterou zvládnete i v úterý odpoledne. A když přesto něco selže, vrátíte se na předchozí verzi jedním krokem, místo abyste o půlnoci pátrali, co jste vlastně přepsali.
Záloha, kterou jste nikdy neobnovili, není záloha
Tohle si zapamatujte doslova, je to nejdražší lekce v celé branži. Spousta firem žije v přesvědčení, že zálohy mají, protože jim to kdysi někdo nastavil. Pak přijde den, kdy je potřebují, a zjistí, že se rok zálohovalo do prázdna, nebo že obnova trvá tři dny, které nemají.
- Automatizujte. Záloha, kterou musí někdo ručně spustit, se dřív nebo později neudělá. Nastavte ji tak, aby běžela sama a pravidelně.
- Mějte je jinde. Záloha na stejném serveru jako data je k ničemu ve chvíli, kdy lehne celý server. Patří na jiné místo, ideálně k jinému poskytovateli.
- A hlavně zkoušejte obnovu. Aspoň jednou za čas vezměte zálohu a reálně z ní obnovte data do testovacího prostředí. Teprve když to projde, víte, že záloha opravdu funguje.
Cílem není jen mít kopii dat. Cílem je vědět, za jak dlouho jste po havárii zpátky v provozu. To číslo si změřte, ne odhadujte.
Monitoring a logy: o problému chcete vědět dřív než zákazník
Nejhorší způsob, jak se dozvědět o výpadku, je telefonát od klienta, který už hodinu nemůže zaplatit. Monitoring je levná pojistka proti téhle situaci.
- Kontrola dostupnosti. Služba, která každou chvíli zkusí, jestli software odpovídá, a když ne, pošle vám SMS nebo e-mail. Existují i bezplatné varianty a nastavíte je za pár minut.
- Hlášení chyb. Když v aplikaci něco spadne, chcete o tom vědět vy, ne čekat, až to někdo nahlásí. Nástroje jako Sentry posbírají chyby a pošlou je s detailem, kde se staly.
- Logy. Záznam toho, co software dělal. Když se něco pokazí, logy jsou často jediný způsob, jak zjistit proč. Mít je je rozdíl mezi „opravíme to za hodinu“ a „hádáme celý den“.
Nemusíte sledovat sto grafů. Stačí vědět, že software běží, a být upozorněn, když přestane nebo začne chybovat.
Bezpečnostní základy bez paniky
Bezpečnost zní jako téma pro paranoiky a velké korporace. Pravda je, že drtivou většinu průšvihů způsobí zanedbání úplných základů, ne geniální hacker. Když pokryjete tyhle věci, jste před většinou problémů v klidu.
- Aktualizujte. Neaktualizovaný systém a knihovny jsou jako odemčené dveře. Velká část útoků míří na známé díry, které už dávno mají opravu, jen ji nikdo nenasadil.
- Silné přihlašování a dvoufaktor. Heslo samo nestačí, hlavně u administrace. Dvoufaktorové ověření (2FA) zastaví i případ, kdy někomu heslo unikne.
- Šifrování při přenosu i v klidu. HTTPS je dnes samozřejmost, bez něj ani nezačínejte. Citlivá data v databázi (hesla rozhodně) patří šifrovaná, ne čitelná.
- Princip nejmenších oprávnění. Každý člověk i každá část systému má mít přístup jen k tomu, co nutně potřebuje. Když pak něco selže, škoda se nerozlije po celém systému.
- GDPR a osobní údaje. Sbírejte jen data, která reálně potřebujete, vězte, kde leží, a umějte je na požádání smazat. Méně dat znamená menší riziko i menší starost.
Nemusíte být paranoidní. Musíte mít hotové základy a vědět, kdo je hlídá. To vás dostane dál než nákladné bezpečnostní audity nad systémem, na kterém běží neaktualizovaný software z předloňska.
V poslední lekci se podíváme na to, co tohle všechno stojí dlouhodobě, jak plánovat údržbu a kdy se vyplatí software dál rozvíjet, místo aby jen tak doběhl.