Professional Cloud DevOps Engineer

Descrição da função

Um Professional Cloud DevOps Engineer é responsável por planejar operações de desenvolvimento eficientes que balanceiam a confiabilidade de serviço e a velocidade de entrega. Esses profissionais têm habilidade em usar o Google Cloud Platform para criar canais de entrega de software, implantar e monitorar serviços e gerenciar incidentes, assim como aprender com eles.

Guia do exame de certificação

1. Aplicar os princípios da engenharia de confiabilidade do site a um serviço

    1.1 Balancear a mudança, velocidade e confiabilidade do serviço:

    • Descobrir SLIs (disponibilidade, latência etc.)
    • Definir SLOs e entender SLAs
    • Concordar com as consequências de não atender ao erro de orçamento
    • Construir ciclos de feedback para decidir o que construir a seguir.
    • Automatizar o trabalho

    1.2 Gerenciar o ciclo de vida do serviço:

    • Gerenciar um serviço (por exemplo, apresentar, implantar, manter e desativar um serviço)
    • Planejar a capacidade (por exemplo, gerenciamento de cotas e limites)

    1.3 Garantir uma comunicação e colaboração saudável para as operações:

    • Prevenir o desgaste (por exemplo, configurar processos automáticos para prevenir o desgaste)
    • Adotar uma cultura de aprendizagem
    • Adotar uma cultura livre de humilhação

2. Criar e implementar pipelines de CI/CD para um serviço

    2.1 Projetar pipelines de CI/CD:

    • Artefatos imutáveis com o Container Registry
    • Repositórios de artefatos com o Container Registry
    • Estratégias de implantação com o Cloud Build e o Spinnaker
    • Implantação para ambientes híbridos e em várias nuvens com o Anthos, Spinnaker e Kubernetes
    • Estratégia de controle de versão do artefato com o Cloud Build e o Container Registry
    • Acionadores de pipelines de CI/CD com o Cloud Source Repositories, Cloud Pub/Sub e app GitHub para Cloud Build
    • Testar uma nova versão com o Spinnaker
    • Configurar processos de implantação (por exemplo: fluxos de aprovação)

    2.2 Implementar pipelines de CI/CD:

    • CI com o Cloud Build
    • CD com o Cloud Build
    • Ferramentas de código aberto (por exemplo: Jenkins, Spinnaker, GitLab e Concourse)
    • Autoria e rastreamento de implantações (por exemplo: CSR, Cloud Build e registros de auditoria do Cloud)

    2.3 Gerenciar configurações e segredos:

    • Proteger métodos de armazenamento
    • Rotação secreta e mudanças na configuração

    2.4 Gerenciar a infraestrutura como código:

    • Terraform/Cloud Deployment Manager
    • Controle de versões de código da infraestrutura
    • Fazer alterações na infraestrutura de maneira mais segura
    • Arquitetura imutável

    2.5 Implantar ferramentas de CI/CD:

    • Ferramentas centralizadas x várias ferramentas (único x vários locatários)
    • Segurança das ferramentas de CI/CD

    2.6 Gerenciar ambientes de desenvolvimento diferentes (por exemplo: preparo, produção etc.):

    • Escolher um número de ambientes e a finalidade de cada um
    • Criar ambientes de maneira dinâmica por ramificação de recurso com o GKE e o Cloud Deployment Manager
    • Ambientes de desenvolvimento locais com o Docker, Cloud Code e Skaffold

    2.7 Proteger o pipeline de implantação:

    • Análise de vulnerabilidade com o Container Registry
    • Autorização binária
    • Políticas do IAM por ambiente

