Confiabilidade em sua carga de trabalho de IoT

As cargas de trabalho de IoT, como todas as cargas de trabalho, têm o potencial de apresentar mau funcionamento. As principais considerações de confiabilidade para soluções de IoT bem arquitetas são a rapidez com que você pode detectar alterações e a rapidez com que pode retomar as operações.

Os aplicativos de IoT geralmente são distribuídos em grande escala e podem operar em redes não confiáveis sem acesso persistente ou visibilidade em fluxos de dados de ponta a ponta. Devido a esses fatores, você deve projetar sua arquitetura de IoT com disponibilidade e resiliência em mente.

A criação de uma solução de IoT confiável requer uma consideração cuidadosa de dispositivos, serviços de nuvem e como eles interagem. As escolhas que você faz para hardware do dispositivo, conectividade e protocolos e serviços de nuvem afetam os requisitos e os recursos de confiabilidade da solução.

Avaliar a confiabilidade em sua carga de trabalho de IoT

Para avaliar sua carga de trabalho de IoT por meio das lentes do pilar confiabilidade do Well-Architected Framework, conclua as perguntas de confiabilidade para cargas de trabalho de IoT no Azure Well-Architected Review. Depois que a avaliação identificar as principais recomendações de confiabilidade para sua solução de IoT, use o conteúdo a seguir para ajudar a implementar as recomendações.

Princípios de design

Cinco pilares de excelência arquitetônica sustentam a metodologia de design de carga de trabalho de IoT. Esses pilares servem como uma bússola para decisões de design subsequentes nas principais áreas de design de IoT. Os princípios de design a seguir estendem o pilar de qualidade do Azure Well-Architected Framework – Confiabilidade.

Princípio de design Considerações
Projetar dispositivos para resiliência Projete seus dispositivos para atender aos requisitos de tempo de atividade e disponibilidade de sua solução de ponta a ponta. Verifique se o dispositivo IoT pode operar com eficiência com conectividade intermitente com a nuvem.
Design para requisitos de negócios As implicações de custo são inevitáveis ao introduzir modificações arquitetônicas para atender aos SLAs (contratos de nível de serviço). Por exemplo, para ter maior confiabilidade e alta disponibilidade, você pode implementar redundâncias entre regiões e um sistema automatizado para dimensionamento automático. Essa compensação deve ser considerada cuidadosamente.
Procedimentos de atualização simples e seguros Uma solução de IoT corporativa deve fornecer uma estratégia para como os operadores gerenciam dispositivos. Os operadores de IoT exigem ferramentas e práticas de atualização simples e confiáveis.
Observe a integridade do aplicativo Defina SLIs (indicadores de nível de serviço) e SLOs (objetivos de nível de serviço) com base na observabilidade. Adicione processos para auditoria, monitoramento e alertas além do que os serviços de nuvem fornecem.
Alta disponibilidade e recuperação de desastre (HA/DR) para componentes críticos. Componentes de hardware e software resilientes que criam redundância, incluindo redundâncias entre regiões.
Planejar capacidade Planeje cotas e restrições de serviço, latência entre a ação de detecção e estabeleça parâmetros de comparação em escala de produção para dar suporte ao fluxo de dados ininterrupto.

Camadas da arquitetura de IoT

Os princípios de design de confiabilidade ajudam a esclarecer considerações para garantir que sua carga de trabalho de IoT atenda aos requisitos nas camadas fundamentais da arquitetura de IoT. Para obter a confiabilidade geral da solução, cada camada deve ter níveis aceitáveis de confiabilidade.

Diagrama que mostra as camadas e as atividades transversais em uma arquitetura de IoT.

Camada de dispositivo e gateway

Como parte de sua solução geral de IoT, projete seus dispositivos para atender aos requisitos de tempo de atividade e disponibilidade de ponta a ponta da solução. Dispositivos e gateways vêm de várias formas. Os dispositivos e gateways de IoT podem fazer coleta de dados, controle de supervisão e análise de borda.

  • A coleta de dados conecta dispositivos a sensores ou os assina para telemetria de sistemas downstream e envia dados coletados para a nuvem. O design da solução de IoT deve garantir o gerenciamento de dispositivo confiável e as comunicações confiáveis do dispositivo para a nuvem.

  • Os dispositivos que fornecem controle de supervisão não apenas coletam dados para enviar para a nuvem, mas também tomam ações com base nesses dados. Os dispositivos enviam dados de volta para os computadores ou ambiente para executar ações de supervisão. A confiabilidade dos aplicativos de controle de supervisão é crítica.

Design do dispositivo

