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