3. Implementar estratégias de monitoramento de serviço

    3.1 Gerenciar registros de aplicativos:

    • Coletar registros do Compute Engine, GKE com o Stackdriver Logging e Fluentd
    • Coletar registros de terceiros e estruturados com o Stackdriver Logging e o Fluentd
    • Enviar registros do aplicativo diretamente para a API Stackdriver com o Stackdriver Logging

    3.2 Gerenciar as métricas do aplicativo com o Stackdriver Monitoring:

    • Coletar métricas do Compute Engine
    • Coletar métricas do GKE/Kubernetes
    • Usar o Metrics Explorer para análise de métrica ad hoc

    3.3 Gerenciar a plataforma do Stackdriver Monitoring:

    • Criar um painel de monitoramento
    • Filtrar e compartilhar painéis
    • Configurar o alerta de terceiros no Stackdriver Monitoring (por exemplo: PagerDuty, Slack etc.)
    • Definir políticas de alertas baseadas em SLIs com o Stackdriver Monitoring
    • Automatizar a definição da política de alertas com o Cloud DM ou Terraform
    • Implementar o monitoramento e alerta de SLO com o Stackdriver Monitoring
    • Entender as integrações do Stackdriver Monitoring (por exemplo: Grafana e BigQuery)
    • Usar ferramentas SIEM para analisar registros de auditoria/fluxo (por exemplo: Splunk e Datadog)
    • Projetar uma estratégia de espaço de trabalho do Stackdriver

    3.4 Gerenciar a plataforma do Stackdriver Logging:

    • Ativar os registros de acesso a dados (por exemplo, registro de auditoria do Cloud)
    • Ativar os registros de fluxo da VPC
    • Visualizar os registros no Console do GCP
    • Usar filtros básicos x avançados de geração de registros
    • Implementar métricas com base em registros
    • Entender a diferença entre a exclusão e a exportação de geração de registros
    • Selecionar as opções de geração de registros
    • Implementar uma exportação no nível do projeto / da organização
    • Visualizar registros exportados no Cloud Storage e BigQuery
    • Enviar registros para uma plataforma de registro externa

    3.5 Implementar controles de acesso de registros e monitoramento

    • Definir a ACL para restringir o acesso a registros de auditoria com o IAM e o Stackdriver Logging
    • Definir a ACL para restringir a configuração de exportação com o IAM e o Stackdriver Logging
    • Definir a ACL para permitir a criação de métricas para métricas personalizadas com o IAM e o Stackdriver Monitoring

4. Otimizar o desempenho do serviço

    4.1 Identificar problemas de desempenho no serviço:

    • Avaliar e entender o impacto no usuário (Stackdriver Service Monitoring for App Engine e Istio)
    • Utilizar o Stackdriver para identificar utilização de recursos da nuvem
    • Utilizar o Stackdriver Trace/Profiler para criar o perfil de características de desempenho
    • Interpretar a telemetria da malha de serviço
    • Resolver problemas com a imagem/SO
    • Resolver problemas de rede (por exemplo, registros de fluxo de VPC, registros do firewall, latência, visualização de detalhes da rede)

    4.2 Depurar o código do aplicativo:

    • Instrumentação do aplicativo
    • Stackdriver Debugger
    • Stackdriver Logging
    • Stackdriver Trace
    • Depurar aplicativos distribuídos
    • Servidor de desenvolvimento local do App Engine
    • Stackdriver Error Reporting
    • Stackdriver Profiler

    4.3 Otimizar a utilização do recurso:

    • Identificar o custo do recurso
    • Identificar os níveis de utilização do recurso
    • Desenvolver um plano para otimizar as áreas com maior custo ou menor utilização
    • Gerenciar VMs preemptivas
    • Trabalhar com descontos por uso contínuo
    • Considerações de TCO
    • Considerar os preços de rede

5. Gerenciar incidentes de serviço

    5.1 Coordenar e implementar canais de comunicação durante um incidente de serviço:

    • Definir papéis (o comandante, o líder da comunicação e o líder de operações do incidente)
    • Lidar com as solicitações para avaliar o impacto
    • Oferecer atualizações de status frequentes, internas e externas
    • Registrar as principais mudanças no estado do incidente (Quando foi amenizado? Quando foi normalizado? etc.)
    • Estabelecer canais de comunicação (e-mail, IRC, Hangouts, Slack, telefone etc.)
    • Escalonamento da equipe de resposta e de delegação
    • Evitar exaustão/cansaço
    • Alternar/distribuir papéis
    • Gerenciar o relacionamento das partes interessadas

    5.2 Investigar sintomas de incidentes que afetam o usuário com o IRM do Stackdriver:

    • Identificar as causas prováveis da falha do serviço
    • Avaliar os sintomas de acordo com as causas prováveis e classificar a probabilidade da causa com base no comportamento observado
    • Realizar a investigação da causa com mais probabilidade de estar correta
    • Identificar alternativas para minimizar o problema

    5.3 Minimizar o impacto do incidente para os usuários:

    • Versão de reversão
    • Diminuir/redirecionar o tráfego
    • Desativar o experimento
    • Adicionar capacidade

    5.4 Resolver problemas (por exemplo, Cloud Build e Jenkins):

    • Mudar um código/corrigir bug
    • Verificar correção
    • Declarar situação normalizada

    5.5 Problema com a documentação em um post mortem:

    • Causas principais do documento
    • Criar e priorizar itens de ação
    • Comunicar às partes interessadas sobre um post mortem