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 permitem criar pipelines complexos de processamento de eventos com 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, incluindo falhas transitórias e interrupções de zona de disponibilidade. Também fornecemos diretrizes sobre como proteger trabalhos críticos contra interrupções de região e manutenção de serviço e realçamos algumas informações importantes sobre o SLA (contrato de nível de serviço) do Stream Analytics.
Importante
Melhorar a resiliência do Stream Analytics sozinho poderá ter impacto 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 com o Stream Analytics, recomendamos que você:
- Use regiões com 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 unidades de streaming com base na taxa de transferência esperada, com capacidade adicional para lidar com cargas de pico e com um buffer acima dos requisitos de linha de base em caso de aumentos repentinos.
- Monitorar a integridade: Implemente um monitoramento abrangente usando as métricas e os logs de diagnóstico do Azure Monitor para acompanhar a integridade do trabalho, os eventos de entrada/saída e a utilização de recursos. Configure alertas para métricas críticas, como atraso na marca d'água 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 Azure Stream Analytics.
- Implementar 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 com configurações sincronizadas e roteamento de dados apropriado para obter resiliência regional. Embora o Stream Analytics não forneça replicação nativa de várias regiões, 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
Uma tarefa é a unidade fundamental no Stream Analytics que permite definir e executar sua lógica de processamento de streams. 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 vários destinos, como Banco de Dados SQL do Azure, Azure Data Lake Storage, Azure Cosmos DB, Power BI e muito mais.
Para obter mais informações sobre os trabalhos do Stream Analytics e o modelo de recurso, consulte o modelo de recurso do Azure 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 uma operação robusta de seus trabalhos:
Nós de trabalho. Trabalhos do Stream Analytics em VMs (máquinas virtuais) chamados worker nodes que são executados dentro de um cluster. Quando você usa os SKUs Standard ou StandardV2, 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.
Como a plataforma gerencia automaticamente a criação de nó de trabalho, o posicionamento do trabalho entre nós de trabalho, o monitoramento de integridade e a substituição de nós de trabalho não íntegros, você não visualiza nem gerencia as VMs diretamente.
Unidades de streaming. Enquanto a plataforma gerencia os nós de trabalho e a distribuição de tarefas entre eles, você é responsável por alocar unidades de streaming (SUs) aos trabalhos. 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. Para obter mais informações, consulte Entender e ajustar unidades de streaming do Stream Analytics.
Pontos de verificação. O Stream Analytics mantém o estado do trabalho por meio do ponto de verificação regular de estado. Os pontos de verificação permitem a recuperação rápida com reprocessamento mínimo de dados em caso de falhas, mesmo para trabalhos que usam lógica de consulta com estado.
Quando ocorrem falhas de processamento, o Stream Analytics é reiniciado automaticamente do último ponto de verificação e reprocessa automaticamente 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. No entanto, a obtenção da entrega exatamente uma vez de ponta a ponta depende dos recursos do destino de saída. Para obter mais informações, consulte Conceitos de ponto de verificação e replay nos trabalhos de Azure Stream Analytics.
Observação
Com o Azure Stream Analytics no IoT Edge , você pode executar trabalhos em sua própria infraestrutura. Quando você usa o Stream Analytics no IoT Edge, é responsável por configurá-lo para atender aos seus requisitos de confiabilidade. O Stream Analytics no IoT Edge está fora do escopo deste artigo.
Resilência para 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, tanto ao ingerir dados de entradas quanto ao gravar dados em saídas, graças aos mecanismos de repetição internos. Após a reinicialização de um nó de trabalho ou a reatribuição do trabalho, o trabalho usa pontos de verificação para reproduzir todos os 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. No entanto, essas políticas se aplicam apenas a erros de conversão de dados e não influenciam o comportamento para lidar 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 utilizam várias zonas de disponibilidade. A redundância de zona garante que seu trabalho seja resiliente a um grande conjunto de falhas, incluindo interrupções catastróficas do datacenter, sem alterações na lógica do aplicativo.
Quando você cria um trabalho do Stream Analytics em uma região que oferece suporte a zonas, o serviço distribui os recursos de computação do seu trabalho em 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 operações de gerenciamento de trabalho. Stream Analytics replica automaticamente o estado e os dados de ponto de verificação do seu trabalho em zonas de disponibilidade, prevenindo a perda de dados e permitindo um tempo de inatividade quase zero durante falhas de zona.
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 as regiões do Azure com zonas de disponibilidade.
- SKUs: 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 adicionais. Você paga a mesma taxa para unidades de streaming, quer seu trabalho seja executado em uma configuração com redundância de zona ou não. Para obter informações, consulte os preços do Azure Stream Analytics.
Configurar o suporte à zona de disponibilidade
Crie um trabalho do Stream Analytics com redundância de zona. A redundância de zona é habilitada automaticamente quando você cria um trabalho do Stream Analytics 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 dedicado do Azure Stream Analytics usando o portal do Azure.
Habilitar a redundância de zona. Todos os trabalhos e clusters dedicados são automaticamente redundantes em regiões com zonas de disponibilidade. Você não precisa habilitar a redundância de zona.
Desabilite a redundância de zona. A redundância de zona não pode ser desabilitada.
Comportamento quando todas as zonas estão saudáveis
Esta seção descreve o que esperar quando você configura trabalhos do Stream Analytics com suporte à zona de disponibilidade e todas as zonas de disponibilidade estão operacionais.
Roteamento de tráfego entre zonas. Stream Analytics executa cada trabalho em nodos de trabalho. Os dados de streaming de entrada podem ser processados por trabalhadores em qualquer zona. 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 a tarefa processa eventos e atualiza seu estado, o Stream Analytics grava estas alterações em várias zonas de disponibilidade antes de reconhecê-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 você configura trabalhos do Stream Analytics com suporte à zona de disponibilidade e há uma interrupção da zona de disponibilidade.
- Detecção e resposta: a plataforma Stream Analytics é responsável por detectar uma falha em uma zona de disponibilidade e responder. O Stream Analytics marca os trabalhadores na zona com falha como não íntegros, e os trabalhos em execução nesses trabalhadores são automaticamente redistribuídos para os trabalhadores nas zonas íntegras 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: os trabalhos em execução são transferidos 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 eventos em curso que estão sendo processados por processadores na zona com falha são automaticamente reprocessados do último ponto de verificação por processadores em zonas íntegras.
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 entrada são restabelecidas com trabalhadores em zonas operacionais. As conexões de saída são restabelecidas da mesma forma, garantindo 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 toma nenhuma ação para recuperação de zona, pois a plataforma lida com todos os aspectos das operações de recuperação de zona, incluindo sincronização de estado e redistribuição de carga de trabalho.
Testar falhas em zonas
À medida que a plataforma do Stream Analytics gerencia o roteamento de tráfego, o failover e a recuperação de zona, você não precisa iniciar nem 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 fazer isso, você é responsável por implantar e gerenciar os trabalhos e por configurar as estratégias apropriadas de roteamento e sincronização de dados. Os trabalhos do Stream Analytics são duas entidades separadas. É responsabilidade do seu aplicativo enviar dados de entrada para entradas regionais e reconciliar as saídas regionais. Para obter mais informações sobre essa abordagem, consulte Obter redundância geográfica para trabalhos do Stream Analytics.
Backup e restauração
O Stream Analytics não tem um recurso de backup e restauração interno.
No entanto, 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ê poderá implantá-la na mesma região ou em outra região do Azure. Para saber como copiar, fazer backup e mover seus trabalhos do Stream Analytics, consulte Copiar, fazer backup e mover seus trabalhos do Azure Stream Analytics.
Resiliência à manutenção do serviço
O Stream Analytics executa a manutenção automática da plataforma para aplicar atualizações de segurança, implantar novos recursos e melhorar a confiabilidade do serviço. Como resultado, o Stream Analytics pode ter atualizações de serviço implantadas semanalmente (ou mais frequentes). O serviço Stream Analytics garante que qualquer nova atualização passe por anéis internos rigorosos para ter a mais alta qualidade.
Considere os seguintes pontos para garantir que seus trabalhos sejam resilientes às atividades de manutenção do serviço:
Configure tarefas para serem resilientes a reexecuções: Os pontos de verificação geralmente são usados para restaurar dados após a manutenção do serviço. No entanto, em algumas situações, uma técnica de reprodução precisa ser usada em vez de um ponto de verificação. Para obter mais informações e saber como configurar suas fontes de dados de entrada para que as reproduções não causem resultados incorretos ou parciais em sua saída, confira Recuperação de trabalho após atualização de serviço.
Considere atenuar o risco de bugs implantando trabalhos idênticos: O serviço procura proativamente muitos sinais após a implantação em cada lote para ter mais confiança de que não há bugs introduzidos. No entanto, independentemente da quantidade de testes feita, ainda há o risco de que um trabalho existente em execução possa ser interrompido devido à introdução de um problema introduzido pela manutenção. Se você executar trabalhos críticos, deverá tomar medidas para evitar 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. Em seguida, você deve monitorar esses trabalhos para receber notificações quando algo inesperado acontecer. Se um desses trabalhos acabar em um estado com falha após uma atualização de serviço do Stream Analytics, você deverá:
- Entre em contato com o suporte do Azure para ajudar a identificar a causa e resolver 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. A implantação de uma atualização no Stream Analytics não ocorre ao mesmo tempo em um conjunto de regiões emparelhadas. Como resultado, há um intervalo de tempo suficiente entre as atualizações para identificar possíveis problemas e corrigi-los.
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.