Garantir a prontidão operacional e o desempenho usando o CloudOps

Esse princípio do pilar de excelência operacional do Google Cloud framework bem arquitetado (em inglês) ajuda a garantir a prontidão operacional e o desempenho de suas cargas de trabalho na nuvem. Ele enfatiza o estabelecimento de expectativas e compromissos claros para o desempenho do serviço, a implementação de monitoramento e alertas robustos, a realização de testes de desempenho e o planejamento proativo das necessidades de capacidade.

Visão geral do princípio

Organizações diferentes podem interpretar a prontidão operacional de maneira diferente. A prontidão operacional é como sua organização se prepara para operar com êxito as cargas de trabalho no Google Cloud. A preparação para operar uma carga de trabalho complexa e multicamadas na nuvem requer um planejamento cuidadoso para as operações de go-live e do day-2. Essas operações são geralmente chamadas de CloudOps.

Focar as áreas de prontidão operacional

A prontidão operacional consiste em quatro áreas de foco. Cada área de foco consiste em um conjunto de atividades e componentes necessários para se preparar para operar um aplicativo ou ambiente complexo na Google Cloud. A tabela abaixo lista os componentes e as atividades de cada área de foco:

Área de foco de prontidão operacional Atividades e componentes
Funcionários
  • Definição de funções e responsabilidades claras para as equipes que gerenciam e operam os recursos da nuvem.
  • Garantir que os membros da equipe tenham habilidades apropriadas.
  • Desenvolver um programa de aprendizado.
  • Estabelecer uma estrutura de equipe clara.
  • Contratar o talento necessário.
Processos
  • Observabilidade.
  • Gerenciar interrupções de serviço.
  • do Google Cloud.
  • Principais operações da nuvem.
Ferramentas Ferramentas necessárias para oferecer suporte aos processos do CloudOps.
Governança
  • Níveis de serviço e relatórios.
  • finanças da nuvem.
  • modelo operacional do Google Cloud.
  • Conselhos de governança e revisão de arquitetura.
  • Arquitetura e conformidade da nuvem.

Recomendações

Para garantir prontidão e desempenho operacional usando o CloudOps, considere as recomendações nas seções a seguir. Cada recomendação neste documento é relevante para uma ou mais das áreas de foco da prontidão operacional.

Definir SLOs e SLAs

Uma responsabilidade principal da equipe de operações da nuvem é definir objetivos de nível de serviço (SLOs) e contratos de nível de serviço (SLAs) para todas as cargas de trabalho críticas. Essa recomendação é relevante para a área de foco da prontidão operacional da governança.

Os SLOs precisam ser específicos, mensuráveis, alcançáveis, relevantes e com prazo definido (SMART), além de refletir o nível de serviço e o desempenho que você quer.

  • Específico: detalha claramente o nível de serviço e desempenho necessário.
  • Mensurável: quantificável e rastreável.
  • Atingível: atingível dentro dos limites das capacidades e recursos da sua organização.
  • Relevante: alinhado com as metas e prioridades da empresa.
  • Com duração definida: tem um período definido para medição e avaliação.

Por exemplo, um SLO de um aplicativo da Web pode ser "99,9% de disponibilidade" ou "tempo médio de resposta inferior a 200 ms". Esses SLOs definem claramente o nível de serviço e desempenho necessários para o aplicativo da Web. Além disso, os SLOs podem ser medidos e rastreados ao longo do tempo.

Os SLAs descrevem os compromissos com os clientes em relação à disponibilidade, desempenho e suporte do serviço, incluindo quaisquer penalidades ou medidas judiciais por não conformidade. Os SLAs precisam incluir detalhes específicos sobre os serviços prestados, o nível de serviço esperado, as responsabilidades do provedor de serviços e do cliente e as penalidades ou medidas de correção em caso de não conformidade. Os SLAs servem como um acordo contratual entre as duas partes, garantindo que ambas tenham um entendimento claro das expectativas e obrigações associadas ao serviço de nuvem.

Google Cloud fornece ferramentas como o Cloud Monitoring e os indicadores de nível de serviço (SLIs) para ajudar a definir e rastrear SLOs. O Cloud Monitoring fornece recursos abrangentes de monitoramento e observabilidade que permitem que sua organização colete e analise métricas relacionadas à disponibilidade, desempenho e latência de aplicativos e serviços baseados na nuvem. Os SLIs são métricas específicas que podem ser usadas para medir e rastrear SLOs ao longo do tempo. Com essas ferramentas, é possível monitorar e gerenciar serviços em nuvem com eficiência e garantir que eles atendam aos SLOs e SLAs.