Projete e selecione dispositivos IoT para funcionar de forma confiável nas condições operacionais esperadas durante o tempo de vida esperado. Um dispositivo confiável deve ser executado de acordo com suas especificações de hardware e software, e qualquer falha deve ser detectada e gerenciada por meio de mitigação, reparo ou substituição. Projete dispositivos para confiabilidade, mas também planeje falhas.

Ciclo de vida do dispositivo

Tempos de vida limitados do serviço afetam a confiabilidade da solução. Avalie as consequências da falha do dispositivo na solução e defina uma estratégia de ciclo de vida do dispositivo de acordo com os requisitos da solução.

A avaliação de impacto da falha do dispositivo inclui:

  • Gravidade, como pontos únicos de falhas.
  • Probabilidade, como o tempo médio entre falhas.
  • Detectabilidade, como o modo de falha e a análise de efeitos.
  • Período de tempo de inatividade aceitável.

O tempo de inatividade operacional aceitável determina a velocidade e a extensão da manutenção do dispositivo. A disponibilidade ou longevidade do dispositivo e do fornecimento de parte é uma consideração importante para o ciclo de vida do dispositivo.

Quanto mais modular o design, mais fácil será trocar partes do sistema, especialmente se algumas partes se tornarem obsoletas mais cedo do que outras. As cadeias de fornecimento de componentes e módulos alternativas ou multi-sourcing são essenciais para soluções confiáveis.

Requisitos ambientais

As condições nas quais um dispositivo opera afetam sua confiabilidade. Defina seus requisitos ambientais e use dispositivos com especificações de recursos apropriadas. Essas especificações incluem parâmetros como intervalo de temperatura operacional, umidade, classificação de IP (proteção de entrada), imunidade de EMI (interferência eletromagnética) e imunidade de choque e vibração.

Perfil operacional

O estresse de desempenho afeta o comportamento operacional dos dispositivos e, portanto, sua confiabilidade. Defina perfis operacionais que estimam o comportamento durante o tempo de vida do dispositivo e avaliem a confiabilidade do dispositivo adequadamente. Esses perfis incluem modos de operação, como transmissão sem fio ou modos de baixa energia, e condições ambientais, como temperatura, durante o tempo de vida do dispositivo.

Em condições operacionais normais, o dispositivo e o software devem ser executados com segurança dentro dos perfis operacionais especificados. Os dispositivos devem ser capazes de atender e processar todos os sensores externos e o processamento de dados exigidos pela solução. Evite executar no limite de funcionalidades do dispositivo.

Regulamentos e padrões

Os dispositivos para setores específicos estão sujeitos a normas e padrões aplicáveis. Defina regulamentos e padrões e verifique se os dispositivos atendem aos requisitos de conformidade e conformidade. Os regulamentos incluem certificação e marcação, como FCC ou CE. Os padrões incluem aplicativos do setor ou de agências, como ATEX e MIL-SPEC, e conformidade com a segurança, por exemplo, IEC 61508.

Camada de modelagem e gerenciamento de dispositivo

Os serviços de nuvem fornecem a cada dispositivo uma identidade e gerenciam dispositivos em escala. A nuvem geralmente é o ponto de entrada de dados final para todas as mensagens que fluem dos dispositivos. Em soluções de IoT, os serviços de nuvem devem fornecer confiabilidade para que os dispositivos IoT integrem e transmitam dados.

As condições de conectividade do dispositivo, incluindo upstream para a nuvem e downstream para redes locais, devem fazer parte do design de confiabilidade da solução de IoT. Avalie o efeito potencial de interrupção ou interferência de conectividade e defina uma estratégia de conectividade adequadamente.

A estratégia de conectividade deve incluir robustez, por exemplo, recurso de fallback e gerenciamento de desconexão e backup de buffer para atenuar a dependência de nuvem para funções críticas ou de segurança.

As práticas de design, tratamento de erros e monitoramento a seguir estão relacionadas à conectividade.

Design de conectividade

Uma solução de IoT deve habilitar o fluxo de informações entre dispositivos conectados intermitentemente e serviços baseados em nuvem. Verifique se os dispositivos IoT podem operar com eficiência com conectividade intermitente com a nuvem.

As práticas recomendadas incluem as seguintes recomendações:

  • Implemente a lógica de repetição e retirada no software do dispositivo.
  • Sincronizar o estado do dispositivo com a nuvem.
  • Verifique se você pode armazenar dados em dispositivos se sua solução não puder tolerar a perda de dados.
  • Use simulações e amostragem de dados para medir a capacidade de rede e as linhas de base de requisito de armazenamento.

