Modelação de estado de funcionamento para cargas de trabalho

As aplicações na cloud geram grandes volumes de dados operacionais, o que torna difícil identificar e resolver problemas rapidamente. Uma razão comum para este desafio é a ausência de uma linha de base de estado de funcionamento personalizada para a funcionalidade da carga de trabalho e a incapacidade de detetar desvios dessa linha de base.

A modelação de estado de funcionamento é um exercício de observabilidade que combina o contexto empresarial com dados de monitorização não processados para quantificar o estado de funcionamento geral de uma carga de trabalho. Ajuda a definir uma linha de base para a qual pode monitorizar a carga de trabalho. Deve considerar dados como a telemetria dos componentes da infraestrutura e da aplicação. A modelação de estado de funcionamento também pode incorporar outras informações necessárias para atingir os objetivos de qualidade da carga de trabalho.

Problemas de desempenho ou degradação operacional podem causar desvios do estado operacional esperado. Ao modelar o estado de funcionamento de uma carga de trabalho, pode identificar o desvio e tomar decisões operacionais informadas que considerem o impacto empresarial.

A modelação da saúde faz pontes entre o conhecimento operacional tribal e as informações acionáveis. Ajuda-o a gerir problemas críticos de forma eficaz. O conceito é essencial para maximizar a fiabilidade e a eficácia operacional.

Este guia oferece orientações práticas sobre modelação de estado de funcionamento, incluindo como criar um modelo que avalie o estado de funcionamento do runtime de uma carga de trabalho e todos os seus subsistemas.

Terminologia Definição
Modelação do estado de funcionamento Um exercício de observabilidade que utiliza o contexto empresarial para interpretar dados de monitorização como estados de estado de funcionamento.
Modelo de estado de funcionamento Uma representação gráfica de entidades lógicas e respetivas relações para um determinado âmbito. Cada nó tem uma definição de estado de funcionamento para racionalizar os dados de monitorização em todo o modelo.
Entidade de estado de funcionamento Um componente lógico que representa uma unidade individual de um sistema, uma combinação lógica de várias entidades relacionadas ou o sistema geral.
Estado de funcionamento Um estado definido e mensurável que fornece informações operacionais significativas sobre o estado de funcionamento de uma entidade.
Sinal de estado de funcionamento Fluxos de dados individuais que fornecem informações sobre o comportamento operacional de uma entidade.
Modelo de modelos Um âmbito de modelação agregado no qual as entidades representam modelos de estado de funcionamento distintos para sistemas de componentes.

Recomendamos que watch este vídeo para obter uma compreensão de alto nível da modelação do estado de funcionamento.

O que é a saúde, a modelação do estado de funcionamento e um modelo de estado de funcionamento?

O termo estado de funcionamento refere-se ao estado operacional de uma entidade e às respetivas dependências. Essa entidade pode ser uma unidade individual de um sistema, uma combinação lógica de várias entidades relacionadas ou o sistema geral.

Recomendamos que represente o estado de funcionamento num dos três estados:

  • Bom estado de funcionamento: funciona de forma ideal e corresponde às expectativas de qualidade

  • Degradado: Apresenta um comportamento menos saudável, o que indica potenciais problemas

  • Mau estado de funcionamento: num estado crítico e requer atenção imediata

Nota

Pode representar o estado de funcionamento com uma pontuação em vez de estados para fornecer mais granularidade de dados.

Os estados de estado de funcionamento derivam da combinação de dados de monitorização com informações de domínio. Cada estado tem de ser definido e tem de ser mensurável. Os estados de estado de funcionamento são calculados através de sinais de estado de funcionamento, que são fluxos de dados individuais que fornecem informações sobre o comportamento operacional de uma entidade. Os sinais podem incluir métricas, registos, rastreios ou outras características de qualidade. Por exemplo, um sinal de estado de funcionamento para uma entidade de máquina virtual (VM) pode controlar a métrica de utilização da CPU. Outros sinais para esta entidade podem incluir a utilização da memória, latência de rede ou taxas de erro.

À medida que define os sinais de estado de funcionamento, tenha em conta os requisitos não funcionais para a carga de trabalho. No exemplo de utilização da CPU, inclua os limiares esperados para cada estado de funcionamento. Se a utilização exceder o limiar tolerado de acordo com os requisitos da carga de trabalho, o sistema transita de Bom Estado de Funcionamento para Degradado ou Em Mau Estado de Funcionamento. Estas alterações de estado acionam os alertas ou ações adequados.

