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ę