Definir e comunicar claramente SLOs e SLAs para todos os seus serviços essenciais na nuvem ajuda a garantir a confiabilidade e o desempenho dos aplicativos e serviços implantados.

Implementar observabilidade abrangente

Para ter visibilidade em tempo real da integridade e do desempenho do seu ambiente de nuvem, recomendamos usar uma combinação de ferramentas de observabilidade do Google Cloud e soluções de terceiros. Essa recomendação é relevante para estas áreas de foco de prontidão operacional: processos e ferramentas.

A implementação de uma combinação de soluções de observabilidade oferece uma estratégia abrangente de observabilidade que abrange vários aspectos da infraestrutura e dos aplicativos em nuvem. O Google Cloud Observability é uma plataforma unificada para coletar, analisar e visualizar métricas, registros e traces de vários Google Cloud serviços, aplicativos e fontes externas. Ao usar o Cloud Monitoring, é possível ter insights sobre a utilização de recursos, as características de desempenho e a integridade geral de seus recursos.

Para garantir um monitoramento abrangente, monitore métricas importantes alinhadas aos indicadores de integridade do sistema, como utilização da CPU, uso de memória, tráfego de rede, E/S de disco e tempos de resposta do aplicativo. Você também precisa considerar métricas específicas da empresa. Ao acompanhar essas métricas, você identifica possíveis gargalos, problemas de desempenho e restrições de recursos. Além disso, é possível configurar alertas para notificar as equipes relevantes de maneira proativa sobre possíveis problemas ou anomalias.

Para melhorar ainda mais os recursos de monitoramento, é possível integrar soluções de terceiros com a observabilidade do Google Cloud. Essas soluções podem fornecer outras funcionalidades, como análises avançadas, detecção de anomalias com tecnologia de machine learning e recursos de gerenciamento de incidentes. Essa combinação de ferramentas de observabilidade do Google Cloud e soluções de terceiros permite criar um ecossistema de monitoramento robusto e personalizável, adaptado às suas necessidades específicas. Com essa abordagem de combinação, é possível identificar e resolver problemas de maneira proativa, otimizar a utilização de recursos e garantir a disponibilidade e a confiabilidade geral dos aplicativos e serviços em nuvem.

Implementar testes de desempenho e carga

A realização de testes de desempenho regulares ajuda a garantir que a infraestrutura e os aplicativos baseados em nuvem possam lidar com os picos de carga e manter o desempenho ideal. O teste de carga simula padrões de tráfego realistas. O teste de estresse leva o sistema ao limite para identificar possíveis gargalos e limitações de desempenho. Essa recomendação é relevante para estas áreas de foco de prontidão operacional: processos e ferramentas.

Ferramentas como o Cloud Load Balancing e os serviços de teste de carga podem ajudar a simular padrões de tráfego reais e realizar testes de estresse nos aplicativos. Essas ferramentas fornecem insights valiosos sobre como o sistema se comporta em várias condições de carga e podem ajudar a identificar áreas que exigem otimização.

Com base nos resultados do teste de desempenho, é possível tomar decisões para otimizar a infraestrutura e os aplicativos em nuvem para melhor desempenho e escalonabilidade. Essa otimização pode envolver o ajuste da alocação de recursos, das configurações ou da implementação de mecanismos de armazenamento em cache.

Por exemplo, se você achar que o aplicativo está passando por lentidão durante períodos de alto tráfego, talvez seja necessário aumentar o número de máquinas virtuais ou contêineres alocados para o aplicativo. Como alternativa, pode ser necessário ajustar a configuração do seu servidor da Web ou banco de dados para melhorar o desempenho.

Ao realizar testes de desempenho regularmente e implementar as otimizações necessárias, você garante que os aplicativos e a infraestrutura baseados em nuvem sejam sempre executados com o melhor desempenho e ofereçam uma experiência contínua e responsiva aos usuários. Isso ajuda você a manter uma vantagem competitiva e ganhar a confiança dos seus clientes.

Planejar e gerenciar a capacidade

