DevOps & CI/CDpokročilý

Čo je Infrastructure as Code (IaC)?

Infrastructure as Code (IaC) je prax správy a poskytovania infraštruktúry prostredníctvom strojovo čitateľných konfiguračných súborov namiesto manuálnej konfigurácie. Umožňuje verziovanie, opakovateľnosť a automatizáciu infraštruktúry.

Definícia Infrastructure as

Čo je Infrastructure as Code

Infrastructure as Code (IaC, po slovensky infraštruktúra ako kód) je DevOps prax, pri ktorej sa IT infraštruktúra definuje a spravuje pomocou kódu namiesto manuálnych procesov. Koncept sa rozšíril s nástupom cloud computingu a potrebou rýchlo vytvárať a rušiť stovky serverov.

Dva prístupy k IaC

  • Deklaratívny — definujete požadovaný stav („chcem 3 servery s Ubuntu") a nástroj zabezpečí dosiahnutie tohto stavu. Príklady: Terraform, CloudFormation, Pulumi
  • Imperatívny — definujete kroky, ktoré sa majú vykonať („vytvor server, nainštaluj Nginx, otvor port 80"). Príklady: Ansible, skripty v Bash/Python

Výhody IaC

  • Verziovanie — infraštruktúra je v Gite, vidíte kto, čo a kedy zmenil
  • Opakovateľnosť — identické prostredia pre dev, staging a produkciu jedným príkazom
  • Rýchlosť — vytvorenie kompletnej infraštruktúry za minúty namiesto dní
  • Dokumentácia — kód je zároveň živá dokumentácia infraštruktúry
  • Code review — zmeny v infraštruktúre prechádzajú rovnakým review procesom ako zmeny v kóde

IaC je dnes považovaná za základnú prax v DevOps a je nevyhnutná pre efektívnu prácu s cloudovými platformami.

Praktický príklad

Príklad: Potrebujete vytvoriť identické prostredia pre vývojárov, QA tím a produkciu.

Bez IaC: Admin manuálne konfiguruje každý server — po týždni má 3 „identické" prostredia, kde sa však líšia verzie softvéru a nastavenia. Bugy na produkcii sa nedajú reprodukovať na dev prostredí.

S IaC (Terraform + Ansible): Jedna sada konfiguračných súborov definuje celú infraštruktúru. Príkazom terraform apply -var env=staging vytvoríte presne rovnaké prostredie ako je produkcia.

Často kladené otázky

Čo je Infrastructure as Code?

Infrastructure as Code (IaC) je prax, pri ktorej sa IT infraštruktúra (servery, siete, databázy) definuje v textových konfiguračných súboroch namiesto manuálnej konfigurácie. Umožňuje verziovanie a automatizáciu infraštruktúry.

Aké nástroje sa používajú na IaC?

Najpoužívanejšie nástroje sú Terraform (multi-cloud), AWS CloudFormation (AWS), Ansible (konfigurácia serverov), Pulumi (IaC v programovacích jazykoch) a Azure Bicep (Azure).

Prečo je IaC dôležité?

IaC eliminuje manuálne chyby, zabezpečuje opakovateľnosť prostredí, umožňuje verziovanie infraštruktúry v Gite a výrazne zrýchľuje vytváranie a zmeny infraštruktúry.

Aký je rozdiel medzi deklaratívnym a imperatívnym IaC?

Deklaratívny prístup (Terraform) definuje požadovaný stav — „čo chcem". Imperatívny prístup (Ansible) definuje kroky — „ako to dosiahnuť". Deklaratívny je jednoduchší na údržbu, imperatívny je flexibilnejší.

Súvisiace pojmy

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.