Preskočiť na hlavný obsah

Infrastructure as Code pre prostredia priemyselnej automatizácie

SEW-EURODRIVE predstavuje Terraform provider, ktorý zákazníkom umožňuje definovať, nasadzovať a spravovať zdroje platformy SEW pomocou prístupu Infrastructure as Code (IaC). Táto funkcia je momentálne dostupná v režime private preview. Ak má vaša organizácia záujem o účasť, kontaktujte prosím SEW.


Prečo sme to vytvorili​

Keď sa v SEW vytvorí nový tenant, zákazníci zvyčajne potrebujú nakonfigurovať široké spektrum zdrojov – projekty, zariadenia, gateways, vaults, dokumenty, skupiny zdrojov a ďalšie. Dnes je to možné iba dvomi spôsobmi:

1. Manuálne nastavenie vo webovej konzole​

  • Časovo náročné a repetitívne
  • Náchylné na konfiguračné chyby
  • Nie je jednoducho zopakovateľné ani auditovateľné
  • Bez správy verzií a histórie zmien

2. Vlastná automatizácia pomocou SEW API​

Používanie REST alebo GraphQL API je škálovateľnejšie než manuálna konfigurácia, prináša však vlastné výzvy:

  • Vyžaduje značné vývojové úsilie a znalosť našich API
  • Skripty majú tendenciu akumulovať boilerplate kód
  • Zákazníci musia riešiť idempotenciu, opakované pokusy a obnovu po čiastočných zlyhaniach
  • Vyžaduje vlastnú správu stavu
  • Ťažšie sa štandardizuje medzi lokalitami, tímami a dodávateľmi

Spoločne tieto výzvy spôsobujú, že onboarding nových lokalít a tenantov je pomalší, než by musel byť, a zavádzajú nepotrebné operačné riziko.


Čo budujeme​

Na vyriešenie týchto problémov SEW vyvíja vlastný (first-party) Terraform provider, ktorý využíva priemyselne štandardný IaC framework od HashiCorp. Terraform umožňuje používateľom definovať požadovaný stav systému v jednoduchom deklaratívnom jazyku (HCL), pričom Terraform zabezpečuje:

  • Nasadenie
  • Aktualizácie
  • Rollbacky
  • Detekciu driftu
  • Odstránenie
  • Správu stavu

Ide o rovnakú technológiu, akú SEW používa interne na správu vlastnej cloudovej infrastruktúry AWS.

Čo Terraform provider umožňuje​

Po plnej implementácii budú zákazníci schopní poskytovať a spravovať všetky zdroje SEW prostredníctvom Terraformu, vrátane:

  • Skupiny zdrojov (vrátane vnorených skupín)
  • Projekty
  • Zariadenia
  • Gateways
  • Dokumenty
  • Vaults a secrets
  • Budúce objekty SEW

Konfigurácie Terraformu je možné uchovávať v Git-e ako akýkoľvek iný kód, čo umožňuje:

  • Sledovanie zmien
  • Peer review
  • Reprodukovateľné nasadenia
  • Automatizované CI/CD workflowy

Ako to funguje​

Terraform komunikuje so SEW prostredníctvom vlastného providera, ktorý funguje ako most medzi deklaratívnymi konfiguračnými súbormi Terraformu a API rozhraniami SEW (REST a GraphQL).

  • Používatelia definujú zdroje v HCL:

    resource "sda_resource_group" "example" \{
    name = "Production"
    parent_id = "root"
    \}
  • Terraform to preloží na API volania voči SEW

  • SEW podľa toho vytvára, aktualizuje alebo odstraňuje zdroje

  • Terraform udržiava stav a zabezpečuje, že skutočný stav systému odpovedá požadovanej konfigurácii


Aktuálna dostupnosť​

Súčasný Terraform provider poskytuje nasledujúce možnosti:

  • Čítanie skupín zdrojov
  • Vytváranie skupín zdrojov
  • Aktualizáciu skupín zdrojov
  • Odstraňovanie skupín zdrojov
    (vrátane vnorených hierarchií)

Významné časti architektúry providera, abstrakcií API a vzorov už boli zavedené a budú tu dokumentované, ako sa produkt bude vyvíjať.

Technologické poznámky​

Projekt bol postavený pomocou GraphQL a REST API rozhraní SEW:

  • GraphQL je vysoko efektívny pre internú komunikáciu front-end ↔ back-end v SEW, ale jeho implementácia v Terraform provideri je komplexnejšia.
  • REST zostáva priemyselným štandardom pre externé automatizačné nástroje a budeme naďalej podporovať a rozširovať REST endpointy pre zákazníkov.

Máte záujem používať Terraform provider?​

Terraform provider od SEW je momentálne v režime private preview.
Vítame early adopterov, ktorí by chceli preskúmať Infrastructure as Code pre prostredia SEW.

Ak máte záujem o účasť, kontaktujte prosím SEW.

Budeme s vami spolupracovať priamo, aby sme:

  • Vyhodnotili vaše prípady použitia
  • Umožnili prístup k private preview
  • Poskytli podporu pri onboardingu
  • Zhromaždili spätnú väzbu na formovanie finálneho vydania