A modelação do estado de funcionamento requer que as entidades tenham estados bem definidos que derivam de vários sinais de estado de funcionamento e são contextualizados para a carga de trabalho. Por exemplo, a definição de estado de funcionamento de uma VM pode ser:

  • Bom estado de funcionamento: os principais requisitos e destinos não funcionais, como o tempo de resposta, a utilização de recursos e o desempenho geral do sistema, estão totalmente satisfeitos. Por exemplo, 95% dos pedidos são processados dentro de 500 milissegundos. A carga de trabalho utiliza recursos de VM como CPU, memória e armazenamento de forma ideal e mantém um equilíbrio entre as exigências da carga de trabalho e a capacidade disponível. A experiência do utilizador está nos níveis esperados.

  • Degradado: os recursos não estão a ter um desempenho ideal, mas ainda estão operacionais. Por exemplo, o disco de armazenamento está a ter problemas de limitação. Os utilizadores podem ter respostas lentas.

  • Mau estado de funcionamento: a degradação está para além dos limites tolerados. Os recursos já não respondem ou estão disponíveis e o sistema já não está a cumprir níveis de desempenho aceitáveis. A experiência do utilizador é severamente afetada.

O resultado da modelação de estado de funcionamento é um modelo ou uma representação gráfica de entidades lógicas e respetivas relações para uma arquitetura de carga de trabalho. Cada nó tem uma definição de estado de funcionamento.

Importante

A modelação de estado de funcionamento é um conceito abstrato que pode implementar e aplicar em diferentes âmbitos se tiver uma boa compreensão dos cenários empresariais.

Um diagrama que mostra a definição do modelo de estado de funcionamento.

Na imagem:

  • As entidades são componentes lógicos da carga de trabalho que representam aspetos do sistema. Podem ser componentes de infraestrutura, como servidores, bases de dados e redes. Também podem ser módulos de aplicações, pods, serviços ou microsserviços específicos. Em alternativa, as entidades podem capturar interações do utilizador e fluxos de sistema na carga de trabalho.

    Nota

    Os fluxos de utilizador e sistema resumem os requisitos não funcionais em cenários empresariais que envolvem componentes de aplicações e infraestruturas. Este resumo reflete o valor comercial da aplicação.

  • As relações entre entidades espelham as cadeias de dependências no sistema. Por exemplo, um módulo de aplicação pode chamar componentes de infraestrutura específicos que formam uma relação.

Considere um cenário em que uma carga de trabalho de comércio eletrónico tem um pico nas mensagens falhadas numa fila de Azure Service Bus, o que está a causar a falha dos pagamentos. Este problema é fundamental para a organização devido à perda implícita de receitas. Embora um programador de aplicações possa compreender o efeito deste pico de métricas nos pagamentos, este conhecimento tribal não é frequentemente partilhado entre a equipa de operações.

Um modelo de estado de funcionamento pode dar aos operadores visibilidade imediata sobre o problema e os seus efeitos. O fluxo de pagamento depende do Service Bus, que é um dos componentes da carga de trabalho. A representação visual revela o estado degradado da instância do Service Bus e o respetivo efeito no fluxo de pagamento. Os operadores podem compreender a importância do problema e concentrar os seus esforços de remediação nesse componente específico.

A modelação do estado de funcionamento foi importante no cenário anterior das seguintes formas:

  • Melhorou o tempo para detetar (TTD) e tempo para mitigar (TTM) ao permitir um isolamento de problemas mais rápido, o que levou a uma deteção mais rápida de problemas e potenciais correções.

  • Os operadores receberam alertas com base em estados de saúde, o que reduziu o ruído desnecessário. Os operadores receberam notificações que forneceram contexto específico sobre o impacto comercial nos pagamentos.

  • As cadeias de dependência ajudaram os operadores a compreender plenamente a extensão dos problemas operacionais. Este conhecimento acelerou as avaliações de impacto e levou a respostas prioritárias. Os operadores também identificaram facilmente problemas em cascata ou correlacionados.

  • Os operadores realizaram atividades pós-incidente com precisão porque o modelo de estado de funcionamento forneceu informações sobre as causas principais das anomalias e os sinais de estado de funcionamento específicos envolvidos.

  • Tornou os dados de monitorização relevantes para todos os membros da equipa. Colmatou o fosso entre o conhecimento tribal e as informações partilhadas.

  • A organização utilizou o modelo de estado de funcionamento como uma linha de base para futuros investimentos em operações orientadas por IA para obter informações inteligentes.

