Mi az infrastruktúra mint kód (IaC)?

A kódként szolgáló infrastruktúra (IaC) DevOps-módszertant és verziószámozást használ leíró modellel az infrastruktúra, például hálózatok, virtuális gépek, terheléselosztók és kapcsolattopológiák definiálásához és üzembe helyezéséhez. Ahogyan mindig ugyanaz a forráskód hozza létre ugyanazt a bináris fájlt, az IaC-modell minden üzembe helyezéskor ugyanazt a környezetet hozza létre.

Az infrastruktúra mint kód ábrája, amely meghatározza a környezetet egy verziószámozott fájlban.

Az IaC kulcsfontosságú DevOps-gyakorlat, és a folyamatos teljesítés egyik összetevője. Az IaC használatával a DevOps-csapatok egységes gyakorlatokkal és eszközökkel dolgozhatnak együtt az alkalmazások és azok támogató infrastruktúrájának gyors és megbízható, nagy léptékű biztosításához.

A konzisztencia kényszerítéséhez kerülje a manuális konfigurálást

Az IaC a kiadási folyamatok környezetelsodásának problémáját oldotta meg. IaC nélkül a csapatoknak egyenként kell fenntartaniuk az üzembehelyezési környezet beállításait. Idővel minden környezet "hópehely" lesz, egy egyedi konfiguráció, amely nem reprodukálható automatikusan. A környezetek közötti inkonzisztencia üzembehelyezési problémákat okozhat. Az infrastruktúra felügyelete és karbantartása olyan manuális folyamatokat foglal magában, amelyek hibalehetőséget jelentenek és nehezen követhetők.

Az IaC elkerüli a manuális konfigurálást és biztosítja a konzisztenciát azáltal, hogy a kívánt környezeti állapotokat jól dokumentált kóddal képviseli, például JSON formátumban. Az IaC-vel rendelkező infrastruktúra-telepítések megismételhetők, és megakadályozzák a konfigurációs eltérés vagy a hiányzó függőségek által okozott futásidejű problémákat. A kiadási folyamatok végrehajtják a környezeti leírásokat és a verziókonfigurációs modelleket a célkörnyezetek konfigurálásához. A módosítások elvégzéséhez a csapat a forrást szerkeszti, nem a célt.

Az idempotencia, az, hogy egy adott művelet mindig ugyanazt az eredményt hozza létre, fontos IaC-elv. Az üzembe helyezési parancsok mindig ugyanabba a konfigurációba helyezik a célkörnyezetet, függetlenül a környezet kezdő állapotától. Az idempotencia a meglévő cél automatikus konfigurálásával vagy a meglévő cél elvetésével és egy új környezet újratelepítésével érhető el.

Hasznos eszközök

Stabil tesztkörnyezetek gyors, nagy léptékű megvalósítása

Az IaC segít a DevOps-csapatoknak az alkalmazások éles környezetekben való tesztelésében a fejlesztési ciklus korai szakaszában. A Teams több tesztkörnyezetet is képes megbízhatóan kiépítheti igény szerint. A felhő dinamikusan építi ki és bontja le a környezeteket az IaC-definíciók alapján. Maga az infrastruktúrakód érvényesíthető és tesztelhető a gyakori üzembehelyezési problémák megelőzése érdekében.

Deklaratív definíciós fájlok használata

Az IaC-nek deklaratív definíciós fájlokat kell használnia, ha lehetséges. A definíciós fájlok a környezet által igényelt összetevőket és konfigurációkat írják le, de nem feltétlenül azt, hogyan lehet ezt a konfigurációt elérni. Előfordulhat például, hogy a fájl meghatároz egy szükséges kiszolgálóverziót és -konfigurációt, de nem adja meg a kiszolgáló telepítési és konfigurációs folyamatát. Ez az absztrakció nagyobb rugalmasságot tesz lehetővé az infrastruktúra-szolgáltató által biztosított optimalizált technikák használatához. A deklaratív definíciók segítenek csökkenteni az imperatív kód, például az üzembe helyezési szkriptek fenntartásának technikai adósságát is, amelyek idővel felmerülhetnek.

A deklaratív IaC-hez nincs szabványos szintaxis. Az IaC leírásának szintaxisa általában a célplatform követelményeitől függ. A különböző platformok támogatják az olyan fájlformátumokat, mint a YAML, a JSON és az XML.

IaC üzembe helyezése az Azure-ban

Az Azure natív támogatást nyújt az IaC-hez az Azure Resource Manager-modellen keresztül. A Teams deklaratív ARM-sablonokat definiálhat JSON-szintaxis vagy Bicep használatával a megoldások üzembe helyezéséhez szükséges infrastruktúra meghatározásához. Olyan külső megoldások is elérhetők, mint például a Terraform adott Azure-szolgáltatókon keresztül.