Ir al contenido

Micro, manifiesto y stack

Un micro es un repositorio arrancable. En Aseptic lo añades una vez —eligiendo su carpeta o clonándolo desde Git— y a partir de ahí se describe con un manifiesto que Aseptic genera por ti.

El manifiesto es la descripción de cómo arrancar un micro: su tecnología, sus puertos, la infraestructura que necesita, sus dependencias a otros cores y su receta de arranque. Aseptic lo autodetecta al añadir el micro (a partir de ficheros como pom.xml, application.yml o package.json); tú solo lo revisas.

El manifiesto es portable: la ruta al repo se guarda relativa al espacio de trabajo, no absoluta, para que valga entre máquinas. Se puede editar desde la app (sección Micros) o desde el CLI.

Si cambias de rama en el repo, sus puertos o dependencias pueden variar; Aseptic lo detecta (drift) y ofrece actualizar el manifiesto desde el repositorio conservando lo que hayas curado a mano. Ver Cambiar de rama y drift.

El stack es la tecnología del micro. Hoy Aseptic soporta:

quarkus · spring-boot · node · angular · python · go · dotnet

Cada stack guarda su configuración en un sitio distinto, y Aseptic la lee ahí para autodetectar puertos, base de datos y dependencias: application.yml en la familia JVM, .env en Node, Python y Go (además de config.yaml en Go) y appsettings.json en .NET. Los ficheros del perfil activo (application-local.yml, .env.local, appsettings.Local.json) pisan a los de base, igual que haría el propio framework.

El stack determina tres cosas: cómo se arranca el micro (su comando), dónde está su health (para saber cuándo está sano) y cómo se le inyecta la configuración (propiedades de sistema -D en la familia JVM, variables de entorno en Node, Python, Go y .NET, flags en Angular).

Ese conocimiento vive en un registro de perfiles por tecnología dentro de Aseptic, no en el manifiesto: el manifiesto solo declara stack.kind (quarkus, node…) y, si hace falta, algún ajuste puntual. Añadir soporte para una tecnología nueva es añadir un perfil, no reescribir nada de tus micros.