Ugrás a fő tartalomhoz

Infrastructure as Code ipari automatizálási környezetekhez

A Software Defined Automation (SDA) bevezet egy Terraform providert, amely lehetővé teszi az ügyfelek számára, hogy az SDA platform erőforrásait Infrastructure as Code (IaC) módszerrel definiálják, telepítsék és kezeljék. Ez a funkció jelenleg zárt előzetes (private preview) formájában érhető el. Amennyiben szervezete szeretne részt venni benne, kérjük, vegye fel a kapcsolatot az SDA-val.


Miért fejlesztettük ki​

Amikor új bérlő (tenant) jön létre az SDA-ban, az ügyfeleknek jellemzően számos erőforrást kell konfigurálniuk – projekteket, eszközöket, átjárókat, széfeket (vault), dokumentumokat, erőforráscsoportokat és sok mást. Jelenleg ez csak két módon lehetséges:

1. Manuális beállítás a webkonzolon​

  • Időigényes és ismétlődő
  • Hajlamos konfigurációs hibákra
  • Nem egyszerűen megismételhető vagy auditálható
  • Nincs verziókövetés vagy változástörténet

2. Egyedi automatizálás az SDA API-k használatával​

A REST vagy GraphQL API-k használata jobban skálázható, mint a manuális konfiguráció, de saját kihívásokkal jár:

  • Jelentős fejlesztési ráfordítást és az API-jaink ismeretét igényli
  • A szkriptekben felhalmozódik a sablonkód (boilerplate)
  • Az ügyfeleknek maguknak kell kezelniük az idempotenciát, az újrapróbálkozásokat és a részleges hibákból való helyreállítást
  • Egyedi állapotkezelést igényel
  • Nehezebb egységesíteni a telephelyek, csapatok és beszállítók között

Összességében ezek a kihívások a szükségesnél lassabbá teszik az új telephelyek és bérlők bevezetését, és felesleges üzemeltetési kockázatot jelentenek.


Amit fejlesztünk​

Ezek megoldására az SDA egy saját fejlesztésű Terraform providert készít, amely a HashiCorp iparági szabvány IaC keretrendszerét használja. A Terraform lehetővé teszi, hogy a felhasználók egyszerű, deklaratív nyelven (HCL) írják le a rendszer kívánt állapotát, a Terraform pedig kezeli a következőket:

  • Telepítés
  • Frissítések
  • Visszaállítások (rollback)
  • Eltéréskezelés (drift detection)
  • Törlés
  • Állapotkezelés

Ugyanezt a technológiát használja az SDA belsőleg is a saját AWS felhőinfrastruktúrájának kezelésére.

Mit tesz lehetővé a Terraform provider​

A teljes körű megvalósítást követően az ügyfelek az összes SDA erőforrást kiépíthetik és kezelhetik a Terraform segítségével, beleértve a következőket:

  • Erőforráscsoportok (beleértve a beágyazott csoportokat)
  • Projektek
  • Eszközök
  • Átjárók (gateway-ek)
  • Dokumentumok
  • Széfek (vault) és titkok (secret)
  • Jövőbeli SDA objektumok

A Terraform konfigurációk bármely más kódhoz hasonlóan tárolhatók Gitben, ami lehetővé teszi a következőket:

  • Változáskövetés
  • Szakértői átnézés (peer review)
  • Reprodukálható telepítések
  • Automatizált CI/CD munkafolyamatok

Hogyan működik​

A Terraform egy egyedi provideren keresztül kommunikál az SDA-val, amely hidat képez a Terraform deklaratív konfigurációs fájljai és az SDA API-jai (REST és GraphQL) között.

  • A felhasználók HCL-ben definiálják az erőforrásokat:

    resource "sda_resource_group" "example" {
    name = "Production"
    parent_id = "root"
    }
  • A Terraform ezt SDA felé irányuló API-hívásokká alakítja

  • Az SDA ennek megfelelően létrehozza, frissíti vagy törli az erőforrásokat

  • A Terraform karbantartja az állapotot, és biztosítja, hogy a rendszer tényleges állapota megfeleljen a kívánt konfigurációnak


Jelenlegi elérhetőség​

A jelenlegi Terraform provider a következő képességeket nyújtja:

  • Erőforráscsoportok olvasása
  • Erőforráscsoportok létrehozása
  • Erőforráscsoportok frissítése
  • Erőforráscsoportok törlése
    (beleértve a beágyazott hierarchiákat)

A provider architektúrájának, API-absztrakcióinak és mintáinak jelentős része már kialakult, és a termék fejlődésével itt kerül dokumentálásra.

Technológiai megjegyzések​

A projekt az SDA GraphQL és REST API-jainak felhasználásával készült:

  • A GraphQL rendkívül hatékony az SDA belső front-end ↔ back-end kommunikációjához, de bonyolultabb megvalósítani egy Terraform providerben.
  • A REST továbbra is iparági szabvány a külső automatizálási eszközök számára, és folytatjuk a REST végpontok támogatását és fejlesztését az ügyfelek számára.

Érdekli a Terraform provider használata?​

Az SDA Terraform provider jelenleg zárt előzetes állapotban van.
Szívesen látjuk a korai felhasználókat, akik szeretnék megismerni az Infrastructure as Code lehetőségeit SDA környezetekben.

Ha szeretne részt venni, kérjük, vegye fel a kapcsolatot az SDA-val.

Közvetlenül Önnel együttműködve fogunk:

  • Felmérni az Ön felhasználási eseteit
  • Hozzáférést biztosítani a zárt előzeteshez
  • Bevezetési támogatást nyújtani
  • Visszajelzéseket gyűjteni a végleges kiadás kialakításához