Infrastructure as Code ipari automatizálási környezetekhez
A Software Defined Automation (SDA) bevezet egy Terraform providert, amely lehetővé teszi az ügyfelek számára, hogy az SDA platform erőforrásait Infrastructure as Code (IaC) módszerrel definiálják, telepítsék és kezeljék. Ez a funkció jelenleg zárt előzetes (private preview) formájában érhető el. Amennyiben szervezete szeretne részt venni benne, kérjük, vegye fel a kapcsolatot az SDA-val.
Miért fejlesztettük ki
Amikor új bérlő (tenant) jön létre az SDA-ban, az ügyfeleknek jellemzően számos erőforrást kell konfigurálniuk – projekteket, eszközöket, átjárókat, széfeket (vault), dokumentumokat, erőforráscsoportokat és sok mást. Jelenleg ez csak két módon lehetséges:
1. Manuális beállítás a webkonzolon
- Időigényes és ismétlődő
- Hajlamos konfigurációs hibákra
- Nem egyszerűen megismételhető vagy auditálható
- Nincs verziókövetés vagy változástörténet
2. Egyedi automatizálás az SDA API-k használatával
A REST vagy GraphQL API-k használata jobban skálázható, mint a manuális konfiguráció, de saját kihívásokkal jár:
- Jelentős fejlesztési ráfordítást és az API-jaink ismeretét igényli
- A szkriptekben felhalmozódik a sablonkód (boilerplate)
- Az ügyfeleknek maguknak kell kezelniük az idempotenciát, az újrapróbálkozásokat és a részleges hibákból való helyreállítást
- Egyedi állapotkezelést igényel
- Nehezebb egységesíteni a telephelyek, csapatok és beszállítók között
Összességében ezek a kihívások a szükségesnél lassabbá teszik az új telephelyek és bérlők bevezetését, és felesleges üzemeltetési kockázatot jelentenek.
Amit fejlesztünk
Ezek megoldására az SDA egy saját fejlesztésű Terraform providert készít, amely a HashiCorp iparági szabvány IaC keretrendszerét használja. A Terraform lehetővé teszi, hogy a felhasználók egyszerű, deklaratív nyelven (HCL) írják le a rendszer kívánt állapotát, a Terraform pedig kezeli a következőket:
- Telepítés
- Frissítések
- Visszaállítások (rollback)
- Eltéréskezelés (drift detection)
- Törlés
- Állapotkezelés
Ugyanezt a technológiát használja az SDA belsőleg is a saját AWS felhőinfrastruktúrájának kezelésére.
Mit tesz lehetővé a Terraform provider
A teljes körű megvalósítást követően az ügyfelek az összes SDA erőforrást kiépíthetik és kezelhetik a Terraform segítségével, beleértve a következőket:
- Erőforráscsoportok (beleértve a beágyazott csoportokat)
- Projektek
- Eszközök
- Átjárók (gateway-ek)
- Dokumentumok
- Széfek (vault) és titkok (secret)
- Jövőbeli SDA objektumok
A Terraform konfigurációk bármely más kódhoz hasonlóan tárolhatók Gitben, ami lehetővé teszi a következőket:
- Változáskövetés
- Szakértői átnézés (peer review)
- Reprodukálható telepítések
- Automatizált CI/CD munkafolyamatok
Hogyan működik
A Terraform egy egyedi provideren keresztül kommunikál az SDA-val, amely hidat képez a Terraform deklaratív konfigurációs fájljai és az SDA API-jai (REST és GraphQL) között.
-
A felhasználók HCL-ben definiálják az erőforrásokat:
resource "sda_resource_group" "example" {name = "Production"parent_id = "root"} -
A Terraform ezt SDA felé irányuló API-hívásokká alakítja
-
Az SDA ennek megfelelően létrehozza, frissíti vagy törli az erőforrásokat
-
A Terraform karbantartja az állapotot, és biztosítja, hogy a rendszer tényleges állapota megfeleljen a kívánt konfigurációnak
Jelenlegi elérhetőség
A jelenlegi Terraform provider a következő képességeket nyújtja:
- Erőforráscsoportok olvasása
- Erőforráscsoportok létrehozása
- Erőforráscsoportok frissítése
- Erőforráscsoportok törlése
(beleértve a beágyazott hierarchiákat)
A provider architektúrájának, API-absztrakcióinak és mintáinak jelentős része már kialakult, és a termék fejlődésével itt kerül dokumentálásra.
Technológiai megjegyzések
A projekt az SDA GraphQL és REST API-jainak felhasználásával készült:
- A GraphQL rendkívül hatékony az SDA belső front-end ↔ back-end kommunikációjához, de bonyolultabb megvalósítani egy Terraform providerben.
- A REST továbbra is iparági szabvány a külső automatizálási eszközök számára, és folytatjuk a REST végpontok támogatását és fejlesztését az ügyfelek számára.
Érdekli a Terraform provider használata?
Az SDA Terraform provider jelenleg zárt előzetes állapotban van.
Szívesen látjuk a korai felhasználókat, akik szeretnék megismerni az Infrastructure as Code lehetőségeit SDA környezetekben.
Ha szeretne részt venni, kérjük, vegye fel a kapcsolatot az SDA-val.
Közvetlenül Önnel együttműködve fogunk:
- Felmérni az Ön felhasználási eseteit
- Hozzáférést biztosítani a zárt előzeteshez
- Bevezetési támogatást nyújtani
- Visszajelzéseket gyűjteni a végleges kiadás kialakításához