Esquema do modelo de estado de funcionamento

Os modelos de estado de funcionamento fornecem um esquema de dados distinto otimizado para casos de utilização de observabilidade. Este esquema utiliza a modelação de estado de funcionamento de um conceito abstrato para uma solução mensurável. Ao modelar os seus requisitos, objetivos e contexto arquitetónico específicos, pode adaptar os dados de estado de funcionamento ao seu cenário exclusivo.

Um diagrama que mostra a definição do estado de funcionamento.

O estado de funcionamento é um conceito relativo de dados. Cada modelo representa dados de estado de funcionamento exclusivos e priorizados para o âmbito contextual, mesmo que utilize o mesmo conjunto de entidades. O que constitui um bom estado de funcionamento num cenário específico pode diferir significativamente noutros contextos.

Por exemplo, considere os recursos do Azure do mesmo tipo na carga de trabalho.

  • A VM A executa uma aplicação sensível à CPU.
  • A VM B processa um serviço com muita memória.

As definições de estado de funcionamento destas máquinas são diferentes. As métricas de utilização da CPU provavelmente influenciam o estado de funcionamento da VM A e a VM B pode dar prioridade às métricas relacionadas com a memória.

Importante

Um modelo de estado de funcionamento não deve tratar todas as falhas da mesma forma. Deve distinguir claramente entre as falhas esperadas ou transitórias, mas recuperáveis, e um verdadeiro estado de desastre.

Criar um modelo de estado de funcionamento

O primeiro passo para criar um modelo de estado de funcionamento é um exercício de design lógico, que normalmente envolve as atividades descritas nas secções seguintes.

Um diagrama que mostra as atividades de modelação do estado de funcionamento.

Avaliar a estrutura da carga de trabalho

Inicie este exercício de design lógico ao avaliar os seguintes componentes da estrutura da carga de trabalho.

  • Componentes de infraestrutura, como clusters de computação e bases de dados

  • Componentes da aplicação que são executados na computação e os respetivos componentes relevantes

  • Dependências lógicas ou físicas entre componentes

  • Fluxos de utilizador e sistema

Por exemplo, o modelo de estado de funcionamento de uma aplicação de comércio eletrónico deve representar o estado atual de processos críticos, como o início de sessão do utilizador, a finalização da compra e os pagamentos.

Contextualizar com os requisitos empresariais

Avalie a importância relativa e o impacto geral de cada fluxo na sua organização. Considere fatores como a experiência do utilizador, a segurança e a eficiência operacional. Por exemplo, na maioria dos cenários, a falha de um processo de pagamento é provavelmente mais significativa do que a falha de um processo de relatório.

Identificar caminhos de escalamento para lidar com problemas relacionados com cada fluxo. Para obter mais informações, veja Otimizar a estrutura da carga de trabalho com fluxos.

Nota

Percebe o valor da modelação do estado de funcionamento apenas quando incorpora os seus cenários e contexto empresariais. Em seguida, pode racionalizar o impacto empresarial a partir de problemas operacionais.

Mapear para métricas de fiabilidade

Procure métricas de fiabilidade relevantes na conceção da aplicação.

Considere definir indicadores de nível de serviço (SLIs) e objetivos de nível de serviço (SLOs) para toda a aplicação e os respetivos processos empresariais individuais. Estes SLIs e SLOs devem ser alinhados com os sinais de estado de funcionamento específicos considerados para o seu modelo de estado de funcionamento. Ao fazê-lo, cria uma definição abrangente de estado de funcionamento que reflete com precisão a realização de um nível de serviço aceitável para a aplicação.

Importante

Os SLIs e os SLOs são sinais de estado de funcionamento críticos. Criam uma definição significativa de estado de funcionamento que reflete o nível de serviço pretendido juntamente com outros atributos de qualidade. Também pode definir os objetivos de estado de funcionamento do serviço (SHOs) para capturar o estado de funcionamento que pretende alcançar ao longo de um intervalo de tempo agregado.

