A DevOps eszközök megértése: Ansible és Terraform

Ansible és Terraform – hallottál ezekről a DevOps eszközökről? Ez a cikk róluk és a különbségeikről szól.

Az Infrastructure as Code (IaC) a DevOps tartomány alapvető része, és egy olyan alapvető képesség, amellyel a DevOps mérnökeinek rendelkezniük kell. Az IaC az IT-infrastruktúra létrehozására és kezelésére szolgál olyan konfigurációs kód használatával, amely géppel olvasható definíciós fájlok. Ezzel a szoftverfejlesztési megközelítéssel a műveletek során automatizálhatja az informatikai infrastruktúrát programozási szkriptek segítségével.

Amikor egy DevOps mérnök a DevOps kód használatával történő automatizáláson gondolkodik, mindig két DevOps eszköz kerül kiemelésre, a Terraform és az Ansible. Mindkettő a legjobb értékelésű és széles körben használt eszköz a DevOps tartományban. De sok embernek még nem ismeri ezeket az eszközöket, és nem ismeri a köztük lévő fő különbségeket. Ebben a cikkben a Terraformot, az Ansible-t és a legfontosabb különbségeiket tárgyalom.

Mi az a Terraform?

Terraform egy nyílt forráskódú infrastruktúra kódszoftverként, amelyet a HashiCorp hozott létre. A Terraform nagyon könnyen használható deklaratív nyelvezetével komplett informatikai infrastruktúrát hangszerelhet. A Terraformban deklarálnia és konfigurálnia kell az infrastruktúrához szükséges erőforrásokat. Ezután gondoskodik az összes szükséges függőségről, és felépíti az infrastruktúrát.

A Terraform alig néhány éve, 2014-ben indult, de ennek az eszköznek az elfogadási aránya fantasztikus volt. Kiváló szolgáltatásokat kínál, amelyek megkönnyítik az IT infra teljes összehangolását, mivel a teljes infrastruktúra konfigurálása egy nagy szervezetben bonyolult. Ezt az eszközt az összes népszerű felhőszolgáltatóval is integrálhatja, mint például az AWS, a GCP stb.

A legtöbb informatikai szervezet különböző munkakörnyezetekkel rendelkezik a különböző csapatok számára, így a fejlesztési, szakaszolási vagy minőségbiztosítási és termelési csapatoknak külön környezetük lesz. Egy idő után már nem könnyű kezelni a termelési környezetet. Az irányítás megkönnyítése érdekében a szervezetek Terraformot használnak az éles környezetben található összes kódolására. A terraform használatával nagyon gyorsan pörgetheti a fejlesztői és staging környezeteket, ami nagyon hasonló lesz az éles környezethez. Ez segít az alkalmazás fejlesztésében és tesztelésében az éleshez hasonló platformon.

  Hogyan lehet leállítani az AirPods automatikus váltást az iPhone és iPad között

Sok nagy szervezet, mint például a Starbucks, a Slack, az Uber stb., nagy időre kihasználja a terraform funkciókat.

Íme a Terraform néhány előnye:

  • Egy egyszerű grafikus felhasználói felület segítségével kezeli a szolgáltatásokat.
  • Leírja a GCP, AWS, Azure és mások infrastruktúráját egy egyszerű (deklaratív) nyelv használatával.
  • Támogatja a szerepkör alapú hozzáférés-vezérlést (RBAC) a biztonság érdekében.
  • Az API-k használatával egyszerűen kiépíthető az OpenStack, Azure, AWS és GCP szolgáltatásokkal
  • Mester nélküli architektúrát követ, így nincs fő csomópont az összes konfigurációs frissítés nyomon követésére.
  • A szervezeten belüli csapatok könnyedén együttműködhetnek az infrastruktúrán a terraform nyilvántartás segítségével.
  • A folyamatos integrációs platformokkal, mint például a GitLab, Jenkins, Travis, a DevOps-folyamatok telepítéséhez való integráció egyszerű.