Implementação de conectividade

Os SDKs do dispositivo IoT do Azure fornecem bibliotecas de cliente que você pode usar em dispositivos ou gateways para simplificar a conectividade com os serviços de IoT do Azure. Você pode usar os SDKs para instrumentar clientes de dispositivo IoT que:

  • Conecte-se à nuvem.
  • Forneça uma experiência de desenvolvimento de cliente consistente em diferentes plataformas.
  • Simplifique tarefas comuns de conectividade abstraindo detalhes dos protocolos subjacentes e padrões de processamento de mensagens, como retirada exponencial com tremulação e lógica de repetição.

Monitoramento de conectividade

Problemas de conectividade para dispositivos IoT podem ser difíceis de solucionar devido aos muitos pontos possíveis de falha. A lógica do aplicativo, redes físicas, protocolos, hardware, Hub IoT do Azure e outros serviços de nuvem podem ter problemas.

Poder detectar e identificar a origem de um problema é crucial. No entanto, uma solução de IoT em escala pode ter milhares de dispositivos, portanto, não é prático marcar dispositivos individuais manualmente. O Azure Monitor e Grade de Eventos do Azure podem ajudá-lo a diagnosticar problemas de conectividade em Hub IoT.

Recursos de conectividade

Camada de ingestão e comunicação

A camada de ingestão e comunicação de IoT abrange cotas e limites de serviço, capacidade, limitação e dimensionamento automático.

Design de capacidade redundante

Ao planejar limites e alertas, considere a latência entre a detecção e a ação executadas. Verifique se o sistema e os operadores têm tempo suficiente para responder às solicitações de alteração. Caso contrário, por exemplo, você pode detectar a necessidade de aumentar o número de unidades, mas o sistema pode falhar perdendo mensagens antes que o aumento possa entrar em vigor.

Planejamento da cota de serviço

Assim como acontece com todos os serviços de plataforma, Hub IoT e o DPS (Serviço de Provisionamento de Dispositivos Hub IoT) impõem cotas e limitações em determinadas operações, para que o Azure possa fornecer níveis e custos de serviço previsíveis para seus serviços. Cotas e limitações estão vinculadas à camada de serviço e ao número de unidades implantadas, para que você possa projetar sua solução com o número certo de recursos. Examine as cotas e as limitações com antecedência e projete seus recursos de Hub IoT e DPS adequadamente.

Parâmetros de comparação de escala de produção

À medida que o número de dispositivos ou volume de dados aumenta, o gateway de nuvem deve ser dimensionado para dar suporte ao fluxo de dados ininterrupto. Devido à natureza distribuída das soluções de IoT, ao número de dispositivos e ao volume de dados, é importante estabelecer parâmetros de comparação de escala para a solução geral. Esses parâmetros de comparação ajudam a planejar riscos de capacidade. Use o Simulador de Telemetria de Dispositivo IoT do Azure para simular volumes de escala de produção.

Dimensionamento automático para ajustar dinamicamente às cotas

Um benefício do uso de componentes de PaaS (plataforma como serviço) é a capacidade de escalar e reduzir verticalmente com pouco esforço de acordo com suas necessidades. Para fornecer o menor custo e o esforço operacional, considere implementar um sistema automatizado para escalar e reduzir verticalmente seus recursos com as diferentes necessidades de sua solução.

Gerenciamento de cota e limitação

Para garantir a confiabilidade da solução, monitore continuamente o uso de recursos em relação a cotas e restrições para detectar aumentos de uso que indicam a necessidade de dimensionamento. Dependendo dos requisitos de negócios, você pode monitorar continuamente o uso de recursos e alertar o operador quando os limites forem atendidos ou implementar um sistema automatizado para dimensionamento automático.

Recursos de capacidade e dimensionamento

Camada de transporte

Para se conectar ao serviço de nuvem para dados, controle e gerenciamento, os dispositivos precisam de acesso a uma rede. Dependendo do tipo de solução de IoT, a confiabilidade da conectividade pode ser sua responsabilidade ou do provedor de serviços de rede. As redes podem ter problemas intermitentes de conectividade e os dispositivos precisam gerenciar seu comportamento adequadamente.

Camada de DevOps

Uma solução de IoT empresarial deve fornecer uma estratégia para que os operadores gerenciem o sistema. Para lidar com a confiabilidade, o gerenciamento e as operações de IoT devem usar processos de DevOps para lidar com atualizações, observabilidade e monitoramento e implementação de HA/DR.

Atualizações