Identificar sinais de estado de funcionamento

Para criar um modelo de estado de funcionamento abrangente, correlacione vários tipos de dados de monitorização, incluindo métricas, registos e rastreios. Ao fazê-lo, garante que o conceito de estado de funcionamento reflete com precisão o estado de execução de uma entidade específica ou toda a carga de trabalho.

Utilizar métricas e registos da plataforma

No contexto da modelação do estado de funcionamento, é essencial recolher métricas e registos ao nível da plataforma a partir de recursos subjacentes do Azure. Estas métricas incluem percentagem de CPU, entrada e saída de rede e operações de disco por segundo. Pode utilizar estes dados no seu modelo de estado de funcionamento para detetar e prever potenciais problemas enquanto mantém um ambiente fiável.

Além disso, esta abordagem ajuda-o a diferenciar entre falhas transitórias, interrupções temporárias e falhas nãotransientes ou problemas persistentes.

Nota

Como melhor prática, deve configurar todos os recursos da aplicação para direcionar os registos de diagnóstico e as métricas para a tecnologia de agregação de registos escolhida. Crie proteções com Azure Policy para garantir definições de diagnóstico consistentes em toda a aplicação e impor a configuração escolhida para cada serviço do Azure.

Adicionar registos de aplicações

Os registos de aplicações são uma origem importante de dados de diagnóstico para o seu modelo de estado de funcionamento. Seguem-se algumas das melhores práticas para o registo de aplicações:

  • Utilize o registo semântico ou estruturado. Os registos estruturados facilitam o consumo automatizado e a análise dos dados de registo em escala.

    Considere armazenar métricas de recursos do Azure e dados de diagnóstico numa área de trabalho de Registos do Azure Monitor em vez de numa conta de armazenamento. Ao utilizar este método, pode criar sinais de estado de funcionamento através de consultas Kusto para uma avaliação eficiente.

  • Registar dados no ambiente de produção. Capture dados abrangentes enquanto a aplicação funciona no ambiente de produção. As informações suficientes são essenciais para a avaliação do estado de funcionamento e para diagnosticar quaisquer problemas de produção detetados.

  • Registar eventos nos limites do serviço. Inclua um ID de correlação que atravessa os limites do serviço. Se uma transação envolver vários serviços e um deles falhar, o ID de correlação ajuda-o a controlar os pedidos em toda a aplicação e a identificar a causa da falha.

  • Utilize o registo assíncrono. Evite operações de registo síncronas que possam bloquear o código da aplicação. O registo assíncrono garante a disponibilidade ao impedir os registos de tarefas pendentes de pedidos durante as escritas de registos.

  • Separe o registo de aplicações da auditoria. Mantenha os registos de auditoria separadamente dos registos de diagnóstico. Embora os registos de auditoria cumpram requisitos de conformidade ou regulamentares, mantê-los distintos impede transações perdidas.

Implementar o rastreio distribuído

Implemente o rastreio distribuído ao correlacionar a telemetria entre fluxos de sistema críticos. A telemetria correlacionada fornece informações sobre transações ponto a ponto e é essencial para uma análise eficaz da causa (RCA) quando ocorrem falhas.

Utilizar sondas de estado de funcionamento

Implemente e execute pesquisas de estado de funcionamento fora da aplicação para verificar explicitamente o estado de funcionamento e a capacidade de resposta da sua aplicação. Utilize as respostas da pesquisa como sinais no modelo de estado de funcionamento.

Pode implementar sondas de estado de funcionamento ao medir o tempo de resposta da aplicação como um todo ou a partir dos respetivos componentes individuais. As sondas podem executar processos para medir a latência e verificar a disponibilidade ou extrair informações da aplicação. Para obter mais informações, veja Padrão de Monitorização do Ponto Final de Estado de Funcionamento.

A maioria dos balanceadores de carga suportam a execução de pesquisas de estado de funcionamento que pingam pontos finais da aplicação em intervalos configurados. Em alternativa, pode utilizar um serviço de watchdog externo. Um serviço watchdog agrega verificações de estado de funcionamento de vários componentes na carga de trabalho. Os watchdogs também podem alojar código que faz remediação imediata para condições de saúde conhecidas.

