1. Introducción

Última actualización: 13/05/2026
Investiga una interrupción de GKE con la extensión de SRE y crea un informe post mortem atractivo
Te damos la bienvenida a este taller de SRE, dirigido a operadores que desean experimentar con arneses de SRE en Google Cloud.
En este codelab, se te guiará por el proceso:
- Instalar un clúster de GKE basado en una demostración de microservicios de código abierto y conocida
- Crea una interrupción de diferentes maneras (algunas más llamativas, otras más sutiles).
- Instala y usa la CLI de Antigravity (o un arnés similar) y la extensión de SRE para la siguiente parte.
- Investigar y, con suerte, solucionar la interrupción
- Crea un informe a posteriori.
- Usa las habilidades de generación de gráficos para crear un gráfico fundamentado que permita a los usuarios comprender qué sucedió y cuándo.
Esta es la estructura paso a paso del codelab:

El objetivo de este taller es el siguiente:
- Demostrar las capacidades de la extensión de SRE y mostrarte lo que puedes hacer con ella: configuración de OneMCP, Safe Executor, investigación, generación de análisis post mortem, gráficos y fragmentos de CSV
- Enseñarte las habilidades necesarias para investigar tu propio caso de Google Cloud
Hito 1: Configuración del entorno y simulación de interrupciones
El objetivo de este hito es configurar una aplicación de demostración de Kubernetes en GKE Autopilot, instalar la CLI de Antigravity y activar de forma artificial situaciones de falla del clúster de GKE para simular incidentes de producción.
Hito 2: Investigación y mitigación con la extensión de SRE
Después de interrumpir el entorno, usarás herramientas de la CLI basadas en agentes equipadas con la extensión de SRE para descubrir sistemáticamente la infraestructura, priorizar los problemas, implementar el patrón de ejecución seguro para las correcciones y verificar el estado del clúster.
Hito 3: Análisis posterior y generación de gráficos
Una vez que se resuelva, generarás un documento estructurado de análisis posterior del incidente y usarás las APIs de GCM (Google Cloud Monitoring) para extraer datos de métricas reales y crear gráficos visuales para documentar cuándo y cómo ocurrió la interrupción.
Qué compilarás
En este codelab, investigarás y corregirás las interrupciones de GKE con la extensión de SRE. Harás lo siguiente:
- Simula una interrupción de GKE con el bloqueo de políticas de red, implementaciones canary con errores y actualizaciones de reglas de firewall.
- Clasifica la interrupción del clúster con un asistente de CLI potenciado por la extensión de SRE.
- Implementa los pasos de corrección de forma segura con el patrón Safe Executor.
- Genera un documento a posteriori integral.
- Genera gráficos de las métricas de incidentes con consultas de series temporales de Google Cloud Monitoring.
Qué aprenderás
- Cómo inspeccionar los recursos y las políticas de Kubernetes de GKE con las habilidades de la extensión de SRE
- Cómo aprovechar el patrón Safe Executor para ejecutar comandos sugeridos por el agente con una evaluación de riesgos adecuada
- Cómo usar la habilidad
monitoring-graphspara generar gráficos fundamentados de métricas directamente desde GCM - Cómo documentar los hallazgos de incidentes en un formato post mortem estructurado
Requisitos
- Un proyecto de Google Cloud con facturación habilitada
- Herramientas de línea de comandos:
gcloud,kubectlyterraform. - La CLI de Antigravity instalada de forma local o en Cloud Shell
- Un IDE (p. ej., VS Code, IntelliJ, RubyMine o Vim)
¿Por qué usar la extensión de SRE y la CLI de agentes?
Las interrupciones de producción son rápidas y requieren correlación en varios subsistemas (recursos de Kubernetes, redes de VPC, métricas de Cloud Monitoring, permisos de IAM). La extensión de SRE permite que los asistentes de la CLI basados en agentes (como la CLI de Antigravity) actúen como copilotos autónomos, ejecuten guías precompiladas, consulten gráficos de supervisión y sugieran correcciones seguras, mientras mantienen al operador humano en el circuito.
2. Cómo prepararte
Elige una de las siguientes opciones: Configuración del entorno a tu propio ritmo si deseas ejecutar este
codelab en tu propia máquina, o inicia Cloud Shell si deseas ejecutar este codelab por completo en la nube.
Configuración del entorno de autoaprendizaje
- Accede a consola de Google Cloud y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.



- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla cuando quieras.
- El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como
PROJECT_ID). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usa el mismo durante todo el proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.
Inicia Cloud Shell
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
En Google Cloud Console, haz clic en el ícono de Cloud Shell en la barra de herramientas en la parte superior derecha:

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Todo tu trabajo en este codelab se puede hacer en un navegador. No es necesario que instales nada.
3. Requisitos previos (instalación)
Para este instructivo, debes instalar lo siguiente:
1. Python y uv
python y uv (administrador de paquetes para Python). Asegúrate de tener instalado uv:
$ curl -LsSf https://astral.sh/uv/install.sh | sh
¿Por qué UV? Si bien puedes usar el administrador de Python que prefieras, usar uv garantizará que la configuración de ENV/PATH para Python sea igual para ti y para la CLI de Antigravity, por lo que tu experiencia de shell será casi la misma que la de la CLI de Antigravity. Si usas virtualenv , por ejemplo, Antigravity CLI se verá obligada a hacer cosas como "source .env/venv/bin/activate && my-original-command" para imitar tu entorno.
2. CLI de Antigravity (agy)
Para instalar la CLI oficial de Antigravity (el comando agy), abre la terminal y ejecuta el instalador de arranque:
Para macOS y Linux:
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
Para Windows (PowerShell):
irm https://antigravity.google/cli/install.ps1 | iex
Esta secuencia de comandos detectará de forma dinámica tu SO y arquitectura, y descargará la versión compilada más reciente de
agy
binario y configura tu PATH. Reinicia tu terminal o vuelve a cargar la configuración del shell para que los cambios tengan efecto.

