Una plataforma de analítica en tiempo real
Recopilación y procesamiento de un flujo de eventos con paneles en tiempo real en Go, PostgreSQL y Redis.
Tecnología
Orquestación de contenedores: autoescalado, autorrecuperación, despliegues fluidos y gestión de la configuración.
He usado Kubernetes durante cinco años para orquestar aplicaciones contenedorizadas en producción donde importan la tolerancia a fallos, la escalabilidad y los despliegues predecibles. La plataforma asume lo que antes requería trabajo manual: distribuir los contenedores entre los nodos, reiniciar los procesos caídos, equilibrar la carga y escalar según el tráfico. Describo la infraestructura de forma declarativa como manifiestos y comprendo las abstracciones clave: el Pod como unidad mínima de ejecución, el Deployment para gestionar réplicas y actualizaciones fluidas, el StatefulSet para cargas con estado, el DaemonSet, el Service para el acceso de red y el Ingress para el enrutamiento del tráfico externo. Traslado la configuración y los secretos a ConfigMap y Secret, separándolos de las imágenes. Presto especial atención a la salud de las aplicaciones: configuro sondas de liveness, readiness y startup para que el tráfico llegue solo a los pods listos y los que se quedan colgados se reinicien. Establezco correctamente las requests y limits de CPU y memoria, lo cual es crítico para la planificación y la estabilidad del clúster, y diseño las aplicaciones para un apagado ordenado con manejo de la señal SIGTERM. Para el escalado uso el Horizontal Pod Autoscaler según métricas de carga, y para todo el clúster, el autoescalador de nodos. Despliego las versiones con estrategias de rolling update y, cuando es necesario, canary y blue-green, para reducir el riesgo y revertir con rapidez. Organizo la gestión de las aplicaciones mediante charts de Helm y el enfoque GitOps, donde el estado del clúster se guarda en Git y se aplica de forma automática, lo que garantiza la reproducibilidad y la auditoría de los cambios. Construyo la observabilidad sobre Prometheus y Grafana para las métricas, la recopilación centralizada de registros y el trazado distribuido para encontrar rápidamente las causas de los incidentes. Resuelvo las cuestiones de seguridad de red mediante NetworkPolicy, la separación de permisos por RBAC y el aislamiento por namespace. Comprendo bien los detalles operativos: el desalojo de pods, los presupuestos de disponibilidad (PodDisruptionBudget), la afinidad y antiafinidad para la distribución de la carga, y el trabajo con volúmenes persistentes. Kubernetes en mis proyectos no es una herramienta de moda por sí misma, sino una forma de dotar al sistema de autorrecuperación, elasticidad y despliegues seguros sin tiempo de inactividad bajo carga real de usuarios.
Recopilación y procesamiento de un flujo de eventos con paneles en tiempo real en Go, PostgreSQL y Redis.
Extracción gradual de microservicios de un monolito sin tiempo de inactividad: límites de dominio, eventos y orquestación en Kubernetes.