Przejdź do głównej zawartości

Infrastructure as Code dla środowisk automatyki przemysłowej

SEW-EURODRIVE wprowadza dostawcę Terraform (Terraform provider), który umożliwia klientom definiowanie, wdrażanie i zarządzanie zasobami platformy SEW z wykorzystaniem podejścia 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 SEW.


Dlaczego to zbudowaliśmy​

Gdy w SEW tworzony jest nowy tenant, klienci zazwyczaj muszą skonfigurować szeroki zakres zasobów — projekty, urządzenia, bramy, sejfy (vaults), dokumenty, grupy zasobów i wiele innych. 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 i audytu
  • Brak kontroli wersji i historii zmian

2. Własna automatyzacja z wykorzystaniem API SEW​

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

  • Wymaga znacznego nakładu prac programistycznych i znajomości naszych API
  • Skrypty mają tendencję do gromadzenia powtarzalnego kodu (boilerplate)
  • Klienci muszą samodzielnie zapewnić idempotentność, ponawianie prób i obsługę częściowych awarii
  • Wymaga własnego zarządzania stanem
  • Trudniej o standaryzację pomiędzy zakładami, zespołami i dostawcami

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


Co budujemy​

Aby rozwiązać te problemy, SEW opracowuje własnego (first-party) dostawcę Terraform, wykorzystującego standardowy w branży framework IaC firmy HashiCorp. Terraform pozwala użytkownikom zdefiniować pożądany stan systemu w prostym języku deklaratywnym (HCL), a następnie samodzielnie obsługuje:

  • Wdrożenie
  • Aktualizacje
  • Wycofywanie zmian (rollback)
  • Wykrywanie dryfu konfiguracji
  • Usuwanie
  • Zarządzanie stanem

To ta sama technologia, której SEW 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 SEW za pośrednictwem Terraform, w tym:

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

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

  • Śledzenie zmian
  • Przegląd kodu (peer review)
  • Powtarzalne wdrożenia
  • Zautomatyzowane procesy CI/CD

Jak to działa​

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

  • Użytkownicy definiują zasoby w HCL:

    resource "sda_resource_group" "example" \{
    name = "Production"
    parent_id = "root"
    \}
  • Terraform przekłada to na wywołania API do SEW

  • SEW odpowiednio tworzy, aktualizuje lub usuwa zasoby

  • Terraform utrzymuje stan i zapewnia zgodność rzeczywistego stanu systemu z pożądaną konfiguracją


Obecna dostępność​

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

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

Istotne części architektury dostawcy, abstrakcji API oraz wzorców zostały już opracowane i będą dokumentowane w tym miejscu wraz z rozwojem produktu.

Uwagi technologiczne​

Projekt został zbudowany w oparciu o API GraphQL i REST firmy SEW:

  • GraphQL jest bardzo wydajny w wewnętrznej komunikacji front-end ↔ back-end w SEW, 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 SEW jest obecnie w fazie private preview.
Zapraszamy wczesnych użytkowników, którzy chcieliby poznać możliwości Infrastructure as Code w środowiskach SEW.

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

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

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