Saltar a contenido

Despliegue

La capa de infraestructura como codigo que levanta toda la plataforma sobre Kubernetes. No describe que hace cada servicio, sino como se pone en marcha todo de un tiron y de forma reproducible.

Lo mas interesante es que hay dos destinos de despliegue que comparten exactamente los mismos manifiestos de aplicacion. Uno es un laboratorio local: un cluster k3s de tres maquinas virtuales en el portatil. El otro es la nube: un cluster gestionado GKE en Google Cloud. Es un lift-and-shift real: la misma capa de aplicacion, las mismas imagenes y la misma configuracion sirven a los dos, y lo unico que cambia es la capa que crea el cluster. Esto demuestra en la practica la portabilidad que promete Kubernetes.

En el laboratorio, un unico script orquesta cinco fases mas la siembra de datos: Terraform crea las maquinas virtuales, Ansible instala k3s, Helm despliega la observabilidad (Prometheus, Grafana, Loki), se construyen e importan las imagenes en los nodos y se aplica el nucleo de la plataforma. Al final se siembran los sensores y una clave de acceso.

Cluster k3s: un control-plane apartado con taint y dos workers con sus pods

El laboratorio incluye recortes conscientes para caber en un portatil, documentados como decisiones: un solo broker de Kafka en lugar de tres, estado del streaming en memoria en vez de en disco, y una sola particion por topic. Una leccion concreta quedo grabada: el nodo de control no se desactiva del todo como cargas, sino que se marca con un taint para que repela trabajo sin perder la red de pods; desactivarlo por completo dejaba sin metricas al autoescalado.

Sistema completo en GKE: node pool spot, lakehouse y tunel de Cloudflare

En la nube, la misma plataforma corre sobre GKE con varias piezas de infraestructura propias. El node pool usa maquinas spot, mucho mas baratas, y su ciclo de vida se controla con un contador de nodos: encender pone dos nodos, apagar los baja a cero conservando el cluster y los discos, de modo que los datos persisten y en reposo solo se paga el almacenamiento. El acceso a Grafana no usa un balanceador de carga con IP publica, sino un tunel saliente de Cloudflare que publica el panel en una URL HTTPS fija. Y el trabajo de exportacion accede al almacenamiento y al warehouse mediante Workload Identity, sin manejar claves: el pod toma las credenciales de la identidad del propio cluster.