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ę