Adotar técnicas de monitorização estrutural e funcional

A monitorização estrutural envolve equipar a aplicação com métricas e registos semânticos. A aplicação recolhe diretamente estas métricas, que incluem o consumo de memória atual, a latência do pedido e outros dados relevantes ao nível da aplicação.

Reforce os seus processos de monitorização através da monitorização funcional. Esta abordagem centra-se na medição dos serviços da plataforma e no respetivo efeito na experiência geral do utilizador. Ao contrário da monitorização estrutural, a monitorização funcional não requer conhecimentos detalhados do sistema. Testa o comportamento visível externamente da aplicação. Esta abordagem é útil para avaliar SLOs e SLIs.

Modelar a estrutura

Representar a estrutura da aplicação identificada como entidades e relações. Mapeie os sinais de estado de funcionamento para componentes específicos para quantificar estados de funcionamento ao nível da entidade. Considere a importância dos componentes para determinar como os estados de funcionamento devem propagar-se através do modelo. Por exemplo, os componentes de relatórios podem não ser tão críticos como outros componentes, o que resulta em diferentes efeitos no estado de funcionamento geral da carga de trabalho.

Definir alertas acionáveis

Utilize os estados de funcionamento avaliados para acionar alertas e ações automatizadas. O estado de funcionamento deve ser integrado nos runbooks operacionais existentes como um princípio de dados de observabilidade principal.

Normalmente, existe um mapeamento um-para-um entre dados de monitorização e regras de alerta, o que pode levar a resultados indesejáveis, como tempestades de alerta e ruído de alerta ambiente. Por exemplo, num cluster de computação, os volumes elevados de alertas ao nível da VM com base na utilização da CPU e na contagem de erros podem sobrecarregar os operadores durante as falhas e causar atrasos na resolução. Da mesma forma, quando existe um elevado número de alertas configurados, o ruído de alerta ambiente resulta frequentemente em alertas ignorados ou ignorados.

Um modelo de estado de funcionamento introduz a separação entre dados de monitorização e regras de alerta. Uma definição de estado de funcionamento agrega muitos sinais num único estado de funcionamento, o que diminui o número de alertas para que os operadores possam concentrar-se apenas em alertas de valor elevado que são fundamentais para a organização. Considere o cenário de comércio eletrónico. Pode configurar um alerta para enviar notificações sobre alterações no estado de funcionamento do fluxo de pagamentos do processo em vez de alterações nos recursos subjacentes, como a fila do Service Bus.

Nota

A capacidade de alertar em todas as camadas do modelo de estado de funcionamento proporciona flexibilidade para as diferentes personas de carga de trabalho. Os proprietários de aplicações e os gestores de produtos podem ser alertados para alterações do estado de funcionamento em cenários empresariais principais ou em toda a carga de trabalho. Os operadores podem ser alertados com base no estado de funcionamento da infraestrutura ou dos componentes da aplicação.

Visualizar o modelo

Crie representações visuais, como tabelas ou gráficos, para transmitir eficazmente o estado atual e o histórico do modelo de estado de funcionamento. Certifique-se de que a visualização está alinhada com o contexto empresarial e fornece informações acionáveis.

Quando visualizar o modelo de estado de funcionamento, considere adotar uma abordagem de semáforo para tornar os estados de funcionamento imediatamente introdutórios entre cadeias de dependências.

Atribua verde para bom estado de funcionamento, âmbar para degradado e vermelho para mau estado de funcionamento. Ao identificar rapidamente os estados codificados por cores, pode localizar eficientemente a causa raiz de qualquer degradação da aplicação.

O diagrama mostra um modelo de estado de funcionamento que utiliza uma abordagem de semáforo.

Nota

Recomendamos que considere os requisitos de acessibilidade para pessoas portadoras de deficiências visuais quando criar um dashboard para o seu modelo de estado de funcionamento. Para obter as melhores práticas de diagrama, veja Diagramas de design de arquitetura.

Adotar o modelo de estado de funcionamento

Depois de criar um modelo de estado de funcionamento, considere os seguintes casos de utilização para detetar e interpretar falhas ou problemas operacionais.

Aplicabilidade a várias funções

