Infraestructura e introducción
Hefesto es un runtime de microservicios que permite crear y desplegar APIs rápidamente sin instalar ni configurar bases de datos, servidores web, colas de mensajería ni otros elementos de infraestructura.
Una sola instancia de Hefesto puede albergar múltiples APIs aisladas entre sí (cada una con su propia base de datos, espacio en disco y Redis). Las APIs pueden comunicarse entre ellas por HTTP.
El Servidor (hefesto-server)
hefesto-server es el elemento principal. Al hacer la instalación, se levantan 5 contenedores Docker:
- nginx: recibe todas las peticiones HTTP. Permite crear virtual hosts con certificados HTTPS automáticos (Let's Encrypt).
- php-fpm: procesa las peticiones ejecutando el código de Hefesto y de las APIs desplegadas.
- php-worker: mantiene workers (supervisor) que procesan los jobs en segundo plano.
- postgres: con la extensión PostGIS, para almacenar información y realizar operaciones geoespaciales.
- redis: usado internamente para colas de workers, caché y rate limiting. También disponible como base de datos en RAM.
APIs
Independientes pero desplegables en Hefesto.
Tú mismo puedes crear todas las APIs que necesites.
El Cliente (hefesto-client)
La última pieza es hefesto-client. Es un cliente que se instala en local y permite crear esqueletos de API y desplegarlos contra una o varias instancias de Hefesto (locales o remotas).
El desarrollador puede crear su API e irla desplegando con el cliente contra una instancia remota de Hefesto. No es necesario instalar hefesto-server en local para desarrollar.