Autenticación
Necesitas una clave de API de Google AI Studio.
Sigue estos pasos para exportar tu clave de API:
export GEMINI_API_KEY="your-api-key"
Autentícate con gcloud:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
gcloud auth application-default login
Configura tu entorno de trabajo e implementa la aplicación de demostración de microservicios
Clonemos la aplicación de demostración de microservicios y, luego, implementemos la infraestructura y la aplicación a través de Terraform.
Este es el momento en el que puedes abrir tu IDE (Visual Studio Code, IntelliJ, RubyMine, etc.) y abrir la carpeta.
# 1. Find an empty directory, and download this repo.
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo/terraform
# 2. Update project ID to your gcloud project ID
sed -i 's/<project_id_here>/YOUR_ACTUAL_PROJECT_ID/g' terraform.tfvars
# 3. Deploy the microservices-demo application in GKE autopilot
# If there is a prompt answer yes and continue. This step can take up to 10 mins for provision gke autopilot cluster and deploy microservices-demo application
terraform init
terraform plan
terraform apply
# 4. Verify the IP address of frontend-service to access the online-boutique application
kubectl get service frontend-external | awk '{print $4}'
# 5. Find an empty directory , and download this repo.
git clone https://github.com/palladius/sre-testing-suite.git
cd sre-testing-suite/test-scenarios/microservices-demo-gke/breakage-scenarios
Para probar tu configuración, puedes acceder a http://[DIRECCIÓN IP] y cargar la app de Online Boutique.
Configura tu entorno de trabajo para sre-antigravity-cli-extension
# 1. Install the SRE Extension plugin globally
git clone https://github.com/gemini-cli-extensions/sre.git ~/.gemini/config/plugins/sre-extension
# 2. Launch the Antigravity CLI (agy)
agy # This runs the CLI under your current breakage-scenarios folder.
# Login with your corporate or personal account when prompted.
# 3. Within the agy agent prompt, configure your MCP servers and GCP project
Use the gcp-mcp-setup skill to setup my GCP project "<gcp_project_id>" with email jane-doe-sre@credible-company.com
4. Paso 1: Simula la interrupción (situaciones de falla)
En este paso, interrumpiremos intencionalmente el clúster de GKE implementado para simular un incidente de producción del mundo real. Tienes tres situaciones para elegir (o puedes probar las tres de forma secuencial):
Situación 1: Bloqueo de la red del servicio de confirmación de compra (estándar o piloto automático)
En este caso, se simula una conexión interrumpida entre el frontend y el servicio de confirmación de compra aplicando un NetworkPolicy de Kubernetes que actúa como un "agujero negro" de tráfico.
- Navega a la carpeta de la situación:
cd breakage1-checkout
- Activa la falla:
Esto crea una NetworkPolicy llamada./break.sh
update-checkout-from-frontenden el espacio de nombresdefaultque rechaza el tráfico de entrada acheckoutservice, a menos que provenga de un Pod con la etiquetaapp: frontend-checkout-test(que no existe). - Intenta comprar artículos en el frontend de Online Boutique. La página de confirmación de compra se bloqueará o mostrará un error HTTP 500.
Situación 2: Lanzamiento de versión Canary con errores (piloto automático con Istio)
En este caso, se simula una implementación incorrecta en la que se lanza una versión con errores del frontend a través de una implementación de versiones canary de Kubernetes.
- Navega a la carpeta de la situación:
cd ../breakage2-canary
- Activa la falla:
Esto implementa una implementación de versiones canary./break.sh
frontend-canaryque tiene un error tipográfico en sus variables de entorno:PRODUCT_CATALOG_SERVICE_ADDRestá configurado comoproductcatalogservices:3550en lugar deproductcatalogservice:3550. - Carga la página principal del frontend. En ocasiones, fallará (según los pesos de enrutamiento) porque el servicio canary no puede resolver el catálogo de productos.
Situación 3: Bloqueo del clúster del firewall de VPC
En este caso, se simula un error en la configuración del firewall de VPC que bloquea todo el tráfico de entrada al clúster de GKE.
- Navega a la carpeta de la situación:
cd ../breakage3-firewall
- Activa la falla:
Esto crea una regla de firewall a nivel de la VPC llamada./break.sh
frontend-ingress-v2conpriority=1y la acciónDENYque segmenta el tráfico de entrada para los puertos80,443y8080. - El sitio web de Online Boutique dejará de estar disponible por completo y las solicitudes agotarán el tiempo de espera.
5. Paso 2: Investigación de la interrupción con la extensión de SRE
Ahora que la aplicación no funciona, comencemos la investigación con tu asistente de la CLI (CLI de Antigravity).
- Regresa a la carpeta principal de situaciones de interrupción y ejecuta el asistente de la CLI:
cd .. agy
- Pídele al asistente que realice una detección de infraestructura y una verificación de diagnóstico:
Investigate my GKE cluster for outages. Are all services healthy? - Qué hace el agente:
- Activa las habilidades de
investigation-entrypointygcp-playbooks. - Enumera los pods, las implementaciones y los servicios de Kubernetes para ubicar los destinos con errores.
- Inspecciona las políticas de red (para el caso 1), los parámetros de configuración de implementación (para el caso 2) o las reglas de firewall (para el caso 3).
- Activa las habilidades de
- En el caso del escenario 1, el agente debe informar lo siguiente: 🔴 Se identificó un incidente: Un
NetworkPolicyllamadoupdate-checkout-from-frontendestá aislando los pods decheckoutservice. - En la situación 2, el agente debe informar lo siguiente: 🔴 Se identificó el incidente: La implementación
frontend-canaryestá configurada con un extremo de servicio no válidoproductcatalogservices:3550en lugar deproductcatalogservice:3550. - En el caso del escenario 3, el agente debe informar lo siguiente: 🔴 Se identificó un incidente: Una regla de firewall de VPC
frontend-ingress-v2está rechazando el tráfico de entrada en los puertos80,443y8080.
6. Paso 3: Mitigación y corrección de la interrupción
Usemos el patrón Safe Executor de la CLI para solucionar la interrupción.
- Pídele a tu asistente de la CLI que proponga y aplique una corrección:
Propose a fix for the outage and apply it. - Safe Executor in Action:
- Antes de ejecutar sugerencias de comandos, la extensión de SRE ejecuta una auditoría de seguridad con la habilidad
safe-sre-investigator. - Te mostrará el comando exacto que pretende ejecutar y calificará el riesgo (p.ej., bajo, medio o alto).
- En el caso de la situación 1, se propondrá lo siguiente:
kubectl delete networkpolicy update-checkout-from-frontend
- En el caso 2, se propondrá lo siguiente:
kubectl delete deployment frontend-canary
- En el caso de la situación 3, se propondrá lo siguiente:
gcloud compute firewall-rules delete frontend-ingress-v2 --quiet
- Antes de ejecutar sugerencias de comandos, la extensión de SRE ejecuta una auditoría de seguridad con la habilidad
- Confirma la ejecución del comando cuando te lo solicite la CLI.
- Para verificar que el sitio web esté en funcionamiento y sea completamente funcional, actualiza la página principal de Online Boutique.
- En tu shell, puedes ejecutar la secuencia de comandos de verificación del escenario correspondiente para verificar el estado:
./breakage1-checkout/check.sh # or ./breakage2-canary/check.sh # or ./breakage3-firewall/check.sh
7. Paso 4: Genera el informe post mortem del incidente
Una parte esencial del ciclo de vida de la SRE es documentar el incidente para que el equipo pueda aprender de él. Automatizaremos este proceso con la habilidad postmortem-create.
- En tu asistente de la CLI, pídele que escriba el documento de análisis posterior al incidente:
Create a postmortem for the checkout service network policy outage. - El agente recopilará detalles sobre lo siguiente:
- Hora de inicio del incidente (recuperada del historial o los registros de comandos de la CLI)
- La causa raíz (la NetworkPolicy de bloqueo).
- Las medidas que se tomaron para mitigar el problema
- Se escribirá un nuevo archivo Markdown llamado
postmortem.mden tu espacio de trabajo. - Abre
postmortem.mdpara revisar los detalles. Verás secciones como las siguientes:- Resumen del incidente
- Cronograma de eventos
- Análisis de causa raíz (RCA)
- Elementos de acción y medidas preventivas
8. Paso 5: Agrega gráficos de métricas fundamentadas
Para que el análisis post mortem sea profesional, necesitamos pruebas visuales del incidente. Usaremos la habilidad monitoring-graphs para recuperar datos de series temporales de Google Cloud Monitoring (GCM) y generar un gráfico en PNG que muestre el aumento repentino de errores.
- Pídele a tu asistente de la CLI que genere el gráfico y lo agregue al informe post mortem:
Query GCM for frontend HTTP request error rates over the last 1 hour, generate a line chart, and embed it into postmortem.md. - Detrás de escena:
- El agente llama a la secuencia de comandos de Python
monitoring-graphspara consultar Cloud Monitoring. - Recupera métricas (p.ej.,
kubernetes.io/container/restart_countoloadbalancing.googleapis.com/https/request_count). - Traza el gráfico con
matplotliby lo guarda comoincident_metrics.png. - Actualiza el archivo
postmortem.mdinsertando un vínculo de imagen:
- El agente llama a la secuencia de comandos de Python
- Abre el archivo
incident_metrics.pnggenerado para ver el gráfico que ilustra los momentos exactos en los que el clúster dejó de funcionar y cuando el tráfico volvió a la normalidad.
9. Paso 6: Limpieza
Para asegurarnos de que tu cuenta de Google Cloud no incurra en cargos innecesarios, limpiemos la infraestructura implementada.
- Navega a la carpeta de Terraform:
cd ../../microservices-demo/terraform
- Ejecuta el comando destroy:
terraform destroy -auto-approve
- Verifica que todos los recursos de GKE de GCP se hayan borrado correctamente.
10. ¡Felicitaciones!
Completaste el codelab de investigación de interrupciones y fallas del clúster de GKE.
Temas abordados:
- Implementaste la demostración de microservicios de Online Boutique de 10 niveles en GKE.
- Se simularon tres interrupciones de SRE del mundo real (rechazo de política de red, lanzamiento de versión canary con errores y rechazo de regla de firewall de VPC).
- Usaste la extensión de SRE para la CLI de Antigravity para descubrir y diagnosticar las interrupciones.
- Se aprovechó el patrón Safe Executor para revisar y ejecutar comandos de corrección.
- Se creó un análisis a posteriori profesional en Markdown.
- Se consultaron las métricas de Cloud Monitoring para generar y, luego, incorporar automáticamente un gráfico de incidentes fundamentado.
Para obtener más detalles sobre cómo extender tu agente de CLI, consulta la página de GitHub de la extensión de SRE.