Przejdź do głównej zawartości

Infrastructure as Code dla środowisk automatyki przemysłowej

Software Defined Automation (SDA) wprowadza dostawcę Terraform, który umożliwia klientom definiowanie, wdrażanie i zarządzanie zasobami platformy SDA przy użyciu Infrastructure as Code (IaC). Funkcja ta jest obecnie oferowana w ramach private preview. Jeśli Państwa organizacja jest zainteresowana udziałem, prosimy o kontakt z SDA.


Dlaczego to zbudowaliśmy​

Gdy w SDA tworzony jest nowy tenant, klienci zazwyczaj muszą skonfigurować szeroki zakres zasobów — projekty, urządzenia, bramy, sejfy (vaults), dokumenty, grupy zasobów i inne. Obecnie można to zrobić wyłącznie na dwa sposoby:

1. Ręczna konfiguracja w konsoli webowej​

  • Czasochłonna i powtarzalna
  • Podatna na błędy konfiguracji
  • Trudna do powtórzenia lub audytu
  • Brak kontroli wersji i historii zmian

2. Własna automatyzacja z użyciem API SDA​

Korzystanie z API REST lub GraphQL jest bardziej skalowalne niż konfiguracja ręczna, ale wiąże się z własnymi wyzwaniami:

  • Wymaga znacznego nakładu prac programistycznych i znajomości naszych API
  • Skrypty mają tendencję do gromadzenia kodu szablonowego (boilerplate)
  • Klienci muszą samodzielnie obsługiwać idempotentność, ponawianie prób i odzyskiwanie po częściowych awariach
  • Wymaga własnego zarządzania stanem
  • Trudniejsza standaryzacja pomiędzy zakładami, zespołami i dostawcami

Łącznie wyzwania te sprawiają, że uruchamianie nowych zakładów i tenantów trwa dłużej, niż jest to konieczne, oraz wprowadzają zbędne ryzyko operacyjne.


Co budujemy​

Aby rozwiązać te problemy, SDA rozwija własnego dostawcę Terraform (first-party), wykorzystującego standardowy w branży framework IaC firmy HashiCorp. Terraform umożliwia użytkownikom zdefiniowanie pożądanego stanu systemu w prostym języku deklaratywnym (HCL), a Terraform zajmuje się:

  • Wdrożeniem
  • Aktualizacjami
  • Wycofywaniem zmian (rollback)
  • Wykrywaniem dryfu konfiguracji
  • Usuwaniem
  • Zarządzaniem stanem

Jest to ta sama technologia, której SDA używa wewnętrznie do zarządzania własną infrastrukturą chmurową AWS.

Co umożliwia dostawca Terraform​

Po pełnym wdrożeniu klienci będą mogli udostępniać i zarządzać wszystkimi zasobami SDA poprzez Terraform, w tym:

  • Grupami zasobów (w tym grupami zagnieżdżonymi)
  • Projektami
  • Urządzeniami
  • Bramami
  • Dokumentami
  • Sejfami (Vaults) i sekretami
  • Przyszłymi obiektami SDA

Konfiguracje Terraform mogą być przechowywane w Git jak każdy inny kod, co umożliwia:

  • Śledzenie zmian
  • Przegląd przez współpracowników (peer review)
  • Powtarzalne wdrożenia
  • Zautomatyzowane procesy CI/CD

Jak to działa​

Terraform komunikuje się z SDA poprzez dedykowanego dostawcę, który stanowi pomost pomiędzy deklaratywnymi plikami konfiguracyjnymi Terraform a API SDA (REST i GraphQL).

  • Użytkownicy definiują zasoby w HCL:

    resource "sda_resource_group" "example" {
    name = "Production"
    parent_id = "root"
    }
  • Terraform tłumaczy to na wywołania API do SDA

  • SDA odpowiednio tworzy, aktualizuje lub usuwa zasoby

  • Terraform utrzymuje stan i zapewnia, że rzeczywisty stan systemu odpowiada pożądanej konfiguracji


Obecna dostępność​

Aktualny dostawca Terraform zapewnia następujące możliwości:

  • Odczyt grup zasobów
  • Tworzenie grup zasobów
  • Aktualizowanie grup zasobów
  • Usuwanie grup zasobów
    (w tym hierarchii zagnieżdżonych)

Znaczna część architektury dostawcy, abstrakcji API oraz wzorców została już opracowana i będzie dokumentowana w tym miejscu wraz z rozwojem produktu.

Uwagi technologiczne​

Projekt został zbudowany z wykorzystaniem API GraphQL i REST platformy SDA:

  • GraphQL jest bardzo wydajny w wewnętrznej komunikacji front-end ↔ back-end w SDA, ale trudniejszy do implementacji w dostawcy Terraform.
  • REST pozostaje standardem branżowym dla zewnętrznych narzędzi automatyzacji i będziemy nadal wspierać oraz rozwijać punkty końcowe REST dla klientów.

Zainteresowani korzystaniem z dostawcy Terraform?​

Dostawca Terraform dla SDA jest obecnie w fazie private preview.
Zapraszamy wczesnych użytkowników, którzy chcieliby poznać podejście Infrastructure as Code w środowiskach SDA.

Jeśli są Państwo zainteresowani udziałem, prosimy o kontakt z SDA.

Będziemy współpracować z Państwem bezpośrednio, aby:

  • Ocenić Państwa przypadki użycia
  • Udostępnić dostęp do private preview
  • Zapewnić wsparcie przy wdrożeniu
  • Zebrać opinie kształtujące finalną wersję