Mi az Ansible?

Lehetséges egy konfigurációkezelő eszköz a DevOps tartományban, amely az összes informatikai feladat automatizálására szolgál. Az Ansible egy nyílt forráskódú eszköz is, amely deklaratív és eljárási nyelveket is használ a konfigurációkezeléshez. Ez az eszköz kiemelkedő támogatást nyújt az összes népszerű felhőszolgáltatótól, és automatizálja az alkalmazásokat, hálózatokat, infrastruktúrát, biztonságot, konténereket stb. Jelentősen csökkenti a DevOps folyamatok bonyolultságát, ezért sok DevOps mérnök inkább ezt az eszközt használja.

Az Ansible egyszerűen automatizálja a legbonyolultabb infrastruktúrát is egyszerű (ember által olvasható) YAML konfigurációs fájlok használatával. YAML-ben írt kódfájlt használ a konfigurációkezelés végrehajtásához; ezt a kódfájlt Ansible Playbooknak hívják. Az Ansible ügynök nélküli, és rendelkezik egy mesterrel, amely leküldi a távoli kiszolgálókon lévő alkalmazások kezeléséhez és frissítéséhez szükséges összes konfigurációt.

Az Ansible-ben SSH-t kell használnia az IT-infrastruktúra csomópontjaihoz való csatlakozáshoz. Miután a csomóponttal való kapcsolat sikeresen létrejött, az Ansible a legfrissebb konfigurációkat továbbítja az Ansible modulok segítségével az alkalmazás telepítéséhez, frissítéséhez vagy eltávolításához. Lehetősége van ad-hoc parancsok futtatására is az Ansible-ben kis feladatok gyors végrehajtásához.

  Az MMGuardian letiltása a szülők tudta nélkül

Íme az Ansible néhány előnye és jellemzője:

  • Mivel az Ansible ügynök nélküli, nem kell ügynököket telepítenie és futtatnia a csomópontokon a feladatok végrehajtásához.
  • Mivel az Ansible Pythonra épült, Pythonban rengeteg könyvtárat kínálhat, és ezért nagyon fejlesztőbarát.
  • Biztonságos hitelesítést biztosít SSH használatával.
  • Az Ansible Tower vállalati szintű megjelenítési funkciókat kínál.
  • A mester a legfrissebb konfigurációkat küldi el a távoli kiszolgálókon az infrastruktúra módosításához, így támogatja a push-alapú modellt.
  • Ember által olvasható YAML fájlokat használ a konfigurációkezeléshez, így nincs szükség további kódolási készségekre.

Terraform vs. Ansible: különbségek

Hangszerelés vs. konfigurációkezelés

Az Ansible egy konfigurációkezelő eszköz, a Terraform pedig egy hangszerelési eszköz. Ez a legalapvetőbb különbség a Terraform és az Ansible között. Bár egyes funkciók közösek ezen eszközök között, mégis különböznek egymástól.

Az Ansible az IT-infrastruktúra konfigurációjának hozzáadására, frissítésére, törlésére és kezelésére szolgál, míg a Terraform az infrastruktúra-összetevők deklarálására és több felhőszolgáltató között történő összehangolására szolgál.

Eljárási vs deklaratív

A Terraform deklaratív konfigurációs nyelvet használ az IT-infrastruktúra erőforrásainak deklarálására. Az Ansible eljárási és deklaratív nyelveket egyaránt használ a konfigurációkezeléshez. Az Ansible-ben az eljárási módot használják ad-hoc parancsok futtatására és a kívánt infrastruktúra-konfiguráció elérésére. A lehetséges modulok deklaratív megközelítést alkalmaznak.

Változatlan vs. megváltoztathatatlan infrastruktúra

