El caso
La corrección del miércoles que nadie vio. El error empezó en el despliegue, y solo apareció el viernes.
La tienda de Isaac publicó una nueva versión del checkout un miércoles por la tarde, a mano, sin pruebas automáticas. En los días siguientes, una de cada veinte compras fallaba en el pago. Nadie lo notó, porque no existía ninguna alerta. Solo el viernes, con las quejas llegando por WhatsApp, el equipo encontró el problema.
Este post parte de Google Cloud: el punto de partida, que presenta los servicios de Google Cloud. También depende de Kubernetes y GKE y de Serverless y Cloud Run, porque ahí es donde el software se ejecuta una vez entregado.
El problema
Entregar a mano es entregar a ciegas
Cuando cada despliegue depende de un paso manual, el equipo se equivoca de una forma distinta cada vez. Y cuando nadie mide el sistema en producción, el primero en enterarse del problema es el cliente.
Entrega automatizada
Del código a producción, sin paso manual
La entrega automatizada (CI/CD) sigue un camino fijo: el código se prueba, se empaqueta y llega a producción por el mismo proceso, cada vez.
Build (Cloud Build)
Ejecuta las pruebas y genera el artefacto, como una imagen de contenedor, a partir del código.
Almacenamiento de artefactos (Artifact Registry)
Guarda las imágenes y los paquetes generados, con versiones y políticas de limpieza, para que el mismo artefacto llegue a todos los entornos.
Entrega continua (Cloud Deploy)
Lleva la misma versión del entorno de prueba al de producción, con aprobación cuando la tienda la necesita.
En el caso de Isaac, un pipeline habría ejecutado las pruebas de pago antes del despliegue, y la versión solo llegaría a producción después de superarlas.
Observabilidad
Saber lo que pasa antes de que el cliente se queje
La observabilidad es la capacidad de entender el estado del sistema a partir de los datos que emite. En Google Cloud, la base es Cloud Monitoring (métricas, paneles y alertas), Cloud Logging (registros) y Cloud Trace (el camino de cada solicitud entre servicios).
SRE
Confiabilidad medida, no prometida
La práctica de SRE (Site Reliability Engineering, ingeniería de confiabilidad de sitios) trata la confiabilidad como una meta medida. El equipo define un SLO (service level objective, objetivo de nivel de servicio), un objetivo medible, como "99,9% de las compras completadas sin error en el mes". Cuánto puede fallar el sistema sin romper ese objetivo es el presupuesto de error (error budget).
Mientras quede presupuesto, el equipo puede lanzar novedades. Cuando se agota, el foco vuelve a la estabilidad. Así, la decisión de lanzar o de frenar sale de un número, y no de una discusión.
APIs
Exponer servicios con control
Una API es la forma en que un sistema ofrece servicios a otros sistemas. Un gateway (puerta de enlace) se queda en la entrada y recibe las llamadas antes de que lleguen al servicio: verifica quién llama, limita el volumen y registra cada uso.
| Servicio | Para qué sirve | Cuándo tiene sentido |
|---|---|---|
| API Gateway | Gateway gestionado para servicios sin servidor | Una API simple, sobre funciones o Cloud Run |
| Apigee | Gestión completa de APIs | Muchas APIs, con planes de uso, portal para desarrolladores y análisis |
En la tienda, la API que consulta el inventario puede exponerse a los socios de entrega. El gateway limita a cada socio a un número de llamadas por minuto, y el registro muestra quién usó qué.
Términos clave
Cinco términos para fijar
Toca la tarjeta para ver la definición.
Prueba rápida
Tres preguntas, estilo examen
01
El pipeline de la tienda genera una imagen de contenedor en cada versión. ¿Qué servicio guarda esas imágenes para que lleguen iguales a todos los entornos?
02
El equipo quiere recibir una alerta cuando la tasa de compras con error supere el 1% durante cinco minutos. ¿Qué servicio hace eso?
03
A fin de mes, el presupuesto de error del checkout ya se agotó. ¿Qué práctica de SRE debe seguir el equipo?
En cualquier examen de nube, la pregunta de operación suele ser la misma: cómo llega el software al cliente, y cómo sabe el equipo que está funcionando. En Google Cloud, la respuesta pasa por la entrega automatizada, el monitoreo y las metas de SRE.