5 věcí, které musíte zvládnout, než začnete s DevOps

Z Mazovia


DevOps není nástroj ani konkrétní pozice. Je to způsob práce, kdy vývoj a provoz přestávají být dva oddělené světy a začnou sdílet odpovědnost za to, co běží v produkci. Pokud to zní příliš obecně, je to proto, že pod tímto slovem se skrývá hlavně kultura: kratší zpětná vazba, automatizace opakujících se činností a ochota měřit vlastní práci. Nezačíná se nákupem licence, ale změnou návyků.

SQL injection nevzniká tím, že útočník zná databázi. Vzniká tím, že aplikace slepí vstup od uživatele s SQL příkazem do jednoho řetězce. Když do pole pro přihlašovací jméno někdo napíše znak apostrofu a aplikace ho pošle přímo do databáze, dotaz se rozpadne a databáze může vrátit data, která neměla spatřit světlo světa. Nejde přitom o exotickou chybu. Vzniká v běžném kódu, kde se místo parametru použije konkatenace řetězců.

Než začneš psát kód, přečti si dokumentaci. Hledej tři věci: jaká je základní adresa, jaké jsou povinné parametry a jak vypadá odpověď. Většina API dnes vrací JSON, ale najdou se i taková, co posílají XML. Zjisti, jestli potřebuješ klíč. Ten se obvykle posílá v hlavičce požadavku, ne v adrese. Klíč nikdy nedávej do veřejného repozitáře, ani do kódu, který někam nahráváš. Patří do proměnné prostředí.

Druhý krok je prostředí. Pokud se vývoj, test a produkce liší operačním systémem, verzemi knihoven nebo sítí, každá chyba se bude hledat dvakrát. Kontejnery nebo virtuální stroje popsané kódem tenhle rozdíl odstraní, ale jen když se opravdu používají stejné obrazy. Častá chyba je, že tým si postaví vlastní neoficiální obraz „jen pro testování", a tím se rozdíl vrátí zpátky. Držte se jednoho základu a změny v něm dělejte přes revizi.

Mezi časté chyby patří příliš široké spouštěče. Workflow, který běží na každý push do všech větví, zbytečně spotřebovává prostředky a zpomaluje zpětnou vazbu. Omezujte spouštění na konkrétní větve a používejte podmínky, aby se drahé úlohy nespouštěly tam, kde nemají smysl. Další chybou je ukládání tajemství přímo do YAML. Vždy používejte šifrované proměnné a nikdy je nevypisujte do logu. Poslední častá chyba je ignorování cache. Správně nastavená cache závislostí zkrátí běh z desítek minut na jednotky a je to jedna z největších úspor, které můžete udělat.
Až budeš mít jedno volání funkční, zkus spojit dvě různé služby. Například vezmi město z jednoho API a jeho souřadnice použij pro dotaz na počasí. Tím si osvojíš předávání dat mezi požadavky. Postupně přidej ukládání odpovědí do souboru, aby ses vyhnul opakovanému volání. A hlavně: čti chybové zprávy. Většina problémů je popsána přímo v odpovědi.

Začni tím, že pro každý endpoint určíš jednu osobu, která za jeho dokumentaci odpovídá. Nestačí napsat „někdo to doplní". Konkrétní jméno u endpointu funguje lépe než jakýkoli nástroj. U každé metody uvedeš, jaký typ požadavku přijímá, jaká pole jsou povinná a co se stane, když chybí. Vyhni se frázím typu „data podle potřeby". Buď vypíšeš konkrétní strukturu, nebo odkážeš na sdílené schéma, které se udržuje na jednom místě.

Třetí věc je měření. Bez čísel se žádné zlepšení neprokáže a nikdo neobhájí další práci. Sledujte dobu od commitu k nasazení, počet selhaných nasazení a dobu, za kterou se služba po chybě vrátí do provozu. Tyto údaje se dají získat i ručně z logů a záznamů o změnách. Nejdřív stačí týdenní přehled, později se dá napojit na pipeline. Důležité je, aby čísla nebyla trest, ale podklad pro rozhodnutí, kde je úzké hrdlo.

Kdy se vyplatí vlastní runner Vlastní runner přichází na řadu ve chvíli, kdy potřebujete specifický hardware, přístup do interní sítě, nebo když opakovaně narážíte na časové limity. Runner si zaregistrujete v nastavení repozitáře nebo organizace a spustíte jako službu na svém stroji. Výhodou je plná kontrola nad prostředím: nástroje nainstalujete jednou a používají se opakovaně. Nevýhodou je údržba. Musíte řešit aktualizace, bezpečnost, škálování a to, že runner je trvale dostupný. Pokud runner spadne, pipeline čeká, dokud ho znovu nenastartujete.

Jak vypadá jedno volání v praxi Otevři terminál a použij nástroj curl. Zápis vypadá takto: curl -X GET "adresa" -H "Authorization: Bearer TVUJ_KLIC". Pokud nechceš řešit hlavičky, začni s API, které klíč nevyžaduje. Odpověď si ulož do souboru a otevři v editoru. Uvidíš strukturu dat. Všímej si, jestli jsou čísla skutečně čísla, nebo řetězce v uvozovkách. To je častý zdroj chyb při dalším zpracování.

První konkrétní rekonstrukce koupelny krok za krokem je verze. Všechno, co se dá popsat textem – konfigurace serveru, definice infrastruktury, skripty pro nasazení – patří do verzovacího systému. Ne jako dokumentace bokem, ale jako zdroj, ze kterého se skutečně staví. Když někdo ručně mění nastavení přímo na stroji, rozdíl mezi tím, co je v repozitáři a co běží, se za pár týdnů nedá dohnat. Tomuto stavu se říká konfigurační drift a je nejčastější důvod, proč první pokusy o automatizaci selžou.

In case you beloved this post as well as you would like to obtain guidance about https://crabcodex.com/index.php/Když_commit_zpráva_šetří_čas_při_hledání_viníKa_změny generously stop by our own web page.