O aspecto do dispositivo das soluções de IoT apresenta desafios em comparação com soluções baseadas em nuvem. Por exemplo, deve haver uma maneira de atualizar continuamente os dispositivos para resolver vulnerabilidades e alterações de aplicativo.

Devido à natureza distribuída das soluções de IoT, é importante adotar políticas seguras e seguras para implantar atualizações. Os operadores de IoT exigem ferramentas e práticas de atualização simples e confiáveis.

Uma solução de atualização de dispositivo deve dar suporte a:

  • Distribuição gradual de atualização por meio de controles de agrupamento e agendamento de dispositivos.
  • Suporte para atualizações de dispositivo A/B resilientes para reversão contínua.
  • Ferramentas detalhadas de gerenciamento de atualizações e relatórios.
  • Otimização de rede com base na largura de banda disponível.

A Atualização de Dispositivo para Hub IoT é um serviço que permite atualizações de dispositivoS IoT seguras, seguras e confiáveis no ar (OTA). A Atualização de Dispositivo para Hub IoT pode agrupar dispositivos e especificar quais dispositivos devem receber uma atualização. Os operadores podem exibir o status de implantações de atualização e se cada dispositivo aplica com êxito as atualizações necessárias.

Se uma atualização falhar, a Atualização de Dispositivo ajudará os operadores a identificar os dispositivos que falharam e ver os detalhes da falha. A capacidade de identificar quais dispositivos falharam pode eliminar horas de tentativa de identificar manualmente a origem da falha.

A Atualização de Dispositivo monitora a status de implantações e atualizações de dispositivos e relata quantos dispositivos estão em conformidade com a atualização compatível com a versão mais alta disponível.

Observabilidade e monitoramento

Para gerenciar a confiabilidade geral da solução e definir procedimentos de alerta, você deve monitorar todos os componentes da sua solução de IoT. Todos os serviços de IoT do Azure publicam métricas que descrevem a integridade e a disponibilidade do serviço. Para estabelecer a observabilidade de ponta a ponta, considere também as métricas necessárias no lado do dispositivo. Use essas métricas como parte do monitoramento geral de confiabilidade da solução.

O monitoramento e diagnóstico de aplicativos de IoT são cruciais para disponibilidade e resiliência. Se algo falhar, você precisa saber que falhou, quando falhou e por quê. Ao monitorar a operação de um aplicativo de IoT e dispositivos em relação a um estado íntegro, você pode detectar e corrigir problemas de confiabilidade.

Para atenuar problemas que afetam a confiabilidade do aplicativo IoT, você deve ser capaz de capturar logs e sinais que ajudam a detectar problemas em operações de ponta a ponta. Use o registro em log e o monitoramento para determinar se uma solução de IoT está funcionando conforme o esperado e para ajudar a solucionar problemas com componentes de solução.

As seguintes ações dão suporte à observabilidade para soluções de IoT:

  • Estabeleça um mecanismo para coletar e analisar alertas e métricas de desempenho.
  • Configure dispositivos, serviços de nuvem e aplicativos para coletar e se conectar ao Azure Monitor.
  • Use dashboards e alertas em tempo real para monitorar os serviços de back-end do Azure.
  • Defina funções e responsabilidades para monitorar e agir em eventos e alertas. Para obter mais informações, consulte Funções, responsabilidades e permissões.
  • Implementar o monitoramento contínuo.

Azure Monitor

O Azure Monitor é a plataforma de monitoramento e visualização recomendada para soluções de IoT do Azure. Você pode configurar dispositivos, serviços de nuvem e aplicativos, independentemente do local de implantação, para enviar mensagens de log diretamente ou por meio de conectores internos para o Azure Monitor.

  • Use a integração de métricas internas do Azure Monitor para monitoramento remoto de dispositivos IoT Edge. Para habilitar essa funcionalidade em seus dispositivos, adicione o módulo coletor de métricas IoT Edge à sua implantação e configure-o para coletar e transportar métricas de módulo para o Azure Monitor.

  • Com o Azure Monitor, você pode monitorar o estado de seu ambiente Hub IoT, garantir que ele esteja sendo executado corretamente e verificar se seus dispositivos não estão sendo limitados ou enfrentando problemas de conexão. Hub IoT fornece métricas de uso, como o número de mensagens usadas e o número de dispositivos conectados. Você pode retransmitir esses dados para o Azure Monitor para análise e alertar outros serviços.

  • Se sua solução usar o Azure IoT Central, você poderá usar as métricas que o IoT Central fornece para avaliar a integridade dos dispositivos conectados e das exportações de dados ativas. Os aplicativos do IoT Central habilitam as métricas por padrão, que você pode acessar do portal do Azure. O Azure Monitor expõe e fornece várias maneiras de interagir com essas métricas.

  • O Azure Monitor fornece análise de log personalizada para facilitar a decomposição de eventos e registros em campos individuais para indexação e pesquisa.

  • Implemente painéis em tempo real e alertas do Azure Monitor para monitorar os serviços de back-end do Azure. Os alertas notificam você proativamente sobre condições específicas em seus dados de monitoramento, para que você possa identificar e resolver problemas antes que os clientes os encontrem. Você pode definir alertas em métricas, logs e log de atividades.

