Ugrás a fő tartalomhoz

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

A SEW-EURODRIVE egy Terraform providert vezet be, amely lehetővé teszi az ügyfelek számára a SEW platform erőforrásainak definiálását, telepítését és kezelését Infrastructure as Code (IaC) módszerrel. Ez a funkció jelenleg privát előzetes formájában érhető el. Amennyiben szervezete érdeklődik a részvétel iránt, kérjük, vegye fel a kapcsolatot a SEW-vel.


Miért fejlesztettük ki​

Amikor egy új bérlő (tenant) jön létre a SEW-ben, 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 egyebeket. 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ő
  • Konfigurációs hibákra hajlamos
  • Nehezen megismételhető és auditálható
  • Nincs verziókövetés vagy változási előzmény

2. Egyedi automatizálás a SEW API-k használatával​

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

  • Jelentős fejlesztési ráfordítást és API-ink ismeretét igényli
  • A szkriptekben hajlamos felhalmozódni a sablonkód
  • Az ügyfeleknek 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

Ezek a kihívások együttesen 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 építünk​

E problémák megoldására a SEW 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 egy egyszerű, deklaratív nyelven (HCL) definiálják a kívánt rendszerállapotot, a Terraform pedig kezeli az alábbiakat:

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

Ugyanezt a technológiát használja a SEW 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 valamennyi SEW erőforrást kiépíthetik és kezelhetik a Terraform segítségével, ideértve:

  • Erőforráscsoportok (beleértve a beágyazott csoportokat is)
  • Projektek
  • Eszközök
  • Átjárók
  • Dokumentumok
  • Széfek (Vault) és titkok
  • Jövőbeli SEW objektumok

A Terraform konfigurációk bármely más kódhoz hasonlóan Git-ben tárolhatók, ami lehetővé teszi:

  • A változások nyomon követését
  • A szakmai átnézést (peer review)
  • A reprodukálható telepítéseket
  • Az automatizált CI/CD munkafolyamatokat

Hogyan működik​

A Terraform egy egyedi provideren keresztül kommunikál a SEW-vel, amely hidat képez a Terraform deklaratív konfigurációs fájljai és a SEW 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 a SEW felé irányuló API-hívásokká alakítja

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

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


Jelenlegi elérhetőség​

A jelenlegi Terraform provider az alábbi 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 is)

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

Technológiai megjegyzések​

A projekt a SEW GraphQL és REST API-jaira épült:

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

Érdekli a Terraform provider használata?​

A SEW Terraform provider jelenleg privát előzetes fázisban van.
Szívesen látjuk azokat a korai felhasználókat, akik szeretnék megismerni az Infrastructure as Code lehetőségeit SEW környezetekben.

Ha érdekli a részvétel, kérjük, vegye fel a kapcsolatot a SEW-vel.

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

  • Felmérjük a felhasználási eseteit
  • Engedélyezzük a privát előzetes hozzáférést
  • Bevezetési támogatást nyújtunk
  • Visszajelzéseket gyűjtünk a végleges kiadás alakításához