Skip to content

server-configs

Qué es

El repositorio que define cómo se ejecuta todo lo demás en el servidor de producción: los workers de cola que mantienen vivo el procesamiento asíncrono, y las entradas de cron que disparan los schedulers de las aplicaciones.

No contiene código de aplicación. Contiene la configuración que hace que las aplicaciones funcionen.

Empieza aquí al diagnosticar

Cuando algo automático no ocurrió en cualquier sistema del ecosistema, la respuesta suele estar en este repositorio: o el cron no corrió, o el worker estaba caído.

Tipo de sistema

CampoValor
TipoInfraestructura
TecnologíasSupervisor · cron · Bash · GitHub Actions
Base de datosNo aplica
EjecuciónServidor Linux de producción

Estado documental

  • Estado: Borrador
  • Última actualización: 2026-08-02
  • Owner: Pendiente
  • SME requerido: DevOps / infraestructura
  • Fuente resumida: configuración de Supervisor, crontab, script de respaldo y flujos de despliegue del repositorio.

Qué gestiona

ComponentePara qué
Configuración de SupervisorDefine un programa por worker de cola, por servicio y por participante.
CrontabEjecuta el scheduler de Laravel cada minuto y lanza los respaldos semanales.
Script de respaldo de base de datosGenera un volcado comprimido y lo sube a S3.
Flujos de GitHub ActionsDespliegan estos archivos al servidor por SSH/SCP.

Estructura

text
.github/workflows/     despliegue de configuración y de respaldos
infraestructure/
  cron/crontab         entradas de cron del servidor
  supervisor/          definición de los workers de cola
  scripts/             script de respaldo de base de datos
  secrets/             archivos de variables, vacíos en el repositorio

El directorio está escrito infraestructure. Es un error de ortografía heredado; cambiarlo exige actualizar los flujos de despliegue al mismo tiempo.

Los secretos no viven aquí

Los archivos bajo secrets/ están vacíos en el repositorio. Los valores reales viven en GitHub Secrets, en archivos locales del servidor o en AWS Secrets Manager. Nunca deben comprometerse al repositorio.

Workers gestionados

Un programa de Supervisor por cola. Los códigos de participante se representan aquí como CXXX.

ProgramaServicioConexiónCola
Worker por omisiónsy-energysqsfifoCola por omisión
Sincronización de ECDsy-energysqsfifoEcdSync-prod-CXXX.fifo
Documentos de CENACEsy-energysqsfifoCenaceBalance-CXXX-prod.fifo
Cola en base de datossy-energydatabaseCola por omisión
CFE TXsy-energysqscustomCfeTx{participante}-prod.fifo
Sincronización de demandademand-sync-servicePor omisiónCola por omisión
API del MEMmem-apisqsMemCola por omisión
Respuestas de tarifas CFEcfe-rates-microservicesqsResponseCfeRatesResponse-prod

Hay un juego de workers de sy-energy por participante. Un participante puede tener workers arriba mientras otro los tiene caídos, y el síntoma solo se ve en una instancia.

Comportamiento común de los workers: arranque automático, reinicio automático, límite de tiempo de vida y de trabajos por proceso, y espera prolongada al detenerse para no interrumpir trabajos en curso.

Relación con otros sistemas

Este repositorio no se comunica con nadie: habilita a los demás.

SistemaQué depende de aquí
sy-energySu scheduler y todos sus workers.
mem-apiSu scheduler y su worker.
demand-sync-serviceSu worker.
cfe-rates-microserviceSu worker de respuestas.

Ambientes y despliegue

Los cambios se despliegan con GitHub Actions, copiando los archivos al servidor por SSH/SCP. Hay un flujo para la configuración de Supervisor y cron, y otro para el script de respaldo.

Un cambio aquí afecta a todos los servicios

Un error en la configuración de Supervisor puede dejar sin workers a varios sistemas a la vez. Después de desplegar, verificar el estado de todos los programas, no solo del que se modificó.

Riesgos y gaps

  • No hay alerta cuando un worker cae o cuando el cron se detiene.
  • Los archivos de secretos existen vacíos en el repositorio, lo que invita a llenarlos por error.
  • No están documentadas las versiones de PHP y Laravel de cada servicio gestionado.
  • Coexisten dos mecanismos de respaldo de base de datos. Ver Operación.

Próxima revisión

Tras la validación de DevOps.