Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure Stream Analytics é um serviço altamente resiliente que processa e analisa dados de streaming de várias fontes simultaneamente. O Stream Analytics fornece as informações que você pode usar para criar pipelines de processamento de eventos complexos usando consultas semelhantes a SQL.
Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para dar suporte à resiliência e recuperação. Você é responsável por entender como esses recursos funcionam em todos os serviços que você usa e selecionar os recursos necessários para atender aos seus objetivos de negócios e metas de tempo de atividade.
Este artigo descreve como o Stream Analytics é resiliente a possíveis problemas, como falhas transitórias e interrupções de zona de disponibilidade. Ele fornece diretrizes sobre como proteger trabalhos críticos contra interrupções de região e manutenção de serviço. Ele também destaca as principais informações sobre o SLA (contrato de nível de serviço) do Stream Analytics.
Importante
Melhorar a resiliência do Stream Analytics por si só pode ter um efeito limitado se os outros componentes não forem igualmente resilientes. Considere a confiabilidade de suas fontes de dados, incluindo entradas e saídas. Dependendo dos requisitos de resiliência, talvez seja necessário fazer alterações de configuração em várias áreas.
Recomendações de implantação de produção
Para garantir a alta confiabilidade em ambientes de produção que usam o Stream Analytics, recomendamos que você execute as seguintes ações:
- Use regiões que dão suporte a zonas de disponibilidade. Implante seus trabalhos de streaming e outros recursos em regiões que dão suporte a zonas de disponibilidade.
- Implantar capacidade suficiente. Defina suas SUs (unidades de streaming) com base na taxa de transferência esperada e na capacidade adicional para lidar com cargas de pico. Adicione um buffer acima dos requisitos de linha de base para lidar com aumentos repentinos.
- Monitore a saúde. Implemente um monitoramento abrangente usando métricas e logs de diagnóstico do Azure Monitor para acompanhar eventos de integridade, entrada e saída do trabalho e utilização de recursos. Configure alertas para métricas críticas, como atraso no marcador de progresso e erros de tempo de execução, para detectar problemas antes que eles afetem o processamento de dados. Para obter mais informações, consulte Monitorar o Stream Analytics.
- Implemente a redundância de várias regiões para cargas de trabalho críticas. Implante trabalhos idênticos do Stream Analytics em várias regiões. Replique suas configurações e garanta o roteamento de dados apropriado para obter resiliência regional. O Stream Analytics não fornece replicação nativa de várias regiões, mas essa abordagem permite failover e continuidade. Para obter mais informações, consulte soluções personalizadas de várias regiões para resiliência.
Visão geral da arquitetura de confiabilidade
Esta seção descreve alguns dos aspectos importantes de como o serviço funciona que são mais relevantes do ponto de vista da confiabilidade. A seção apresenta a arquitetura lógica, que inclui alguns dos recursos e recursos que você implanta e usa. Também discute a arquitetura física, que fornece detalhes sobre como o serviço funciona nos bastidores.
Arquitetura lógica
Um job é a unidade fundamental no Stream Analytics que permite definir e executar sua lógica de processamento de fluxo contínuo. Um trabalho consiste nos seguintes componentes principais:
- Entradas que leem dados de streaming de fontes de dados, como Hubs de Eventos do Azure, Hub IoT do Azure ou Armazenamento do Azure.
- Uma consulta que processa e transforma os dados.
- Saídas que gravam continuamente resultados em destinos diferentes, como Banco de Dados SQL do Azure, Azure Data Lake Storage, Azure Cosmos DB e Power BI.
Para obter mais informações, consulte o modelo de recurso do Stream Analytics.
Arquitetura física
O Stream Analytics obtém alta confiabilidade aplicando várias camadas de resiliência para atenuar problemas nas fontes de dados de entrada e saída subjacentes. Os seguintes componentes ajudam a garantir que seus trabalhos sejam executados de forma robusta:
Nós de trabalho: Trabalhos do Stream Analytics são executados em um grupo. As VMs (máquinas virtuais) dentro do cluster são conhecidas como nós de trabalho. Quando você usa as SKUs Standard ou Standard V2, seus trabalhos são executados em clusters compartilhados. Quando você usa o SKU dedicado, seus trabalhos são executados em seu próprio cluster dedicado.
A plataforma gerencia automaticamente a criação de nós de trabalho, a alocação de trabalhos entre nós de trabalho, o monitoramento de integridade e a substituição de nós de trabalho com problemas, de forma que você não precise ver ou gerenciar as VMs diretamente.
Sus: As SUs representam os recursos de computação que executam um trabalho. Quanto maior o número de SUs, mais recursos de computação são alocados para o trabalho. A plataforma gerencia os nós de trabalho e a distribuição de tarefas entre eles, mas você é responsável por alocar SUs (unidades de serviço) para os trabalhos. Para obter mais informações, consulte Entender e ajustar as SUs do Stream Analytics.
Checkpoints: O Stream Analytics mantém o estado do trabalho por meio da criação regular de pontos de verificação de estado. Os pontos de verificação ajudam os trabalhos com falha a se recuperar rapidamente com o reprocessamento mínimo de dados, mesmo para trabalhos que usam lógica de consulta com estado.
Quando ocorrem falhas de processamento, o Stream Analytics reinicia automaticamente do último ponto de verificação e reprocessa eventos que falham durante o processamento. Essa garantia se aplica a todas as funções internas e funções definidas pelo usuário dentro do trabalho. Mas a obtenção de entrega de ponta a ponta exatamente uma vez depende dos recursos do destino de saída. Para obter mais informações, consulte Os conceitos de ponto de verificação e reprodução em trabalhos do Stream Analytics.
Observação
Usando o Stream Analytics no IoT Edge, você pode executar trabalhos em sua própria infraestrutura. Ao usar o Stream Analytics no IoT Edge, você é responsável por configurá-lo para atender aos seus requisitos de confiabilidade. O Stream Analytics no IoT Edge está fora do escopo deste artigo.
Resiliência a falhas transitórias
Falhas transitórias são falhas curtas e intermitentes nos componentes. Elas ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. Falhas transitórias se corrigem após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente repetindo solicitações afetadas.
Todos os aplicativos hospedados na nuvem devem seguir as diretrizes transitórias de tratamento de falhas do Azure quando eles se comunicam com qualquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, confira Recomendações para tratamento de falhas transitórias.
O Stream Analytics lida automaticamente com muitas falhas transitórias ao ingerir dados de entradas e gravar dados em saídas usando mecanismos de repetição internos. Após a reinicialização de um nó de trabalho ou a reatribuição da tarefa, a tarefa usa pontos de verificação para reexecutar quaisquer eventos que não foram totalmente processados e continua o processamento até chegar ao fluxo de entrada atual.
É uma boa prática configurar políticas de erro de saída. Mas essas políticas se aplicam apenas a erros de conversão de dados e não mudam a forma como o Stream Analytics lida com falhas transitórias.
Resiliência a falhas de zona de disponibilidade
As zonas de disponibilidade são grupos fisicamente separados de datacenters em uma região do Azure. Quando uma zona falha, os serviços podem fazer o failover de uma das zonas restantes.
O Stream Analytics é automaticamente redundante em regiões que dão suporte a zonas de disponibilidade, o que significa que os trabalhos usam várias zonas de disponibilidade. A redundância de zona garante que seu trabalho permaneça resiliente a uma ampla gama de falhas, incluindo interrupções catastróficas do datacenter, sem alterações na lógica do aplicativo.
Quando você cria um trabalho de Stream Analytics em uma região com suporte para zonas, o serviço distribui os recursos de computação do seu trabalho por várias zonas de disponibilidade.
Esse modelo de implantação com redundância de zona garante que seus trabalhos de streaming continuem a processar dados mesmo que uma zona de disponibilidade inteira fique indisponível. Por exemplo, o diagrama a seguir mostra como os trabalhos continuam sendo executados se a zona 3 sofrer uma interrupção.
A redundância de zona se aplica a todos os recursos do Stream Analytics, incluindo processamento de consultas, pontos de verificação e tarefas de gerenciamento de trabalho. Stream Analytics replica automaticamente os dados de estado e de ponto de verificação do seu trabalho em zonas de disponibilidade, o que impede a perda de dados e reduz o tempo de indisponibilidade durante falhas nas zonas.
Requirements
- Suporte à região: Há suporte para redundância de zona para recursos do Stream Analytics em qualquer região que dê suporte a zonas de disponibilidade. Para obter a lista completa de regiões que dão suporte a zonas de disponibilidade, consulte a lista de regiões do Azure.
- Requisitos de SKU: A redundância de zona está disponível em todos os SKUs do Stream Analytics.
Custo
A redundância de zona no Stream Analytics não incorre em encargos extras. Você paga a mesma taxa para SUs se seu trabalho é executado em uma configuração com redundância de zona ou em uma configuração sem redundância de zona. Para obter mais informações, consulte os preços do Stream Analytics.
Configurar o suporte à zona de disponibilidade
Crie um trabalho do Stream Analytics com redundância de zona. Os trabalhos do Stream Analytics são automaticamente redundantes por zona quando você os cria em uma região com suporte. Nenhuma configuração é necessária.
Para obter instruções de implantação, consulte Início Rápido: Criar um trabalho do Stream Analytics usando o portal do Azure e oInício Rápido: Criar um cluster do Stream Analytics dedicado usando o portal do Azure.
Habilitar a redundância de zona. Todos os trabalhos e clusters dedicados são automaticamente redundantes entre zonas em regiões que possuem zonas de disponibilidade. Você não precisa habilitar a redundância de zona.
Desative a redundância de zona. Você não pode desativar a redundância de zona.
Comportamento quando todas as zonas estão saudáveis
Esta seção descreve o que esperar quando os trabalhos do Stream Analytics são redundantes em zona e todas as zonas de disponibilidade estão operacionais.
Roteamento de tráfego entre zonas: O Stream Analytics executa cada trabalho em nós de trabalho. Os trabalhadores em qualquer zona podem processar dados de streaming de entrada. O serviço usa o balanceamento de carga interno para distribuir tarefas de processamento entre zonas.
Replicação de dados entre zonas: O Stream Analytics replica o estado do trabalho e os dados de ponto de verificação de forma síncrona entre zonas de disponibilidade. À medida que o trabalho processa eventos e atualiza o seu estado, o Stream Analytics grava essas alterações em várias zonas de disponibilidade antes de confirmá-las. Essa replicação síncrona garante a perda de dados zero mesmo que uma zona inteira fique indisponível. O processo de replicação é transparente para seu aplicativo e não afeta a latência de processamento em condições normais.
Comportamento durante uma falha de zona
Esta seção descreve o que esperar quando os trabalhos do Stream Analytics são com redundância de zona e há uma interrupção da zona de disponibilidade.
- Detecção e resposta: A plataforma do Stream Analytics é responsável por detectar uma falha em uma zona de disponibilidade e responder a ela. O Stream Analytics marca os trabalhadores na zona com falha como com problema e redistribui automaticamente os trabalhos para os trabalhadores nas zonas saudáveis restantes. Você não precisa fazer nada para iniciar um failover de zona.
- Notificação: a Microsoft não notifica você automaticamente quando uma zona está inativa. No entanto, você pode usar o Azure Resource Health para monitorar a integridade de um recurso individual e pode configurar alertas do Resource Health para notificá-lo de problemas. Você também pode usar a Integridade do Serviço do Azure para entender a integridade geral do serviço, incluindo quaisquer falhas de zona, e pode configurar alertas de Integridade do Serviço para notificá-lo de problemas.
Solicitações ativas: O Stream Analytics muda os trabalhos em execução para outro trabalhador em uma zona de disponibilidade íntegra.
O Stream Analytics usa o processo de ponto de verificação para manter o estado de processamento. Durante uma falha de zona, os trabalhadores de zonas saudáveis reprocessam automaticamente os trabalhos em execução na zona com falha a partir do último ponto de verificação.
Perda de dados esperada: O sistema de ponto de verificação de trabalho não garante nenhuma perda de dados.
Tempo de inatividade esperado: Os trabalhos em andamento são retomados automaticamente após a plataforma movê-los para um trabalhador íntegro.
Redirecionamento de tráfego: O serviço redireciona automaticamente todos os novos dados de entrada para trabalhadores em zonas íntegras. As conexões existentes de fontes de dados de entrada são restabelecidas com trabalhadores nas zonas operacionais. As conexões de saída são restabelecidas da mesma forma, o que garante o fluxo de dados contínuo por meio do pipeline de streaming.
Recuperação de zona
Quando a zona de disponibilidade com falha é recuperada, o Stream Analytics a reintegra automaticamente no pool de processamento ativo. Os trabalhos começam a usar a infraestrutura recuperada.
Você não realiza nenhuma ação para recuperação de zona. A plataforma lida com todas as tarefas de recuperação de zona, incluindo replicação de estado e redistribuição de carga de trabalho.
Testar falhas em zonas
A plataforma do Stream Analytics gerencia o roteamento de tráfego, o failover e a recuperação de zona, portanto, você não precisa iniciar ou validar processos de falha de zona de disponibilidade.
Resiliência a falhas em toda a região
O Stream Analytics implanta recursos em uma única região do Azure. Se a região ficar indisponível, seus trabalhos (e clusters dedicados, se aplicável) também ficarão indisponíveis.
Soluções personalizadas de várias regiões para resiliência
Para obter resiliência de várias regiões para suas cargas de trabalho de streaming, considere implantar trabalhos separados em várias regiões. Ao adotar essa abordagem, você é responsável por implantar e gerenciar os trabalhos e por configurar as estratégias apropriadas de roteamento e replicação de dados. Os trabalhos do Stream Analytics são duas entidades separadas. É responsabilidade do aplicativo enviar dados de entrada para entradas regionais e reconciliar as saídas regionais. Para obter mais informações, consulte Obter redundância geográfica para trabalhos do Stream Analytics.
Backup e recuperação
O Stream Analytics não tem um recurso de backup e restauração interno.
Se você quiser mover, copiar ou fazer backup da definição e configuração de seus trabalhos, poderá usar a extensão do Stream Analytics para Visual Studio Code para exportar um trabalho existente na nuvem do Azure para seu computador local. Depois de salvar toda a configuração de seus trabalhos do Stream Analytics localmente, você pode implantá-la na mesma região ou em outra região do Azure. Para obter mais informações, consulte Copiar, fazer backup e mover seus trabalhos do Stream Analytics.
Resiliência à manutenção do serviço
O Stream Analytics faz a manutenção automática da plataforma para aplicar atualizações de segurança, implantar novos recursos e melhorar a confiabilidade do serviço. Ele pode implantar atualizações de serviço semanalmente ou com mais frequência. O Stream Analytics testa todas as novas atualizações para garantir alta qualidade.
Considere os seguintes pontos para garantir que seus trabalhos sejam resilientes às atividades de manutenção do serviço:
Configure trabalhos para serem resilientes a reproduções. O Stream Analytics normalmente usa pontos de verificação para restaurar dados após a manutenção do serviço. Mas, às vezes, é necessário usar uma técnica de reprodução. Você precisa configurar suas fontes de dados de entrada para que as reproduções não causem resultados incorretos ou parciais na saída. Para mais informações, consulte Recuperação de tarefa após a atualização de serviço.
Considere atenuar o risco de bugs implantando trabalhos idênticos. O serviço procura proativamente sinais após a implantação em cada lote para verificar se a implantação apresenta bugs. Mas não importa o quanto você teste, um trabalho em andamento existente pode falhar quando a manutenção introduz um problema. Se você executar trabalhos críticos, execute etapas para atenuar esse risco.
Você pode reduzir o risco de um bug afetar sua carga de trabalho implantando trabalhos idênticos em duas regiões do Azure. Monitore esses trabalhos para receber notificações quando ocorrer algo inesperado. Se um desses trabalhos entrar em um estado com falha após uma atualização de serviço do Stream Analytics, execute as seguintes ações:
- Entre em contato com o suporte do Azure para ajudar a identificar a causa e corrigir o problema.
- Redirecione todos os consumidores downstream para usar a saída do trabalho íntegro.
Ao selecionar regiões do Azure a serem usadas para seu trabalho secundário, considere se sua região tem uma região emparelhada. A lista de regiões do Azure tem as informações mais atualizadas sobre quais regiões estão emparelhadas. O Stream Analytics garante que a infraestrutura em regiões emparelhadas seja atualizada em horários diferentes. As atualizações no Stream Analytics não são implantadas ao mesmo tempo em um conjunto de regiões emparelhadas. Existe uma lacuna de tempo suficiente entre as atualizações para identificar e corrigir possíveis problemas.
Contrato de nível de serviço
O acordo de nível de serviço (SLA) dos serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para alcançar essa expectativa de disponibilidade. Para obter mais informações, consulte SLAs para serviços online.
O Stream Analytics fornece SLAs de disponibilidade separados para chamadas à API para gerenciar trabalhos e para as operações dos trabalhos.