Configuración óptima
Para aprovechar al máximo Midaz en producción, comienza con:
- Implementación en múltiples zonas de disponibilidad.
- Uso de al menos 3 nodos de trabajo con autoescalado.
- Separación de cargas de trabajo (aplicación vs. base de datos).
- Aprovechamiento de servicios administrados como RDS, ElastiCache y MongoDB Atlas.
- Aplicación de mejores prácticas de Kubernetes para resiliencia, seguridad y observabilidad.
- Automatización de copias de seguridad y alertas desde el primer día.
Planificación de infraestructura
Arquitectura del clúster
Para garantizar resiliencia y rendimiento:- Implementa en múltiples zonas de disponibilidad.
- Usa al menos 3 nodos de trabajo para alta disponibilidad.
- Habilita el autoescalado de nodos para absorber picos de carga de trabajo.
- Separa las cargas de trabajo de aplicación y base de datos cuando sea posible.
Dimensionamiento de recursos
- Adapta los tamaños de nodo a las cargas de trabajo esperadas.
- Prioriza los servicios críticos con recursos suficientes.
- Aplica cuotas de recursos para evitar contención.
- Monitorea y ajusta continuamente según el uso.
Almacenamiento
- Usa almacenamiento respaldado por SSD para todos los componentes de base de datos.
- Define clases de almacenamiento apropiadas por proveedor de nube.
- Aprovisiona volúmenes con margen para crecimiento.
- Para datos críticos, usa opciones de almacenamiento replicadas o altamente duraderas.
Arquitectura de base de datos y alta disponibilidad
Midaz usa CQRS (Segregación de Responsabilidad de Comando y Consulta) para separar limpiamente lecturas de escrituras. Esto te ayuda a escalar eficientemente y construir servicios tolerantes a fallos.
PostgreSQL
- Usa un primario dedicado para escrituras, y réplicas para lecturas.
- Habilita replicación sincrónica para datos críticos.
- Configura conmutación por error automática (por ejemplo, Patroni, AWS RDS).
- Monitorea retraso de replicación y consistencia.
- Prefiere servicios administrados como AWS RDS o GCP Cloud SQL para resiliencia y automatización.
Redis / Valkey
- Implementa en modo clúster en múltiples zonas.
- Habilita conmutación por error automática (por ejemplo, Redis Sentinel o clustering nativo).
- Usa servicios administrados como AWS ElastiCache o GCP Memorystore para simplicidad y tiempo de actividad.
MongoDB
- Usa conjuntos de réplicas con miembros en diferentes zonas.
- Monitorea transiciones de rol y retraso.
- Programa copias de seguridad regulares.
- Evita escribir en secundarios a menos que sea intencional.
- Usa servicios administrados como MongoDB Atlas o AWS DocumentDB para observabilidad, escalamiento y resiliencia.
Infraestructura de mensajería
RabbitMQ es esencial para desacoplar servicios y habilitar consistencia eventual en la arquitectura CQRS de Midaz:
- Los servicios de comando publican eventos después de procesar escrituras.
- RabbitMQ enruta eventos a consumidores interesados a través de intercambios y colas.
- Los consumidores actualizan modelos de lectura, activan flujos de trabajo o integran con sistemas externos basándose en los eventos recibidos.
Estrategias de alta disponibilidad
Redundancia de servicios
- Implementa múltiples réplicas para cada servicio.
- Usa reglas de anti-afinidad para distribuir servicios entre zonas.
- Aplica Presupuestos de Interrupción de Pods para reducir el tiempo de inactividad durante actualizaciones.
Balanceo de carga
- Usa controladores de ingreso con verificaciones de salud.
- Evita afinidad de sesión a menos que sea necesario.
- Habilita drenaje de conexiones para implementaciones suaves.
Consideraciones de seguridad
Seguridad de red
- Aplica políticas de red de Kubernetes para controlar el tráfico.
- Asigna permisos mínimos a cada cuenta de servicio.
- Asegura acceso externo con TLS.
- Restringe interfaces de administración con listas de IP permitidas.
Gestión de secretos
- Usa Secretos de Kubernetes para credenciales y tokens.
- Rota secretos regularmente.
- Nunca codifiques secretos en contenedores o archivos de configuración.
- Usa administradores de secretos externos para una postura de seguridad más fuerte.
Monitoreo y observabilidad
Métricas
- Monitorea KPI clave de aplicación e infraestructura.
- Establece umbrales de alerta accionables.
- Usa paneles para visibilidad en tiempo real.
Registro
- Centraliza registros en todos los servicios.
- Usa formatos estructurados para mejor filtrado.
- Aplica políticas de retención y rotación de registros.
- Define alertas basadas en registros para eventos críticos.
Rastreo
- Habilita rastreo distribuido en todos los servicios.
- Muestrea trazas para equilibrar el rendimiento.
- Correlaciona trazas con registros y métricas para visibilidad completa.
Alertas
- Crea alertas claras y confiables.
- Ajusta umbrales para reducir el ruido.
- Enruta alertas a través de los canales correctos.
- Mantén runbooks para problemas recurrentes.
Estrategia de copias de seguridad
- Automatiza copias de seguridad regulares para sistemas críticos.
- Almacena copias de seguridad en múltiples ubicaciones o regiones.
- Prueba procedimientos de restauración regularmente.
- Mantén documentación de copias de seguridad actualizada y accesible.
Idempotencia
En producción, siempre protege las operaciones críticas contra el procesamiento duplicado:
- Incluye claves de idempotencia en todas las solicitudes de creación de transacciones usando el header
X-Idempotency. - Usa claves explícitas y determinísticas vinculadas a los IDs de tu proceso de negocio (ej. IDs de pedido, referencias de pago) en lugar de depender de claves autogeneradas.
- Valida el header de respuesta
X-Idempotency-Replayedpara distinguir transacciones nuevas de replays en caché. - Define valores de TTL apropiados que coincidan con tu ventana de reintentos — 60–120s para flujos síncronos, 300–600s para asíncronos.
Todos los productos de Lerian soportan idempotencia a través de sus propias convenciones de headers. Para detalles de implementación, estrategias de reintento y una comparación entre productos, consulta Reintentos e idempotencia.
Notas finales
Midaz está listo para producción por diseño. Cuando alineas tu infraestructura con su arquitectura, obtienes:
- Separación limpia de lectura/escritura con CQRS.
- Compatibilidad plug-and-play con servicios administrados en la nube.
- Soporte integrado para observabilidad, conmutación por error y operaciones seguras.
¿Qué sigue?
¿Necesitas ayuda para escalar, migrar o fortalecer tu entorno de producción?
- Lee la guía de implementación de Midaz.
- Contacta a nuestro equipo para soporte personalizado.

