## TL;DR Dříve jsme infrastrukturu zapisovali do kódu (Everything as Code) kvůli stabilitě a zálohování. Dnes se ukazuje nový benefit: **poskytuje to AI nástrojům kontext**, který jim chybí v grafických rozhraních. Díky tomu vám AI může pomoci s komplexní správou systému, ne jen s psaním funkcí. Má to ale háček – s velkou silou generování přichází nutnost **mnohem přísnější kontroly**. --- *"Pokud to není v kódu, neexistuje to."* Přechod na **Everything as Code (EaaC)** a **GitOps** byl donedávna brán "jen" jako best practice pro stabilitu. Dělali jsme to proto, abychom se nezbláznili při správě serverů, abychom měli auditovatelné změny a abychom v případě havárie dokázali infrastrukturu obnovit během minut, ne dní. Dnes se ale ukazuje nový, naprosto zásadní benefit, který jsme na začátku nečekali. Pokud máte svou infrastrukturu a konfiguraci zapsanou jako kód, stává se čitelnou nejen pro váš tým, ale i pro **umělou inteligenci**. A právě tady začíná ta pravá revoluce. ### Co je vlastně "Everything as Code"? Než se pustíme do AI, pojďme si srovnat pojmy. Možná znáte *Infrastructure as Code (IaC)*, ale *Everything as Code* jde ještě dál. Je to filozofie, kdy v repozitáři (Gitu) leží definice úplně všeho: * **Aplikace:** Zdrojový kód (TypeScript, Python...). * **Infrastruktura:** Definice kontejnerů (Docker Compose), serverů nebo cloudu. * **Konfigurace:** Proměnné prostředí, nastavení sítě, routování (např. štítky pro Traefik). * **Dokumentace:** README soubory, diagramy v Mermaid.js. #### GitOps: Git jako jediný zdroj pravdy Princip GitOps říká, že **Git je jediný zdroj pravdy**. Neexistuje, že by se někdo přihlásil přes SSH na server a "rychle něco upravil" v běžícím kontejneru. Změna se provede v kódu, pushne se do Gitu a automatizace ji propíše do reality. #### Výhody a nevýhody (Ruku na srdce) Proč to všichni nedělají? Protože to zpočátku bolí. * ❌ **Vstupní bariéra:** Kliknout v grafickém rozhraní (třeba v Portaineru, o kterém jsem psal [[2025-02-03 Portainer (Jak jednoduše spravovat Docker kontejnery přes webové rozhraní)|Portainer (Jak jednoduše spravovat Docker kontejnery přes webové rozhraní)]]) je zdánlivě rychlejší než psát YAML soubor. Musíte se naučit syntaxi a nástroje. * ✅ **Reprodukovatelnost:** Nové vývojové prostředí pro kolegu? Jeden příkaz. * ✅ **Transparentnost:** Přesně vidíte, kdo, kdy a proč změnil nastavení paměti pro databázi. Doteď to byla otázka disciplíny. Teď je to otázka konkurenční výhody. ### AI nástroje nové generace: Konec slepých skvrn Tradiční AI asistenti (jako ChatGPT v prohlížeči) mají jeden zásadní problém: **Nevidí kontext.** Když poprosíte AI o úpravu backendu, neví, na jakém portu běží vaše databáze, jestli používáte Nginx nebo Traefik, nebo jaké máte nastavené limity paměti. Vy jí to musíte složitě kopírovat nebo vysvětlovat. Pro AI je vaše infrastruktura "černá skříňka", do které nevidí, protože k ní nemá přístup. Tady vstupují na scénu nástroje jako **Claude Code** nebo **Gemini CLI**. Tyto nástroje neběží izolovaně na webu. Běží ve vašem terminálu nebo editoru a mají přístup k celému vašemu projektu. A pokud je váš projekt postavený na principech *Everything as Code*, dějí se kouzla. #### Síla kontextu: Když AI vidí "Velký obraz" Představte si, že řešíte chybu v aplikaci. **Scénář 1: Klikací infrastruktura (GUI)** Máte kód v editoru, ale databázi a sítě jste naklikali ručně v cloudu nebo v Portaineru. * **AI:** *"Zkontrolujte prosím, zda máte správně nastavené porty a povolené spojení."* * **Vy:** Musíte otevřít pět oken v prohlížeči, hledat konfiguraci a pak ji AI popsat. **Scénář 2: Everything as Code** Máte v repozitáři vedle `server.ts` také soubor `docker-compose.yml` s definicí služeb. * **Vy (v terminálu):** `claude "Aplikace se nemůže připojit k DB, oprav to."` * **AI (Claude Code):** *"Vidím v `docker-compose.yml`, že služba Postgres je dostupná pod hostname `db` na portu `5432`, ale v `.env` souboru máš nastaveno `localhost`. Upravuji `.env` a zároveň přidávám healthcheck do Docker Compose definice, abychom předešli race conditions při startu."* Vidíte ten rozdíl? AI v tomto případě neháda. Ona **čte**. Díky tomu, že je infrastruktura popsaná textem (kódem), AI chápe topologii vašeho systému. Vidí závislosti, které by člověk mohl přehlédnout. ### Druhá strana mince: Past rychlosti Tady ale musím zvednout varovný prst. S nástupem těchto nástrojů se objevuje nové, zákeřné riziko. Je nesmírně lákavé nechat AI vygenerovat stovky řádků konfigurace, Terraform definic nebo Kubernetes manifestů během pár sekund. Máte pocit, že je práce hotová. "Hele, ono to vygenerovalo celé prostředí!" Jenže **vygenerovat kód** a **rozumět kódu** jsou dvě odlišné věci. Pokud nemáte nastavené **robustní kontrolní mechanismy** (Code Review, automatizované testy, linting), stane se vám, že ušetříte hodinu psaním konfigurace, ale strávíte další týden laděním záhadných chyb, které AI zanesla hluboko do systému. AI v terminálu je skvělý sluha, ale pokud jí slepě věříte u kritické infrastruktury, je to zlý pán. Právě u přístupu *Everything as Code* je nutné, abyste vy (jako člověk) stále rozuměli tomu, co se do repozitáře dostává. ### Proč je to budoucnost (nejen pro vývojáře) Tento posun mění pravidla hry. AI nástroje, které mají plný kontext infrastruktury, přestávají být jen "našeptávači kódu". Stávají se z nich **pokročilí asistenti DevOps**. Díky **Everything as Code** dokáží: 1. **Navrhovat změny v architektuře:** *"Přidáváš Redis cache do kódu, chceš abych rovnou přidal službu Redis do `docker-compose.yml` a nastavil síťování?"* 2. **Psát dokumentaci:** Protože vidí, jak je systém skutečně nakonfigurován, dokáží vygenerovat `README.md`, které odpovídá realitě. 3. **Optimalizovat:** Dokáží analyzovat vaše Terraform nebo K8s definice a navrhnout bezpečnější nastavení. ### Závěr: Investice do pořádku se vrací Dříve jsme dokumentovali a automatizovali pro lidi – pro naše budoucí já nebo pro nové kolegy. Dnes to děláme i pro naše digitální parťáky. Přechod na **GitOps** a **Everything as Code** je tou nejlepší přípravou na AI éru, kterou můžete udělat. A nejlepší na tom je, že i když AI z rovnice vyškrtnete, pořád vám zůstane robustní, bezpečná a skvěle spravovatelná infrastruktura. **Jak jste na tom vy?** Klikáte konfigurace nebo zaznamenáváte vše v kódu, případně se vám osvědčil hybridní přístup? Pokud cítíte, že je čas na změnu, ale nevíte kudy do toho, ozvěte se. Jako váš technologický partner vám pomůžu nastavit procesy tak, aby sloužily vám – a abyste nad nimi neztratili kontrolu ani v éře AI.