Röviden: Deklaratív HCL vagy valódi programozási nyelv? A két IaC-megközelítés máshogy gondolkodik. Nézzük, melyik csapatnak melyik való.
Ha 2024-ben felhős infrastruktúrát építesz, előbb-utóbb szembejön a kérdés: infrastruktúra mint kód (IaC), de milyen eszközzel? A két nagy tábor a deklaratív Terraform (HCL nyelven) és a valódi programozási nyelvet használó CDK (Cloud Development Kit). Nem az a kérdés, melyik a „jobb” abszolút értelemben, hanem hogy a te csapatodnak, a te helyzetedben melyik illik jobban.
A deklaratív út: Terraform
A Terraform HCL nyelve deklaratív: leírod, milyen legyen a végállapot, és az eszköz kiszámolja, hogyan jut oda. Nem programozol, hanem konfigurálsz. Az előnye az egyszerűség és a kiszámíthatóság: a fájlt elolvasva látod, mi lesz. A hátránya, hogy az összetettebb logika (ciklusok, feltételek) körülményesebb, és a nyelv kevésbé kifejező, mint egy általános célú programozási nyelv.
A programozott út: CDK
A CDK-val valódi programozási nyelven (TypeScript, Python stb.) írod le az infrastruktúrát, ami aztán a felhő natív sablonjaira fordul. Az előnye a nyelv teljes ereje: absztrakciók, újrafelhasználható komponensek, egységtesztek, ismerős eszközök. A hátránya a rejtettebb működés — a generált eredményt nem mindig látod közvetlenül —, és hogy a programozói szabadság túlbonyolított infrastruktúrához is vezethet.
A döntési szempontok
- Csapatkultúra: operátori vagy fejlesztői beállítottság?
- Komplexitás: mennyi dinamikus logika kell (ciklus, feltétel, absztrakció)?
- Több felhő: a Terraform semlegesebb több szolgáltatóhoz.
- Meglévő tudás: mi az, amit a csapat már ismer és fenntart?
A közös alapelvek fontosabbak, mint az eszköz
Bármelyiket választod, a lényeg ugyanaz: az infrastruktúra verziókövetett kód legyen, code review-n menjen át, és automatizált folyamat alkalmazza, ne kézi kattintgatás. A kézzel, konzolon összekattintott infrastruktúra a legnagyobb kockázat — nem reprodukálható, nem auditálható, nem visszaállítható. Az eszköz másodlagos e mellett az elv mellett.
Mit jelent ez neked?
Ne abszolút „melyik a jobb” alapon dönts, hanem a csapatodhoz igazítva. Operátori kultúrának és több felhőhöz a deklaratív Terraform gyakran természetesebb; erős fejlesztői kultúrának, sok dinamikus logikával a CDK a nyelv teljes erejét adja. A legfontosabb azonban eszköztől független: az infrastruktúra legyen verziókövetett, review-zott, automatizáltan alkalmazott kód. A kézi kattintgatás az igazi ellenség, nem a másik IaC-eszköz.