Prejsť na hlavný obsah

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