Infrastructure as Code pre priemyselné automatizačné prostredia
Software Defined Automation (SDA) predstavuje Terraform provider, ktorý zákazníkom umožňuje definovať, nasadzovať a spravovať zdroje platformy SDA pomocou prístupu Infrastructure as Code (IaC). Táto funkcia je momentálne poskytovaná v režime private preview. Ak má vaša organizácia záujem zapojiť sa, kontaktujte prosím SDA.
Prečo sme to vytvorili
Keď sa v SDA vytvorí nový tenant, zákazníci obvykle potrebujú nakonfigurovať širokú škálu zdrojov – projekty, zariadenia, gateway-e, vaulty, dokumenty, resource groups a ďalšie. Dnes to možno urobiť iba dvoma spôsobmi:
1. Manuálne nastavenie vo webovej konzole
- Časovo náročné a opakujúce sa
- Náchylné na chyby v konfigurácii
- Nie je jednoducho opakovateľné ani auditovateľné
- Bez správy verzií a histórie zmien
2. Vlastná automatizácia pomocou SDA API
Používanie REST alebo GraphQL API je lepšie škálovateľné 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
- Náročnejšie na štandardizáciu medzi lokalitami, tímami a dodávateľmi
Súhrnne 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 staviame
Na vyriešenie týchto problémov SDA vyvíja vlastný (first-party) Terraform provider, ktorý využíva priemyselný š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ú SDA 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 SDA prostredníctvom Terraformu, vrátane:
- Resource Groups (vrátane vnorených skupín)
- Projekty
- Zariadenia
- Gateway-e
- Dokumenty
- Vaulty a secrety
- Budúce objekty SDA
Konfigurácie Terraformu možno ukladať v Git-e ako akýkoľvek iný kód, čo umožňuje:
- Sledovanie zmien
- Peer review
- Reprodukovateľné nasadenia
- Automatizované CI/CD workflow
Ako to funguje
Terraform komunikuje so SDA prostredníctvom vlastného providera, ktorý funguje ako most medzi deklaratívnymi konfiguračnými súbormi Terraformu a API SDA (REST a GraphQL).
-
Používatelia definujú zdroje v HCL:
resource "sda_resource_group" "example" {name = "Production"parent_id = "root"} -
Terraform to preloží do volaní API voči SDA
-
SDA 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 Resource Groups
- Vytváranie Resource Groups
- Aktualizácia Resource Groups
- Odstraňovanie Resource Groups
(vrátane vnorených hierarchií)
Významné časti architektúry providera, abstrakcií API a vzorov už boli stanovené a budú tu dokumentované s postupným vývojom produktu.
Technologické poznámky
Projekt bol vytvorený pomocou GraphQL a REST API SDA:
- GraphQL je vysoko efektívny pre internú komunikáciu front-end ↔ back-end v SDA, no jeho implementácia v Terraform provideri je zložitejš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 pre SDA je momentálne v režime private preview.
Vítame early adopterov, ktorí by chceli preskúmať Infrastructure as Code pre prostredia SDA.
Ak máte záujem zapojiť sa, kontaktujte prosím SDA.
Budeme s vami pracovať priamo na tom, aby sme:
- Vyhodnotili vaše prípady použitia
- Umožnili prístup k private preview
- Poskytli podporu pri onboardingu
- Získali spätnú väzbu formujúcu finálne vydanie