Neste documento, descrevemos como configurar a análise no pipeline de entrega se você usa o Google Cloud Observability como sistema de monitoramento.
Se você usa um provedor de monitoramento diferente, é necessário definir uma análise personalizada, que inclui a criação de um contêiner para ingerir e avaliar métricas e outros dados do seu provedor.
Antes de começar
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Verifique se você tem as permissões necessárias para concluir este guia.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Compute Engine e Cloud Deploy, se alguma delas ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Verifique se você tem as permissões necessárias para concluir este guia.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Compute Engine e Cloud Deploy, se alguma delas ainda não estiver ativada:
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão pelo papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
Funções exigidas
Para receber as permissões necessárias para criar e usar jobs de análise, peça ao administrador para conceder a você os seguintes papéis do IAM na conta do seu projeto:
- Executor do Cloud Deploy (
roles/clouddeploy.jobRunner) - Leitor de alertas do Monitoring (
roles/monitoring.alertPolicyViewer) - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Para garantir que a conta de serviço do Cloud Deploy tenha as permissões necessárias para criar e usar automações, peça ao administrador para conceder os seguintes papéis do IAM à conta de serviço do Cloud Deploy no seu projeto:
- Usuário da conta de serviço do IAM (
roles/iam.serviceAccountUser) - Lançador do Cloud Deploy (
roles/clouddeploy.releaser) - Operador do Cloud Deploy (
roles/clouddeploy.operator)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço do Cloud Deploy as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Configurar a análise no Cloud Deploy
A configuração da análise de implantação consiste nas seguintes etapas:
Configure um job de análise no pipeline de entrega.
Execute o pipeline para fazer a análise.
Definir políticas de alertas
Você define políticas de alertas para receber métricas do Google Cloud Observability. Uma política de alertas do Google Cloud Observability descreve quando e como você quer receber notificações quando os dados de monitoramento atendem a critérios especificados.
A análise do Cloud Deploy usa esses alertas para entrar em ação com base nas circunstâncias que eles indicam.
Por exemplo, é possível configurar uma política de alertas no aplicativo em produção
para enviar um alerta se a latência de resposta HTTP estiver muito alta. Com base nesse alerta, o job de análise pode acionar uma
automação repairRolloutRule
para reverter o lançamento.
Como outro exemplo, é possível criar uma política de alertas semelhante no aplicativo implantado no ambiente de staging. Se nenhum alerta for acionado durante a execução do job de análise, ele poderá acionar uma automação promoteReleaseRule para promover o lançamento à produção.
Criar a análise
Para criar um job de análise para o pipeline de entrega do aplicativo, configure a análise na configuração do pipeline e aplique o arquivo de configuração.
Configurar um job de análise
Esta seção descreve como configurar um job de análise do Cloud Deploy para uso com o Google Cloud Observability.
O job de análise é configurado como parte da definição do pipeline de entrega,
dentro de uma estrofe strategy. Isso pode estar dentro de qualquer estratégia, canary ou
standard. Se você quiser configurar a análise por fase, use um canário personalizado (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).
Um job de análise consiste nos seguintes elementos:
Uma duração
Essa duração especifica por quanto tempo o job de análise é executado. Se a duração expirar e não forem detectados alertas do Google Cloud Observability, a análise será considerada um sucesso e o lançamento vai continuar.
Uma ou mais verificações, correspondentes às políticas de alertas no seu sistema de monitoramento
Cada verificação inclui o seguinte:
Um documento de identidade
Uma ou mais políticas de alertas
Ou seja, referências a uma ou mais políticas de alertas do Google Cloud Observability.
- Um ou mais rótulos usados para identificar uma política de alertas específica. Como uma política de alertas do Google Cloud Observability pode monitorar muitos aplicativos, esses rótulos permitem restringir a verificação a um ou mais aplicativos específicos.
É possível usar parâmetros do sistema como chaves para rótulos aqui.
Confira a sintaxe para configurar um job de análise ao usar uma estratégia de implantação standard:
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
Em que:
DURATIONÉ o tempo, em segundos, para executar o job de análise. Depois que a duração expirar, o job será concluído. Se a análise falhar (o contêiner retornar um código de saída diferente de zero), o job será concluído (
FAILED) antes do fim da duração.CHECK_IDÉ o ID de uma verificação individual na sua análise. Cada ID precisa ser exclusivo neste job de análise. É possível ter uma ou mais verificações em um job de análise.
ALERT_POLICY_IDÉ o ID da política de alertas do Google Cloud Observability que você está usando para a verificação. Para encontrar o ID da política de alertas, execute
gcloud monitoring policies list. Você precisa do ID totalmente qualificado, que tem esta aparência:projects/project-redacted/alertPolicies/01234567890123456789É possível que o identificador retornado inclua
/conditions/13842666848149128276após o ID da política. Não inclua isso como parte do ID da política.KEYeVALUESão um par de chave-valor para um rótulo, usado para considerar apenas alertas específicos. Por exemplo, você pode usar um rótulo para que uma verificação considere apenas alertas em uma carga de trabalho específica.
Você pode usar parâmetros do sistema para valores aqui.
Confira um exemplo que usa um parâmetro do sistema:
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
Essa configuração cria um job de análise. Embora haja várias verificações, essa configuração cria apenas um job.
Se nenhuma das políticas de alerta configuradas enviar alertas, o job será concluído e o lançamento vai continuar. Se alguma política disparar um alerta, o job será interrompido
com o estado FAILED, e o lançamento vai falhar (com o estado FAILED, a menos que
você escolha
ignorar a falha do job).
Aplicar o arquivo de configuração do pipeline de entrega
Para criar um pipeline de entrega com o job de análise, aplique o arquivo de configuração usando o seguinte comando:
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
Substitua:
FILECom o nome do seu arquivo de configuração do pipeline de entrega,
clouddeploy.yamlou qualquer nome que você tenha dado a ele.REGIONCom a região em que você está criando o pipeline de entrega.
PROJECT_IDCom o ID do projeto em que você está criando o pipeline de entrega.
Agora você tem um pipeline de entrega no seu projeto e um job de análise, que fará parte do pipeline quando você criar uma versão.
A seguir
Confira o guia de início rápido: Analisar seu aplicativo usando métricas.
Consulte o esquema de configuração para análise na referência de configuração do Cloud Deploy.
Saiba mais sobre as políticas de alertas do Google Cloud Observability.
Saiba mais sobre a automação de implantação.
Saiba mais sobre as estratégias de implantação.