Professional Cloud DevOps Engineer

Descripción del puesto

Un Professional Cloud DevOps Engineer es responsable de realizar operaciones de desarrollo eficientes que mantengan un equilibrio entre la confiabilidad de los servicios y su velocidad de entrega. Están capacitados en el uso de Google Cloud Platform para compilar las canalizaciones de entrega de software, implementar y supervisar servicios, y administrar los incidentes y aprender de ellos.

Guía para el examen de certificación

1. Aplica los principios de la ingeniería de confiabilidad de sitios a un servicio

    1.1 Logra un equilibrio entre los cambios, la velocidad y la confiabilidad del servicio:

    • Descubre los SLI (disponibilidad, latencia, etc.).
    • Define los SLO y comprende los ANS.
    • Acepta las consecuencias de superar el porcentaje de error aceptable.
    • Crea ciclos de reacción para decidir qué compilar luego.
    • Automatiza el trabajo manual.

    1.2 Administra el ciclo de vida del servicio:

    • Administra un servicio (p. ej.: presenta un servicio nuevo, impleméntalo, mantenlo y retíralo).
    • Planifica la capacidad (p. ej.: la administración de cuotas y límites).

    1.3 Garantiza la buena comunicación y colaboración para las operaciones:

    • Evita el agotamiento (p. ej.: configura procesos de automatización para evitar el agotamiento).
    • Fomenta una cultura de aprendizaje.
    • Fomenta una cultura sin culpabilización.

2. Crea e implementa canalizaciones de CI/CD para un servicio

    2.1 Diseña canalizaciones de CI/CD:

    • Diseña artefactos inmutables con Container Registry.
    • Diseña repositorios de artefactos con Container Registry.
    • Diseña estrategias de implementación con Cloud Build o Spinnaker.
    • Diseña implementaciones de entornos híbridos y de múltiples nubes con Anthos, Spinnaker y Kubernetes.
    • Diseña estrategias de control de versiones de artefactos con Cloud Build o Container Registry.
    • Diseña activadores de canalizaciones de IC/EC con Cloud Source Repositories, la app de GitHub para Cloud Build o Cloud Pub/Sub.
    • Prueba una versión nueva con Spinnaker.
    • Configura procesos de implementación (p. ej.: flujos de aprobación).

    2.2 Implementa canalizaciones de IC/EC:

    • Implementa la CI con Cloud Build.
    • Implementa la CD con Cloud Build.
    • Implementa herramientas de código abierto (p. ej.: Jenkins, Spinnaker, GitLab y Concourse).
    • Implementa la auditoría y el seguimiento de las implementaciones (p. ej.: CSR, Cloud Build o registros de auditoría de Cloud).

    2.3 Administra la configuración y los secretos:

    • Administra métodos de almacenamiento seguro.
    • Administra la rotación secreta y los cambios en la configuración.

    2.4 Administra la infraestructura como código:

    • Usa Terraform o Cloud Deployment Manager.
    • Administra el control de versiones del código de la infraestructura.
    • Haz que los cambios en la infraestructura sean más seguros.
    • Crea una arquitectura inmutable.

    2.5 Implementa herramientas de CI/CD:

    • Implementa herramientas centralizadas o herramientas múltiples (de un único usuario o de usuarios múltiples).
    • Implementa herramientas de seguridad de CI/CD.

    2.6 Administra entornos de desarrollo diferentes (p. ej.: de etapa de pruebas, de producción, etc.):

    • Decide la cantidad de entornos y su propósito.
    • Crea entornos de forma dinámica para cada rama de función con GKE o Cloud Deployment Manager.
    • Administra entornos de desarrollo locales con Docker, Cloud Code o Skaffold.

    2.7 Protege la canalización de implementación:

    • Análisis de vulnerabilidades con Container Registry
    • Autorización binaria
    • Protege las políticas de IAM por entorno.

