Infrastructure as Code ipari automatizálási környezetekhez
A SEW-EURODRIVE egy Terraform providert vezet be, amely lehetővé teszi az ügyfelek számára a SEW platform erőforrásainak definiálását, telepítését és kezelését Infrastructure as Code (IaC) módszerrel. Ez a funkció jelenleg privát előzetes formájában érhető el. Amennyiben szervezete érdeklődik a részvétel iránt, kérjük, vegye fel a kapcsolatot a SEW-vel.
Miért fejlesztettük ki
Amikor egy új bérlő (tenant) jön létre a SEW-ben, 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 egyebeket. 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ő
- Konfigurációs hibákra hajlamos
- Nehezen megismételhető és auditálható
- Nincs verziókövetés vagy változási előzmény
2. Egyedi automatizálás a SEW API-k használatával
A REST vagy GraphQL API-k használata jobban skálázható, mint a manuális konfiguráció, ugyanakkor saját kihívásokkal jár:
- Jelentős fejlesztési ráfordítást és API-ink ismeretét igényli
- A szkriptekben hajlamos felhalmozódni a sablonkód
- Az ügyfeleknek 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
Ezek a kihívások együttesen 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 építünk
E problémák megoldására a SEW 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 egy egyszerű, deklaratív nyelven (HCL) definiálják a kívánt rendszerállapotot, a Terraform pedig kezeli az alábbiakat:
- Telepítés
- Frissítések
- Visszaállítások
- Eltérésfelismerés (drift detection)
- Törlés
- Állapotkezelés
Ugyanezt a technológiát használja a SEW 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 valamennyi SEW erőforrást kiépíthetik és kezelhetik a Terraform segítségével, ideértve:
- Erőforráscsoportok (beleértve a beágyazott csoportokat is)
- Projektek
- Eszközök
- Átjárók
- Dokumentumok
- Széfek (Vault) és titkok
- Jövőbeli SEW objektumok
A Terraform konfigurációk bármely más kódhoz hasonlóan Git-ben tárolhatók, ami lehetővé teszi:
- A változások nyomon követését
- A szakmai átnézést (peer review)
- A reprodukálható telepítéseket
- Az automatizált CI/CD munkafolyamatokat
Hogyan működik
A Terraform egy egyedi provideren keresztül kommunikál a SEW-vel, amely hidat képez a Terraform deklaratív konfigurációs fájljai és a SEW 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 a SEW felé irányuló API-hívásokká alakítja
-
A SEW ennek megfelelően létrehozza, frissíti vagy törli az erőforrásokat
-
A Terraform karbantartja az állapotot, és biztosítja, hogy a tényleges rendszerállapot megfeleljen a kívánt konfigurációnak
Jelenlegi elérhetőség
A jelenlegi Terraform provider az alábbi 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 is)
A provider architektúrájának, API-absztrakcióinak és mintáinak jelentős része már kialakításra került, és a termék fejlődésével itt kerül dokumentálásra.
Technológiai megjegyzések
A projekt a SEW GraphQL és REST API-jaira épült:
- A GraphQL rendkívül hatékony a SEW belső front-end ↔ back-end kommunikációjához, de összetettebb egy Terraform providerben megvalósítani.
- A REST továbbra is az iparági szabvány a külső automatizálási eszközök számára, ezért folytatjuk a REST végpontok támogatását és fejlesztését ügyfeleink számára.
Érdekli a Terraform provider használata?
A SEW Terraform provider jelenleg privát előzetes fázisban van.
Szívesen látjuk azokat a korai felhasználókat, akik szeretnék megismerni az Infrastructure as Code lehetőségeit SEW környezetekben.
Ha érdekli a részvétel, kérjük, vegye fel a kapcsolatot a SEW-vel.
Közvetlenül Önnel együttműködve:
- Felmérjük a felhasználási eseteit
- Engedélyezzük a privát előzetes hozzáférést
- Bevezetési támogatást nyújtunk
- Visszajelzéseket gyűjtünk a végleges kiadás alakításához