O planejamento proativo para futuras necessidades de capacidade, orgânicas ou inorgânicas, ajuda a garantir a operação e a escalonabilidade tranquilas dos seus sistemas baseados na nuvem. Essa recomendação é relevante para a área de foco da prontidão operacional dos processos.

Planejar a capacidade futura inclui entender e gerenciar cotas para vários recursos, como instâncias de computação, armazenamento e solicitações de API. Ao analisar os padrões históricos de uso, as projeções de crescimento e os requisitos de negócios, é possível antecipar com precisão os requisitos de capacidade futuros. É possível usar ferramentas como o Cloud Monitoring e o BigQuery para coletar e analisar dados de uso, identificar tendências e prever demandas futuras.

Os padrões de uso históricos fornecem insights valiosos sobre a utilização de recursos ao longo do tempo. Examine métricas como utilização de CPU, uso de memória e tráfego de rede para identificar períodos de alta demanda e possíveis gargalos. Além disso, você pode estimar as necessidades futuras de capacidade fazendo projeções de crescimento com base em fatores como crescimento da base de usuários, novos produtos e recursos e campanhas de marketing. Ao avaliar as necessidades de capacidade, considere também requisitos de negócios, como SLAs e metas de desempenho.

Ao determinar o dimensionamento dos recursos para uma carga de trabalho, pense em fatores que podem afetar a utilização deles. Variações sazonais, como períodos de compras de fim de ano ou vendas no final do trimestre, podem levar a picos temporários na demanda. Eventos planejados, como lançamentos de produtos ou campanhas de marketing, também podem aumentar significativamente o tráfego. Para garantir que o sistema principal e de recuperação de desastres (DR) possa lidar com picos inesperados de demanda, planeje uma capacidade que possa oferecer suporte a um failover simples durante interrupções como desastres naturais e ataques cibernéticos.

O escalonamento automático é uma estratégia importante para ajustar dinamicamente os recursos de nuvem com base nas flutuações da carga de trabalho. Ao usar políticas de escalonamento automático, é possível escalonar automaticamente instâncias de computação, armazenamento e outros recursos em resposta à mudança na demanda. Isso garante o desempenho ideal durante períodos de pico e minimiza os custos quando a utilização dos recursos é baixa. Os algoritmos de escalonamento automático usam métricas como utilização de CPU, uso de memória e profundidade da fila para determinar quando escalonar recursos.

Monitorar e otimizar continuamente

Para gerenciar e otimizar cargas de trabalho na nuvem, estabeleça um processo para monitorar e analisar continuamente as métricas de desempenho. Essa recomendação é relevante para estas áreas de foco de prontidão operacional: processos e ferramentas.

Para estabelecer um processo de monitoramento e análise contínuos, rastreie, colete e avalie dados relacionados a vários aspectos do ambiente de nuvem. Ao usar esses dados, é possível identificar proativamente áreas de melhoria, otimizar a utilização de recursos e garantir que a infraestrutura em nuvem atenda ou exceda de maneira consistente as expectativas de desempenho.

Um aspecto importante do monitoramento de desempenho é analisar regularmente os registros e rastreamentos. Os registros fornecem informações valiosas sobre eventos, erros e avisos do sistema. Os traces fornecem informações detalhadas sobre o fluxo de solicitações pelo aplicativo. Ao analisar registros e traces, é possível identificar possíveis problemas, identificar as causas raiz dos problemas e entender melhor como os aplicativos se comportam em diferentes condições. Métricas como o tempo de ida e volta entre os serviços podem ajudar a identificar e entender os gargalos que estão nas suas cargas de trabalho.

Além disso, é possível usar técnicas de ajuste de desempenho para melhorar significativamente os tempos de resposta do aplicativo e a eficiência geral. Confira a seguir exemplos de técnicas que podem ser usadas:

  • Armazenamento em cache: armazene dados acessados com frequência na memória para reduzir a necessidade de repetidas consultas de banco de dados ou chamadas de API.
  • Otimização de banco de dados: use técnicas como indexação e otimização de consultas para melhorar o desempenho das operações do banco de dados.
  • Criação de perfil de código: identifique áreas do código que consomem recursos em excesso ou causam problemas de desempenho.

Ao aplicar essas técnicas, você pode otimizar seus aplicativos e garantir que eles sejam executados de maneira eficiente na nuvem.