Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Azure Stream Analytics é um serviço altamente resiliente que processa e analisa dados em streaming de múltiplas fontes em simultâneo. O Stream Analytics fornece-lhe a informação que lhe permite construir pipelines complexos de processamento de eventos com consultas semelhantes ao SQL.
Quando você usa o Azure, a confiabilidade é uma responsabilidade compartilhada. A Microsoft fornece uma variedade de recursos para oferecer 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 a Stream Analytics é resiliente a potenciais problemas, incluindo falhas transitórias e interrupções em zonas de disponibilidade. Também fornecemos orientações sobre como proteger empregos críticos contra interrupções regionais e manutenção de serviços, destacando algumas informações chave sobre o acordo de nível de serviço (SLA) da Stream Analytics.
Importante
Melhorar a resiliência do Stream Analytics sozinho pode ter um impacto limitado se os outros componentes não forem igualmente resilientes. Considere a fiabilidade das suas fontes de dados, incluindo entradas e saídas. Dependendo dos seus 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 alta fiabilidade em ambientes de produção com Stream Analytics, recomendamos que:
- Use regiões com zonas de disponibilidade: Implemente os seus trabalhos de streaming e outros recursos em regiões que suportem zonas de disponibilidade.
- Configurar capacidade suficiente: Defina as suas unidades de streaming com base na sua largura de banda esperada, com capacidade adicional para lidar com cargas de pico e com um buffer acima dos seus requisitos básicos em caso de aumentos súbitos.
- Monitorizar a saúde: Implemente monitorização abrangente utilizando métricas e registos de diagnóstico do Azure Monitor para acompanhar a saúde do trabalho, eventos de entrada/saída e utilização de recursos. Configure alertas para métricas críticas, como watermark delay e erros em tempo de execução, para detetar problemas antecipadamente e evitar que afetem o processamento de dados. Para mais informações, consulte Monitorizar Azure Stream Analytics.
- Implementar redundância multi-região para cargas de trabalho críticas para a missão: Implemente trabalhos idênticos de Stream Analytics em várias regiões com configurações sincronizadas e encaminhamento de dados adequado para alcançar resiliência regional. Embora o Stream Analytics não forneça replicação nativa multi-região, esta 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 secção descreve alguns dos aspetos importantes do funcionamento do serviço que são mais relevantes do ponto de vista da fiabilidade. A secção apresenta a arquitetura lógica, que inclui alguns dos recursos e funcionalidades que implementa e utiliza. Também discute a arquitetura física, detalhando como o serviço funciona nos bastidores.
Arquitetura lógica
Um job é a unidade fundamental no Stream Analytics que permite definir e executar a sua lógica de processamento de dados em fluxo. Um trabalho consiste nos seguintes componentes principais:
- Entradas que leem dados em streaming de fontes de dados, como Azure Event Hubs, Azure IoT Hub ou Azure Storage.
- Uma consulta que processa e transforma os dados.
- Saídas que escrevem continuamente resultados para vários destinos, como Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB, Power BI, entre outros.
Para mais informações sobre empregos de Stream Analytics e o modelo de recursos, consulte Azure Stream Analytics resource model.
Arquitetura física
A Análise de Fluxos alcança elevada fiabilidade ao aplicar múltiplas camadas de resiliência para mitigar problemas na infraestrutura subjacente e nas fontes de dados de entrada e saída. Os seguintes componentes ajudam a garantir uma operação robusta dos seus trabalhos:
Nós de trabalho. Trabalhos de Stream Analytics são executados em máquinas virtuais (VMs) chamadas "nós de trabalho" que funcionam dentro de um cluster. Quando usas os SKUs Standard ou StandardV2, os teus trabalhos correm em clusters partilhados. Quando usas o SKU Dedicado , os teus trabalhos correm num cluster dedicado próprio.
Como a plataforma gere automaticamente a criação de nós de trabalho, a alocação de tarefas entre nós de trabalho, a monitorização da saúde e a substituição de nós de trabalho com falhas, não vê nem gere diretamente as VMs.
Unidades de streaming. Enquanto a plataforma gere os nós de trabalho e a distribuição de tarefas entre os nós de trabalho, tu és responsável por alocar as unidades de streaming (SUs) às tarefas. Os 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 mais informações, consulte Compreender e ajustar as unidades de streaming de Stream Analytics.
Pontos de controlo. A Stream Analytics mantém o estado do trabalho através de checkpoints regulares do estado. Os checkpoints permitem uma recuperação rápida com reprocessamento mínimo de dados em caso de falhas, mesmo para trabalhos que utilizam lógica de consulta com estado.
Quando ocorrem falhas de processamento, o Stream Analytics reinicia automaticamente a partir do último ponto de verificação e reprocessa automaticamente os eventos que falham durante o processamento. Esta garantia aplica-se a todas as funções incorporadas e definidas pelo utilizador dentro do trabalho. No entanto, alcançar uma entrega ponta a ponta exatamente uma vez depende das capacidades do seu destino de saída. Para mais informações, consulte conceitos de Checkpoint e de replay nas tarefas Azure Stream Analytics.
Observação
Com o Azure Stream Analytics no IoT Edge , pode executar trabalhos na sua própria infraestrutura. Quando utiliza o Stream Analytics no IoT Edge, é responsável por configurá-lo para satisfazer os seus requisitos de fiabilidade. A análise de fluxos no IoT Edge está fora do âmbito deste artigo.
Resilêncio para falhas transitórias
Falhas transitórias são falhas curtas e intermitentes em componentes. Eles ocorrem com frequência em um ambiente distribuído, como a nuvem, e são uma parte normal das operações. As falhas transitórias corrigem-se após um curto período de tempo. É importante que seus aplicativos possam lidar com falhas transitórias, geralmente tentando novamente as solicitações afetadas.
Todos os aplicativos hospedados na nuvem devem seguir as diretrizes de tratamento de falhas transitórias do Azure quando se comunicam com quaisquer APIs, bancos de dados e outros componentes hospedados na nuvem. Para obter mais informações, consulte Recomendações para o tratamento de falhas transitórias.
A Stream Analytics gere automaticamente muitas falhas transitórias, tanto para a ingestão de dados a partir das entradas como para a escrita de dados nas saídas, através de mecanismos de retries incorporados. Após um reinício de nó de trabalho ou uma reatribuição de tarefas, o trabalho usa pontos de controlo para reproduzir quaisquer eventos que não tenham sido totalmente processados e continua a processar até chegar ao fluxo de entrada atual.
É uma boa prática configurar políticas de erro de saída. No entanto, estas políticas aplicam-se apenas a erros de conversão de dados e não influenciam o comportamento no tratamento de falhas transitórias.
Resiliência a falhas na zona de disponibilidade
As zonas de disponibilidade são grupos fisicamente separados de centros de dados dentro de uma região Azure. Quando uma zona falha, os serviços podem ser transferidos para uma das zonas restantes.
A Análise de Fluxos é automaticamente redundante por zonas em regiões que suportam zonas de disponibilidade, o que significa que os empregos usam múltiplas zonas de disponibilidade. A redundância de zonas garante que o seu trabalho é resiliente a um grande conjunto de falhas, incluindo falhas catastróficas nos centros de dados, sem quaisquer alterações na lógica da aplicação.
Quando cria um trabalho de Stream Analytics numa região habilitada por zonas, o serviço distribui os recursos computacionais do seu trabalho por várias zonas de disponibilidade:
Este modelo de implementação redundante por zonas garante que os seus trabalhos de streaming continuam a processar dados mesmo que uma zona inteira de disponibilidade fique indisponível. Por exemplo, o diagrama seguinte mostra como os trabalhos continuam a funcionar se a zona 3 sofrer uma falha:
A redundância de zonas aplica-se a todas as funcionalidades de Análise de Fluxos, incluindo processamento de consultas, checkpointing e operações de gestão de trabalhos. A Stream Analytics replica automaticamente o estado e os dados dos pontos de controlo do seu trabalho entre zonas de disponibilidade, prevenindo a perda de dados e permitindo quase zero inatividade durante falhas de zona.
Requerimentos
- Apoio regional: A redundância de zonas para recursos de Stream Analytics é suportada em qualquer região que suporte zonas de disponibilidade. Para a lista completa de regiões que suportam zonas de disponibilidade, veja regiões Azure com zonas de disponibilidade.
- SKUs: A redundância de zonas está disponível em todos os SKUs de Stream Analytics.
Custo
A redundância de zonas no Stream Analytics não acarreta custos adicionais. Pagas a mesma taxa por unidades de streaming, quer o teu trabalho funcione numa configuração redundante de zona ou não. Para mais informações, consulte preços Azure Stream Analytics.
Configurar o suporte à zona de disponibilidade
Crie um trabalho de Stream Analytics redundante por zona. A redundância de zonas é ativada automaticamente quando cria um trabalho de Stream Analytics numa região suportada. Nenhuma configuração é necessária.
Para instruções de implementação, consulte Quickstart: Criar um trabalho de Stream Analytics usando o portal Azure e Quickstart: Criar um cluster dedicado Azure Stream Analytics usando o portal Azure.
Habilite a redundância de zona. Todos os trabalhos e clusters dedicados são automaticamente redundantes em várias zonas nas regiões com zonas de disponibilidade. Não é necessário ativar a redundância de zona.
Desative a redundância de zona. A redundância de zona não pode ser desativada.
Comportamento quando todas as zonas estão íntegras
Esta secção descreve o que esperar quando configura tarefas do Stream Analytics com suporte para zonas de disponibilidade e todas as zonas de disponibilidade estão operacionais.
Roteamento de tráfego entre zonas. Stream Analytics processa cada trabalho em nodos de processamento. Os dados de streaming recebidos podem ser processados por trabalhadores em qualquer zona. O serviço utiliza balanceamento de carga interno para distribuir tarefas de processamento entre zonas.
Replicação de dados entre zonas. A Stream Analytics replica os dados do estado do trabalho e dos checkpoints de forma síncrona entre zonas de disponibilidade. À medida que o trabalho processa eventos e atualiza o seu estado, o Stream Analytics escreve essas alterações em múltiplas zonas de disponibilidade antes de as reconhecer. Esta replicação síncrona garante perda de dados nula, mesmo que uma zona inteira se torne indisponível. O processo de replicação é transparente para a sua aplicação e não afeta a latência de processamento em condições normais.
Comportamento durante uma falha de zona
Esta secção descreve o que esperar quando configura jobs do Stream Analytics com suporte a zonas de disponibilidade e ocorre uma falha na zona de disponibilidade.
- Deteção e resposta: A plataforma Stream Analytics é responsável por detetar falhas numa zona de disponibilidade e responder. O Stream Analytics marca os trabalhadores na zona falhada como doentes, e os empregos que funcionam com esses trabalhadores são automaticamente redistribuídos 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 o notifica automaticamente quando uma zona está inativa. No entanto, pode utilizar o Azure Resource Health para monitorizar a integridade de um recurso individual, e pode configurar alertas de integridade de recursos para notificá-lo de problemas. Também pode usar o Azure Service Health para compreender o estado geral do serviço, incluindo quaisquer falhas de zona, e pode configurar alertas de Service Health para o notificar de problemas.
Pedidos ativos: Os trabalhos em funcionamento são transferidos para outro trabalhador numa zona de disponibilidade saudável.
O Stream Analytics utiliza checkpointing para manter o estado de processamento. Durante uma falha de zona, os eventos em voo processados pelos trabalhadores na zona falhada são automaticamente reprocessados a partir do último ponto de controlo pelos trabalhadores em zonas saudáveis.
Perda esperada de dados: O sistema de checkpointing de tarefas garante que não há perda de dados.
Tempo de inatividade esperado: Os trabalhos em curso retomam automaticamente depois de a plataforma os transferir para um trabalhador saudável.
Redirecionamento de tráfego: O serviço redireciona automaticamente todos os novos dados de entrada para trabalhadores em zonas saudáveis. As conexões existentes a partir das fontes de entrada são restabelecidas com os operadores nas zonas operacionais. As ligações de saída são igualmente restabelecidas, garantindo um fluxo contínuo de dados através do seu pipeline de streaming.
Recuperação de zona
Quando a zona de disponibilidade falhada recupera, a Stream Analytics reintegra-a automaticamente no pool de processamento ativo. Os empregos começam a utilizar a infraestrutura recuperada.
Não tomas qualquer ação para a recuperação de zonas, porque a plataforma trata de todos os aspetos das operações de recuperação de zonas, incluindo sincronização de estados e redistribuição de cargas de trabalho.
Teste de falhas de zona
Como a plataforma Stream Analytics gere o encaminhamento de tráfego, o failover e a recuperação de zonas, não precisa de iniciar ou validar processos relacionados com a falha de zona de disponibilidade.
Resiliência a falhas em toda a região
A Stream Analytics implementa recursos numa única região Azure. Se a região ficar indisponível, os seus empregos (e clusters dedicados, se aplicável) também ficam indisponíveis.
Soluções personalizadas de várias regiões para resiliência
Para alcançar resiliência multi-região para as suas cargas de trabalho em streaming, considere implementar tarefas separadas em várias regiões. Quando o fazes, és responsável por implementar e gerir os trabalhos, bem como por configurar as estratégias adequadas de encaminhamento e sincronização de dados. As tarefas de Stream Analytics são duas entidades separadas. É responsabilidade da sua aplicação enviar os dados para as entradas regionais e reconciliar as saídas regionais. Para mais informações sobre esta abordagem, consulte Alcançar a geo-redundância para trabalhos em Análise de Fluxos.
Backup e restauração
O Stream Analytics não tem uma funcionalidade de backup e restauro incorporada.
No entanto, se quiseres mover, copiar ou fazer backup da definição e configuração dos teus trabalhos, podes usar a extensão Stream Analytics para o Visual Studio Code para exportar um trabalho existente na cloud Azure para o teu computador local. Depois de guardar toda a configuração dos seus trabalhos de Stream Analytics localmente, pode implementá-lo na mesma ou noutra região Azure. Para aprender a copiar, fazer backup e mover os seus empregos de Stream Analytics, consulte Copiar, fazer backup e mover os seus empregos Azure Stream Analytics.
Resiliência à manutenção de serviços
A Stream Analytics realiza manutenção automática da plataforma para aplicar atualizações de segurança, implementar novas funcionalidades e melhorar a fiabilidade do serviço. Como resultado, a Análise de Fluxos pode ter atualizações de serviço implementadas semanalmente (ou com mais frequência). O serviço Stream Analytics garante que qualquer nova atualização passa por rigorosos anéis internos para ter a mais alta qualidade.
Considere os seguintes pontos para garantir que os seus trabalhos são resilientes às atividades de manutenção de serviço:
Configure os trabalhos para serem resilientes a repetições: Os pontos de controlo são normalmente usados para restaurar dados após a manutenção do serviço. No entanto, ocasionalmente é necessário usar uma técnica de repetição em vez de um ponto de controlo. Para mais informações e para aprender a configurar as suas fontes de dados de entrada para que as repetições não causem resultados incorretos ou parciais nos seus resultados, consulte Recuperação de trabalhos a partir de uma atualização de serviço.
Considere mitigar o risco de bugs implementando tarefas idênticas: O serviço procura proativamente muitos sinais após o implemento em cada lote para ganhar mais confiança de que não foram introduzidos bugs. No entanto, independentemente da quantidade de testes realizados, ainda existe o risco de que uma tarefa existente e em execução possa quebrar devido à introdução de um problema causado pela manutenção. Se executas trabalhos críticos, deves tomar medidas para evitar este risco.
Pode reduzir o risco de um bug afetar a sua carga de trabalho ao implementar tarefas idênticas em duas regiões Azure. Deve então monitorizar estes trabalhos para receber notificações quando algo inesperado acontecer. Se um destes empregos acabar num estado de falha após uma atualização do serviço de Stream Analytics, deve:
- Contacte o suporte da Azure para ajudar a identificar a causa e resolver o problema.
- Falhe com quaisquer consumidores a jusante para usar a produção saudável de empregos.
Quando seleciona regiões do Azure para utilizar no seu trabalho secundário, considere se a sua região possui uma região emparelhada. A lista de regiões 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 é atualizada em diferentes momentos. A implementação de uma atualização do Stream Analytics não ocorre ao mesmo tempo num conjunto de regiões emparelhadas. Como resultado, existe um intervalo de tempo suficiente entre as atualizações para identificar potenciais problemas e resolvê-los.
Contrato de nível de serviço
O contrato de nível de serviço (SLA) para serviços do Azure descreve a disponibilidade esperada de cada serviço e as condições que sua solução deve atender para atingir essa expectativa de disponibilidade. Para obter mais informações, consulte Acordos de Nível de Serviço (SLAs) para serviços online.
O Stream Analytics fornece SLAs de disponibilidade separados para chamadas API para gerir trabalhos e para as operações desses trabalhos.