3. Implementa estrategias de supervisión de los servicios

    3.1 Administra los registros de las aplicaciones:

    • Recopila registros de Compute Engine, GKE con Stackdriver Logging o Fluentd.
    • Recopila registros estructurados y de terceros con Stackdriver Logging o Fluentd.
    • Envía los registros de la aplicación de forma directa a la API de Stackdriver con Stackdriver Logging.

    3.2 Administra las métricas de la aplicación con Stackdriver Monitoring:

    • Recopila métricas desde Compute Engine.
    • Recopila métricas de GKE o Kubernetes.
    • Usa el explorador de métricas para un análisis de métricas ad hoc.

    3.3 Administra la plataforma de Stackdriver Monitoring:

    • Crea un panel de supervisión.
    • Filtra y comparte paneles.
    • Configura alertas a terceros en Stackdriver Monitoring (p. ej.: PagerDuty, Slack, etc.).
    • Define las políticas de alertas basadas en SLI con Stackdriver Monitoring.
    • Automatiza la definición de la política de alertas con Cloud DM o Terraform.
    • Implementa la supervisión y las alertas de SLO con Stackdriver Monitoring.
    • Aprende sobre las integraciones de Stackdriver Monitoring (p. ej.: Grafana o BigQuery).
    • Usa herramientas SIEM para analizar los registros de flujo o auditoría (p. ej.: Splunk o Datadog).
    • Diseña una estrategia de Stackdriver Workspace.

    3.4 Administra la plataforma de Stackdriver Logging:

    • Habilita los registros de acceso a los datos (p. ej.: registros de auditoría de Cloud).
    • Habilita los registros de flujo de VPC.
    • Mira registros en GCP Console
    • Usa filtros de registros básicos o avanzados.
    • Implementa métricas basadas en registros.
    • Comprende la exclusión y la exportación de registros.
    • Selecciona las opciones para la exportación de registros.
    • Implementa una exportación a nivel de proyecto o a nivel de la organización.
    • Visualiza los registros de exportación en Cloud Storage y BigQuery.
    • Envía los registros a una plataforma de registros externa.

    3.5 Implementa controles de acceso de registro y supervisión:

    • Configura la LCA para restringir el acceso a los registros de auditoría con la IAM o Stackdriver Logging.
    • Configura la LCA para restringir la configuración de exportación con la IAM o Stackdriver Logging.
    • Configura la LCA a fin de permitir la escritura de métricas para métricas personalizadas con la IAM o Stackdriver Monitoring.

4. Optimiza el rendimiento del servicio

    4.1 Identifica los problemas de rendimiento del servicio:

    • Evalúa y entiende el impacto del usuario (Stackdriver Service Monitoring para App Engine o Istio).
    • Usa Stackdriver para identificar el uso de recursos de Cloud.
    • Usa Stackdriver Trace o Stackdriver Profiler para generar un perfil con las características de rendimiento.
    • Interpreta la telemetría de la malla de servicios.
    • Soluciona los problemas con la imagen o el SO.
    • Soluciona problemas de red (p. ej.: registros de flujo de VPC, registros de firewall, latencia y detalles de la red).

    4.2 Depura el código de la aplicación:

    • Instrumentación de aplicaciones
    • Stackdriver Debugger
    • Stackdriver Logging
    • Stackdriver Trace
    • Depuración de aplicaciones distribuidas
    • Servidor de desarrollo local de App Engine
    • Stackdriver Error Reporting
    • Stackdriver Profiler

    4.3 Optimiza el uso de recursos:

    • Identifica los costos de los recursos.
    • Identifica los niveles de uso de los recursos.
    • Desarrolla un plan para optimizar las áreas con mayores costos o menor uso.
    • Administra VM interrumpibles.
    • Trabaja con descuentos por compromiso de uso.
    • Ten en cuenta las consideraciones del TCO.
    • Considera el precio de la red.

5. Administra los incidentes del servicio

    5.1 Coordina las funciones e implementa canales de comunicación durante un incidente en el servicio:

    • Define funciones (comandante de incidentes, líder de comunicaciones, líder de operaciones).
    • Controla las solicitudes para la evaluación del impacto.
    • Proporciona actualizaciones de estado frecuentes, internas y externas.
    • Registra los cambios principales en el estado del incidente (cuándo se mitigó el incidente, cuándo se solucionó, etc.).
    • Establece canales de comunicación (correo electrónico, IRC, Hangouts, Slack, teléfono, etc.).
    • Escala la delegación y el equipo de respuesta.
    • Evita el agotamiento.
    • Rota o entrega funciones.
    • Administra las relaciones entre las partes interesadas.

    5.2 Investiga los síntomas de incidentes que tienen un impacto en los usuarios con Stackdriver IRM:

    • Identifica las posibles causas de la falla de servicio.
    • Evalúa los síntomas frente a las posibles causas; clasifica las probabilidades de la causa según el comportamiento observado.
    • Realiza una investigación para aislar la causa real más probable.
    • Identifica alternativas para mitigar el problema.

    5.3 Mitiga el impacto del incidente en los usuarios:

    • Revierte el lanzamiento.
    • Desvía o redirecciona el tráfico.
    • Desactiva el experimento.
    • Agrega capacidad.

    5.4 Resuelve problemas (p. ej.: Cloud Build o Jenkins):

    • Cambia el código o corrige el error.
    • Verifica la corrección.
    • Declara que se solucionó el problema.

    5.5 Documenta el problema en un proceso post mortem:

    • Documenta las causas raíz.
    • Crea y prioriza elementos de acción.
    • Comunícales el proceso post mortem a las partes interesadas.