Inspiració

La inspiració neix directament del repte de simplificar la gestió d'infraestructures al núvol. Sabem que per a molts desenvolupadors, haver de configurar xarxes, claus SSH i instàncies a AWS o Google Cloud és una barrera d'entrada important. Volíem resoldre aquest problema de forma radical: eliminant la necessitat de tocar la consola del proveïdor. El nostre objectiu era crear una eina que permetés passar de "Vull desplegar aquesta app" a "Tinc un clúster funcionant" en minuts, ja sigui mitjançant un formulari intuïtiu o, parlant directament amb una IA.

Què fa?

És una plataforma d'orquestració multi-núvol que automatitza el cicle de vida de la infraestructura:

  • Orquestració Multi-Núvol: Crea clústers a AWS i Google Cloud des d'un únic lloc, gestionant les diferències de cada proveïdor de forma transparent.
  • Tauler de Control Visual: Un Dashboard interactiu que permet visualitzar l'estat de les instàncies i filtrar per proveïdor o estat en temps real.
  • Desplegament "Zero-Touch": Configura automàticament clústers Docker Swarm i desplega aplicacions via docker-compose sense que l'usuari hagi de connectar-se per SSH.
  • Assistent d'Infraestructura (LLM): Un xat integrat on l'usuari descriu el que necessita ("Vull un servidor per a proves") i el sistema configura automàticament els paràmetres tècnics (CPU, RAM, tipus d'instància).

Com ho hem construït

1. Frontend (React + Vite)

  • Interfície Intel·ligent: Hem creat un sistema de rutes que permet triar entre un flux "Manual" o assistit per "LLM".
  • Visualització de Dades: Utilitzem Recharts per mostrar mètriques clares sobre l'estat dels clústers i les instàncies.
  • Disseny: Hem utilitzat styled-components per crear una UI neta i funcional, centrada en la usabilitat.

2. Backend (FastAPI + Python)

  • Motor d'Orquestració: El backend actua com a controlador central, utilitzant Boto3 (AWS) i Google Cloud Compute Library per aprovisionar màquines virtuals.
  • Automatització SSH: Utilitzem Paramiko per connectar-nos a les màquines, instal·lar Docker i inicialitzar el Swarm de manera asíncrona.
  • Integració IA: Un endpoint específic processa les peticions de llenguatge natural i les tradueix a especificacions d'infraestructura.

Reptes que hem afrontat

Sincronització d'Estats Asíncrons: un dels reptes ha estat coordinar l'estat del frontend (xat de l'LLM, barres de càrrega) amb processos de backend que triguen minuts a completar-se (arrencada de màquines virtuals).

Condicions de Carrera al Núvol: hem trobat problemes on intentàvem connectar per SSH a una màquina que AWS marcava com a "Running" però que encara no havia acabat d'inicialitzar el sistema operatiu. Hem hagut d'implementar lògica de reintents robusta al backend.

Gestió de Dades Dinàmica: Adaptar les dades crues de la base de dades per ser visualitzades correctament als gràfics de Recharts va requerir transformacions de dades complexes al frontend.

Fites de les quals estem orgullosos

LLM: Aconseguir que el sistema entengui una frase simple i la converteixi en infraestructura real al núvol.

Dashboard Professional: la nostra interfície permet gestionar grans volums d'informació de manera fluida i visualment atractiva.

Arquitectura Sòlida: hem construït un sistema on Frontend i Backend es comuniquen amb validació de dades i seguretat JWT implementades correctament.

Què hem après?

Complexitat del Núvol: Hem après que abstreure les diferències entre proveïdors (AWS vs GCP) és complex i requereix una lògica de "traducció" força acurada al backend.

Potència de React + FastAPI: La combinació d'un frontend reactiu amb un backend asíncron en Python ens ha permès gestionar tasques d'infraestructura pesades sense bloquejar l'experiència d'usuari.

Integració d'IA: Hem après com integrar serveis d'IA generativa dins d'un flux de treball tècnic per millorar l'experiència d'usuari (DX).

El futur d'ALAE Multi-Cloud

Refinar el Model LLM: Entrenar el model amb més exemples d'arquitectures de Docker Compose perquè pugui suggerir fitxers YAML complets i complexos.

Mètriques en Temps Real: Connectar el Dashboard amb les mètriques reals de CPU/RAM de les màquines utilitzant WebSockets.

Suport Multi-Tenancy: Permetre que equips sencers col·laborin en els mateixos clústers amb rols i permisos avançats.

Share this project:

Updates