A modelação do estado de funcionamento pode fornecer informações específicas para funções de trabalho ou para funções no mesmo contexto da carga de trabalho. Por exemplo, uma função de DevOps pode necessitar de informações de estado de funcionamento operacional. Um agente de segurança pode estar mais preocupado com sinais de intrusão e exposição à segurança. É provável que um administrador de base de dados só esteja interessado num subconjunto do modelo de aplicação através dos recursos da base de dados.

Personalize as informações de saúde para diferentes intervenientes. Considere criar modelos separados de conjuntos de dados sobrepostos.

Validação contínua

Utilize o seu modelo de estado de funcionamento para otimizar processos de teste e validação, como testes de carga e testes de caos. Pode validar o estado operacional do runtime durante os testes e avaliar a eficácia do modelo em cenários de dimensionamento e falha ao incorporar modelos de estado de funcionamento no ciclo de vida da engenharia.

Estado de funcionamento organizacional

Embora a modelação do estado de funcionamento esteja frequentemente associada à quantificação de estados de funcionamento para aplicações individuais, a sua aplicabilidade estende-se para além desse âmbito.

Ao nível da carga de trabalho individual, os modelos de estado de funcionamento fornecem uma base para observabilidade de aplicações e informações operacionais. Cada aplicação pode ter o seu próprio modelo de estado de funcionamento que captura o que cada estado de funcionamento significa no seu contexto.

Pode combinar vários modelos de estado de funcionamento numa construção de alto nível ao criar um modelo de modelos. Por exemplo, pode criar o espaço de observabilidade de uma unidade de negócio ou de um património da cloud completo ao utilizar modelos de estado de funcionamento como componentes num modelo maior. Os modelos de estado de funcionamento representam cargas de trabalho dentro do património como nós no gráfico de nível superior. Utilize as relações neste modelo para capturar dependências entre aplicações, incluindo fluxos de dados, interações de serviço e infraestrutura partilhada.

Considere uma empresa de retalho que tem várias aplicações para comércio eletrónico, pagamentos e processamento de encomendas. Pode definir cada uma destas aplicações como um modelo de estado de funcionamento independente para quantificar o que significa o estado de funcionamento dessa carga de trabalho. Em seguida, pode utilizar um modelo principal para mapear todos estes modelos de estado de funcionamento de componentes como entidades e capturar o impacto operacional entre aplicações através de cadeias de dependências. Por exemplo, se a aplicação de comércio eletrónico ficar em mau estado de funcionamento, tem um efeito em cascata na aplicação de pagamento.

A modelação do estado de funcionamento fornece uma linha de base operacional quantificada otimizada para um contexto empresarial específico. A IA para operações de TI (AIOps) é uma forma popular de melhorar a eficiência operacional. Os dados de saúde são uma entrada fundamental para modelos de machine learning para analisar tendências de saúde. Por exemplo, os modelos de machine learning podem:

  • Extraia mais informações das alterações de estado e recomenda as ações.

  • Analise as tendências de estado de funcionamento ao longo do tempo para impulsionar a predição de problemas e o refinamento do modelo.

Manter o modelo de estado de funcionamento

Manter um modelo de estado de funcionamento é uma atividade de engenharia contínua que se alinha com o desenvolvimento e as operações da sua aplicação. À medida que a sua aplicação evolui, certifique-se de que o modelo de estado de funcionamento evolui em paralelo.

Além disso, trate modelos de estado de funcionamento como artefactos de carga de trabalho que devem ser integrados no ciclo de vida de desenvolvimento. Adote a infraestrutura como código (IaC) para uma gestão consistente e controlada por versões do seu modelo de estado de funcionamento. Utilize a automatização para que o modelo se mantenha atualizado à medida que adiciona ou remove componentes da infraestrutura e da aplicação da carga de trabalho.

Os dados de estado de funcionamento diminuem gradualmente em valor ao longo do tempo. Para otimizar a eficiência operacional e minimizar os custos, evite reter dados de saúde para além dos 30 dias. Se necessário, pode arquivar dados para satisfazer os requisitos de auditoria ou em cenários que envolvam análises de padrões a longo prazo na IA para operações de TI.

Nota

Quando arquivar dados de estado de funcionamento, certifique-se de que os associa ao estado de configuração do modelo. Interpretar as alterações de estado pode ser um desafio sem este contexto.

Passo seguinte