Monitoreo de Clústeres y Microservicios en Google Cloud

Clase 17 de 20Curso de Contenedores y Aplicaciones en la Nube con Google Cloud Platform

Resumen

¿Qué es un dashboard de monitoreo en Cloud Operations?

Un dashboard de monitoreo en Cloud Operations es esencial para gestionar tus aplicaciones en la nube, ya que te permite visualizar y analizar el rendimiento de tus servicios en tiempo real. Los tableros predefinidos pueden actuar como plantillas, y a través de la configuración automatizada, puedes crear tableros a partir de comandos sin necesidad de construirlos manualmente.

¿Cómo configuramos y gestionamos los dashboards?

Existen tableros preconfigurados que Google Cloud ofrece, pero también puedes generar los tuyos mediante comandos. Esta automatización ahorra tiempo, permitiéndote centrarte en analizar los datos. La plataforma también ofrece una visión general de tus clústeres, permitiéndote analizar cada nodo, namespace y pod.

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: product-catalog
spec:
  host: product-catalog.default.svc.cluster.local
  trafficPolicy:
    loadBalancer:
      simple: LEAST_CONN

¿Cómo identificamos el rendimiento y problemas en servicos?

Cloud Operations proporciona diferentes herramientas para monitorear y analizar el rendimiento. Puedes observar métricas clave como la utilización de CPU o memoria, y gestionar logs de servicios de forma eficiente.

¿Qué es Tracing?

Tracing es una funcionalidad integral del monitoreo. Te permite visualizar las invocaciones de servicios, identificar cuellos de botella y analizar dónde y por qué existen latencias adicionales. Si detectas un patrón de fallas, podrás abordarlo antes de que impacte negativamente la experiencia del usuario.

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: product-catalog
spec:
  hosts:
    - product-catalog.default.svc.cluster.local
  http:
    - route:
        - destination:
            host: product-catalog.default.svc.cluster.local
            subset: v1
          weight: 75
        - destination:
            host: product-catalog.default.svc.cluster.local
            subset: v2
          weight: 25

¿Cómo gestionamos despliegues y detectamos errores?

El uso de técnicas como el "canary release" y la capacidad de realizar rollbacks de versiones es fundamental en la gestión de servicios. Esto implica la implementación gradual de una nueva versión mientras aún mantienes la antigua para minimizar el impacto potencial de errores inexperimentados.

¿Qué acciones tomamos en caso de problemas?

Al identificar que un servicio está fuera de los parámetros operativos aceptables, la acción recomendada es retirarlo rápidamente de producción. Utilizamos comandos como kubectl delete para revertir al estado anterior y asegurar que el sistema recupere su estabilidad.

kubectl apply -f destination-rule.yaml
kubectl apply -f virtual-service.yaml
kubectl apply -f product-catalog-v2-deployment.yaml

¿Qué sucede después de un rollback?

Al volver a una versión estable, el sistema no recupera instantáneamente el presupuesto de error consumido. Esta métrica se reanuda después de un período de cumplimiento establecido. Durante este tiempo, el equipo de desarrollo se enfoca en evitar que la falla ocurra de nuevo.

Así que no te preocupes si te encuentras con problemas, cada situación es una oportunidad para aprender y mejorar tus prácticas DevOps. ¡Sigue adelante con confianza y mantén siempre la vista en el horizonte de la mejora continua!