Az Ansible használatával változtatható infrastruktúrát, a Terraform segítségével pedig megváltoztathatatlan infrastruktúrát hozhat létre. Az Ansible ugyanazon a szerveren kezeli és konfigurálja az infrastruktúra szoftverét. Ha több konfigurációs frissítést hajt végre, az éles környezet bonyolulttá válik, és számos olyan hibát okoz, amelyeket nehéz azonosítani és kijavítani.

A Terraform elsősorban friss Docker-lemezképet használ a kiszolgálón történő bármely telepítéshez. A Terraform új dokkolóképet hoz létre az infrastruktúra bármely szoftverének frissítéséhez, telepíti ezt a lemezképet az összes kiszolgálóra, és eltávolítja a régi konfigurációs docker lemezképet. Így a környezet még többszöri konfigurációfrissítés után is stabil marad.

  Hogyan távolítsunk el egy családtagot a PS4-en

Mester vs. Mestertelen

Az Ansible egy főgép-architektúrával rendelkezik, amely a teljes infrastruktúra állapot tárolásáért és az új konfigurációs frissítések távoli kiszolgálókon történő elküldéséért felelős. Ezért hívják az ansible-ben push-alapú telepítési modellnek.

A Terraformban nincs külön mesterrendszer. Ha azonban olyan felhőszolgáltatókkal működik együtt, mint a GCP, az AWS az API-kon keresztül, akkor ebben az esetben az API-kiszolgáló a fő gép.

Közösség

Ehhez képest az Ansible közössége erősebb, mint a Terraform. Például az Ansible 45 elágazást, 49,7 000 csillagot, 51 836 commitot és 21 000 fork-ot tartalmaz a GitHubon, míg a Terraformnak 183 ága, 28,7 000 csillaga, 28 778 commitja és 6,9 000 forkja van. Jelenleg mindkét eszköz közössége gyorsan növekszik.

Melyiket válasszam, Ansible vagy Terraform?

Azt mondanám, hogy ez nem egy alma-alma összehasonlítás. A kérdésre adott válasz az üzleti követelményektől függ. Használhatja az Ansible-t a konfigurációkezeléshez és a Terraformot az IT-infrastruktúra összehangolásához. Ha szervezete felhőszolgáltatókkal dolgozik, a Terraformmal való együttműködés jobb megoldás lenne. Mindkét eszköznek megvannak a korlátai és előnyei, és mindkettő népszerű eszköz a DevOps tartományban. Tehát a megoldani kívánt problémafelvetéstől függően bármelyik eszközt választhatja.

Itt van egy összehasonlító táblázat, amely összefoglalja az Ansible és a Terraform közötti különbségeket.

Kritériumok
Lehetséges
Terraform
-án alakult
2012
2014
Által kifejlesztett
Ansible Inc. / Red Hat Inc.
HashiCorp
Beírva
Piton
Megy
típus
Konfigurációkezelő eszköz
Hangszerelési eszköz
Nyelv
Procedurális és deklaratív nyelveket használ
Kijelentő nyelvet használ
Infrastruktúra
Támogatja a változó infrastruktúrát
Támogatja a változatlan infrastruktúrát
Életciklus menedzsment
Nem
Igen
Csomagolás és sablonozás
Teljesen támogatott
Részleges
Virtuálisgép-kiépítés és hálózatépítés
Részleges
Teljesen támogatott

Közösség és támogatás

49 ezer+ csillag
28K+ csillag

Következtetés 👩‍💻

Ez minden az Ansible-ről, a Terraformról és a köztük lévő különbségekről szólt. Mindkét DevOps eszközt gyakran használják éles környezetben, és gyakran jelen vannak a legtöbb nagyobb szervezetben. Mire vársz még? Menjen előre, és válassza ki azt az eszközt, amely jobban megfelel szervezete üzleti követelményeinek. Kezdheti azzal, hogy megtanulja bármelyik eszközt, de mindkettő ismerete előnyt jelent a sokszínű iparágban.

Talán tetszene:

A legjobb csomagtárhely-tárhely DevOps-projektjeihez.