O Application Insights é um recurso do Azure Monitor que fornece gerenciamento extensível de desempenho de aplicativos e monitoramento para aplicativos Web dinâmicos. Se sua solução de IoT usar aplicativos personalizados de Serviço de Aplicativo do Azure, Serviço de Kubernetes do Azure ou Azure Functions, você poderá usar o Application Insights para monitoramento e análise de aplicativos.

O Application Insights pode:

  • Detectar automaticamente anomalias no desempenho.
  • Ajudar a diagnosticar problemas usando ferramentas de análise avançadas.
  • Mostre o que os usuários realmente fazem com seus aplicativos.
  • Ajude você a melhorar continuamente o desempenho e a usabilidade do aplicativo.

Monitoramento contínuo

A CI/CD (integração contínua e implantação contínua) é uma prática de DevOps que fornece software de forma mais rápida e confiável para fornecer valor contínuo aos usuários. O CM (monitoramento contínuo) é um conceito semelhante que incorpora o monitoramento em todas as fases e componentes de um ciclo de DevOps.

A CM garante continuamente a integridade, o desempenho e a confiabilidade de seus aplicativos e infraestrutura à medida que eles fluem por meio do desenvolvimento, produção e lançamento para os clientes. Para obter mais informações, consulte:

Monitorando recursos

HA/DR para componentes críticos

Ao projetar e criar sua solução de IoT, você deve atender ao SLA para recuperação de falhas na pilha de soluções. Seu SLA deve orientá-lo sobre quais componentes críticos do sistema precisam de HA/DR. Há várias abordagens, desde redundância na pilha de soluções de IoT até redundância para camadas específicas. O custo também é uma consideração importante para avaliar a importância de atender aos SLAs.

  • Os serviços de IoT do Azure definiram destinos de tempo de atividade e disponibilidade. Examine os SLAs para serviços de IoT do Azure que fazem parte de sua solução para ver se eles atendem às suas metas de tempo de atividade. Por exemplo, Hub IoT do Azure tem um SLA de 99,9%, o que significa que você deve planejar 1 minuto e 36 segundos de tempo de inatividade potencial por dia. O SDK do Hub IoT do Azure fornece lógica interna e configurável para lidar com repetições e retiradas.

  • Considere dividir suas metas de tempo de atividade em duas categorias: gerenciamento de dispositivos e operações de ingestão de dados. Por exemplo, pode ser fundamental que um dispositivo envie dados com êxito para um hub IoT, mesmo que os serviços de gerenciamento de dispositivos não estejam disponíveis. Para obter mais informações, consulte os recursos de confiabilidade do SDK Hub IoT do Azure.

  • Considere usar hardware redundante para sensores, energia e armazenamento. O hardware redundante permite que os dispositivos funcionem se um componente crítico não estiver disponível. O hardware também pode ajudar com problemas de conectividade. Por exemplo, você pode usar uma abordagem de armazenamento e encaminhamento para dados quando a conectividade não estiver disponível. O IoT Edge do Azure tem esse recurso interno.

  • Os dispositivos também devem ser capazes de lidar com interrupções na nuvem. O emparelhamento de região do Azure fornece uma estratégia de HA/DR para Hub IoT que atenda a muitos requisitos de SLA. Se o emparelhamento de região não for suficiente, considere implementar um hub IoT secundário. Você também pode usar o DPS para evitar configurações de Hub IoT codificadas em seus dispositivos. Se o hub IoT principal ficar inativo, o DPS poderá atribuir seus dispositivos a um hub diferente.

  • Considere implementar um padrão de mensagem de pulsação para dispositivos que você espera estar online na maior parte do tempo. Esse padrão usa uma rota de Hub IoT personalizada com o Azure Stream Analytics, os Aplicativos Lógicos do Azure ou Azure Functions para determinar se uma pulsação falhou. Você pode usar a pulsação para definir alertas do Azure Monitor que tomam ações conforme necessário.

Recursos de HA/DR

Próximas etapas