Práticas recomendadas de arquitetura para o Hub IoT do Azure
O Hub IoT do Azure é um serviço gerenciado baseado em nuvem que serve como um hub de mensagens central para comunicação entre um aplicativo IoT e seus dispositivos conectados. Você pode conectar de forma confiável quase qualquer dispositivo e suas soluções de back-end a um hub IoT em escala.
Este artigo pressupõe que, como arquiteto, você revisou as tecnologias e os serviços que você pode usar para criar soluções de IoT e escolheu Hub IoT como o serviço de plataforma IoT do Azure para sua carga de trabalho. As diretrizes neste artigo fornecem recomendações arquitetônicas que são mapeadas para os princípios dos pilares do Well-Architected Framework.
Importante
Como usar este guia
Cada seção tem uma lista de verificação de design que apresenta áreas arquitetônicas preocupantes, juntamente com estratégias de design localizadas no escopo da tecnologia.
Também estão incluídas recomendações para os recursos de tecnologia que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista completa de todas as configurações disponíveis para o Hub IoT e suas dependências. Eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.
Escopo de tecnologia
Esta revisão se concentra nas decisões interrelacionadas para os seguintes recursos do Azure:
- Azure IoT Hub
- DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT do Azure
- Atualização de Dispositivo do Azure para Hub IoT
- Azure IoT Edge
- Gêmeos Digitais do Azure
- Azure Sphere
- Microsoft Defender para IoT
Fiabilidade
A finalidade do pilar de confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.
Lista de verificação de design
Comece sua estratégia de design com base na lista de verificação de revisão de design para confiabilidade. Determine sua relevância para seus requisitos de negócios, tendo em mente o desempenho do Hub IoT. Estenda a estratégia para incluir mais abordagens conforme necessário.
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. Considere as implicações de custo da introdução de modificações arquitetônicas para atender aos contratos de nível de serviço. Por exemplo, para aumentar a confiabilidade e a alta disponibilidade, você pode implementar redundâncias entre regiões e um sistema de dimensionamento automático. Considere cuidadosamente as compensações.
Implemente procedimentos de atualização simples e seguros. Crie uma estratégia para os operadores gerenciarem dispositivos em sua solução de IoT empresarial. 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 dos processos incluídos no Hub IoT.
Implemente alta disponibilidade e recuperação de desastre para componentes críticos. Planeje componentes de hardware e software resilientes que aumentam a redundância, incluindo redundâncias entre regiões.
Planejar capacidade. Planeje cotas e restrições de serviço e contabilize a latência que ocorre entre a detecção e a ação. Estabeleça parâmetros de comparação na escala de produção para dar suporte ao fluxo de dados ininterrupto.
Recomendações
Recomendação | Benefício |
---|---|
Calcule a capacidade necessária do Hub IoT, como o número de mensagens por dia e outros limites. Se sua carga de trabalho tiver requisitos de capacidade flutuantes, implemente um mecanismo de dimensionamento automático para que ele aumente e diminua a capacidade com base na demanda. Para obter mais informações, consulte Escolha a camada e o tamanho corretos do Hub IoT para sua solução. | O dimensionamento dinâmico ajuda a otimizar o uso de recursos. Ele ajuda a garantir que sua solução permaneça responsiva e confiável sem o excesso de provisionamento de recursos. |
Adicione uma estratégia de reconexão de dispositivo ao Hub IoT para criar aplicativos resilientes. Para obter mais informações, consulte Gerenciar reconexões de dispositivo. | Os dispositivos IoT geralmente dependem de conexões de rede intermitentes ou instáveis. Uma estratégia de reconexão permite que sua carga de trabalho se recupere sem intervenção do usuário, o que aumenta a disponibilidade. |
Avalie as compensações de diferentes opções de alta disponibilidade e recuperação de desastre no Hub IoT. Dependendo das metas de tempo de atividade da sua solução de IoT, determine as opções que melhor atendem aos seus objetivos de negócios. Escolha entre de failover iniciado pela Microsoft, de failover manual e de alta disponibilidade entre regiões. | Uma estratégia de failover ajuda a carga de trabalho a mudar rapidamente para uma instância de backup, o que minimiza o impacto sobre seus usuários e operações de negócios. |
Use o DPS para provisionar seus dispositivos e atribuí-los a um hub IoT. | O DPS é um serviço auxiliar que permite o provisionamento automático no momento necessário sem a necessidade de intervenção humana. O DPS permite o provisionamento de milhões de dispositivos de maneira altamente segura e escalonável. |
Utilize o Device Update para o Hub IoT para gerenciar atualizações over-the-air para seus dispositivos IoT. Verifique se sua estratégia de atualização inclui distribuição gradual, atualizações A/B resilientes, gerenciamento detalhado e ferramentas de relatório. | Essa abordagem ajuda a garantir atualizações seguras, seguras e confiáveis para dispositivos IoT, que reduzem o tempo de inatividade e melhoram a eficiência operacional. Ele ajuda a manter a conformidade do dispositivo e identifica e resolve rapidamente falhas de atualização, o que melhora a confiabilidade geral do sistema. |
Implemente as práticas de DevOps para gerenciar soluções de IoT, incluindo ci/CD (integração contínua e implantação contínua), monitoramento e atualizações automatizadas. – Use DevOps para criar e liberar seus aplicativos do IoT Edge. - Use Azure Monitor para monitorar e obter alertas dos dados coletados pelo Hub IoT. – Use gerenciamento automático de dispositivos no IoT Hub para automatizar o gerenciamento de dispositivos em grande escala. |
As práticas de DevOps aprimoram a confiabilidade e a eficiência das soluções de IoT. Eles permitem implantação rápida, monitoramento contínuo e atualizações automatizadas. Esses recursos reduzem o tempo de inatividade, melhoram o desempenho do sistema e implantam atualizações e alterações de forma segura e consistente. |
Segurança
O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.
Os princípios de design do Security fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico do Hub IoT.
Lista de verificação de design
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controles para melhorar a postura de segurança. Estenda a estratégia para incluir mais abordagens conforme necessário.
Use uma identidade forte para autenticar dispositivos e usuários. Implemente práticas para aprimorar a segurança. Por exemplo, você deve:
- Tenha uma raiz confiável de hardware para uma identidade confiável.
- Registrar dispositivos.
- Emita credenciais renováveis.
- Use a MFA (autenticação multifator ou sem senha).
Automatize e use o controle de acesso com privilégios mínimos. Limite o impacto de dispositivos ou identidades comprometidas ou cargas de trabalho não aprovadas.
Avalie a integridade do dispositivo. Avalie a integridade do dispositivo para controlar o acesso ou identificar dispositivos para correção. Verifique as configurações de segurança, avalie vulnerabilidades e senhas inseguras, monitore ameaças e anomalias e crie perfis de risco contínuos.
Implementar atualizações de dispositivo. Implemente atualizações contínuas para manter os dispositivos íntegros. Use uma solução centralizada de gerenciamento de configuração e conformidade e um mecanismo de atualização robusto para garantir que os dispositivos estejam atualizados e íntegros.
Monitore a segurança do sistema e planeje a resposta a incidentes. Monitore proativamente dispositivos não autorizados ou comprometidos e responda a ameaças emergentes.
Certifique-se de conexões altamente seguras. Verifique se todos os dados transmitidos entre o dispositivo IoT e os serviços de nuvem IoT são confidenciais e à prova de violação.
Recomendações
Recomendação | Benefício |
---|---|
Aplique critérios de Confiança Zero para dispositivos. Os dispositivos que se conectam ao Hub IoT devem: - Contém um módulo de segurança de hardware para uma identidade forte. - Use credenciais renováveis. – Impor controle de acesso com privilégios mínimos. - Emita sinais de saúde adequados para acesso condicional. - Operadores de alerta para revogar um dispositivo do Hub IoT quando comprometido. Seus dispositivos devem incluir: – Atualizar agentes para atualizações de segurança. – Funcionalidades de gerenciamento de dispositivo para configuração controlada por nuvem e resposta de segurança automatizada. - Somente recursos necessários habilitados para minimizar a pegada de ataque físico. - proteção de dados em repouso por meio de algoritmos de criptografia padrão. |
Os critérios de Confiança Zero para dispositivos que se conectam ao Hub IoT aprimoram a segurança e a confiabilidade. Módulos de segurança de hardware, credenciais renováveis e controle de acesso menos privilegiado minimizam o acesso não autorizado e dispositivos comprometidos. Sinais de saúde para acesso condicional e agentes de atualização ajudam a garantir que os dispositivos permaneçam seguros e em conformidade. O gerenciamento de dispositivos controlados por nuvem e a resposta de segurança automatizada, juntamente com agentes de segurança, reforçam a postura de segurança. Um pequeno volume de ataque físico e proteção de dados em repouso protegem informações confidenciais e ajudam a manter a integridade do sistema. |
Use certificados X.509 para autenticar seus dispositivos no Hub IoT. Para obter mais informações, consulte Autenticar identidades com certificados X.509. | A autenticação baseada em X.509 em ambientes de produção fornece maior segurança em comparação com tokens de segurança. |
Camada de acesso menos privilegiado para dispositivos de IoT. Use a segmentação de rede para agrupar dispositivos IoT. Essa prática reduz o impacto de um possível comprometimento. Por exemplo, você pode conectar dispositivos IoT a uma "rede IoT" para dispositivos, como impressoras, telefones VoIP e TVs inteligentes. Mantenha essa rede IoT separada de outros recursos organizacionais que sua força de trabalho acessa. Use a micro segmentação de rede para separar logicamente ambientes de tecnologia de operações dedicadas da rede corporativa de tecnologia da informação. Para criar essa separação, use uma arquitetura de rede de perímetro que inclua firewalls. As organizações maduras também podem implementar políticas de micro segmentação em várias camadas do modelo Purdue, normalmente usando firewalls de última geração. |
A segmentação de rede agrupa dispositivos IoT, que podem atenuar o impacto de um comprometimento. A micro segmentação de rede isola dispositivos menos capazes na camada de rede, por trás de um gateway ou em um segmento de rede discreto. |
Use Microsoft Defender para IoT como linha de frente de defesa para ajudar a proteger seus recursos no Azure. O Defender para IoT é uma plataforma de segurança de camada de rede sem agente que fornece descoberta contínua de ativos, gerenciamento de vulnerabilidades e detecção de ameaças para dispositivos IoT. |
O Defender para IoT fornece monitoramento contínuo e detecção de ameaças para identificar rapidamente dispositivos não autorizados ou comprometidos. Ele aprimora a segurança geral e a resiliência da rede IoT. |
Use o Hub IoT com do Azure Sphere como um módulo guardião para ajudar a proteger outros dispositivos, incluindo sistemas herdados existentes nos quais você não pode confiar para conectividade confiável. Um módulo guardião do Azure Sphere é implantado com um aplicativo e interage com dispositivos existentes por meio de Ethernet, serial ou BLE (Bluetooth Low Energy). Os dispositivos não têm necessariamente conectividade direta com a Internet. |
O módulo guardião do Azure Sphere fornece uma maneira de implementar conectividade altamente segura em dispositivos existentes sem expor esses dispositivos à Internet. Essa proteção inclui transmissão de dados criptografados, atualizações de so e aplicativos altamente seguras e autenticação para garantir a comunicação somente com hosts confiáveis. |
Use gateways de IoT para impor padrões de identidade fortes para dispositivos com menos capacidade. O IoT Edge fornece uma conexão de tempo de execução na borda com o Hub IoT e dá suporte a certificados como identidades fortes para dispositivos. O IoT Edge suporta o padrão PKCS#11 para identidades de fabricação de dispositivos e outros segredos em um Módulo de Plataforma Confiável (TPM) ou módulo de segurança de hardware. |
Os gateways do IoT Edge ajudam a impor padrões de identidade fortes para que apenas dispositivos autenticados e autorizados possam se comunicar dentro da rede. Esse recurso aprimora a segurança e a integridade do ecossistema de IoT. |
Otimização de custos
A otimização de custos se concentra na na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização de outras para atender ao orçamento da organização e, ao mesmo tempo, aos requisitos comerciais.
Os princípios de design da Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado ao Hub IoT e seu ambiente.
Lista de verificação de design
Comece sua estratégia de design com base na lista de verificação de revisão de design para otimização de custos em investimentos. Ajuste o design para que a carga de trabalho seja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos corretos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Desenvolva disciplina de gerenciamento de custos. Para entender o TCO (custo total de propriedade), contabilize os custos funcionais e não funcionais em seu plano.
Use estratégias e abordagens padrão do setor. Para indústrias específicas de IoT, como, por exemplo, a manufatura, use estratégias padrão do setor e abordagens para construir estruturas, sistemas IoT, cidades inteligentes ou redes de energia. Essa abordagem ajuda a otimizar os custos.
Entenda o custo para proteger sua solução de IoT. A IoT abrange todo o processo, do hardware aos serviços de nuvem, para que você incorre em despesas relacionadas à segurança em todos os estágios. Por exemplo, você pode incorrer em custos para MPUs (unidades de microprocessador), dispositivos, telecomunicações, tecnologia de nuvem e tecnologia de operação.
Design para otimização de taxas. Defina planos de implementação para cada preocupação com toda a solução de IoT para otimizar os custos.
Monitore e otimize ao longo do tempo. Monitorar continuamente e otimizar os custos do Hub IoT. Execute atividades contínuas de otimização de custos depois de implementar sua solução.
Estimar custos realistas. Selecione o nível e tamanho apropriados do Hub IoT para as fases de desenvolvimento e operacional da sua solução de IoT.
Avalie os custos únicos versus os custos recorrentes. Considere os benefícios de custo entre custos únicos e custos recorrentes. Por exemplo, as técnicas de hacking evoluem continuamente, portanto, você pode usar um sistema operacional comercial confiável e um módulo, como o Azure Sphere. Para um pagamento único, esses serviços fornecem patches de segurança mensais e contínuos para dispositivos.
Otimizar o uso de recursos. Implemente mecanismos de dimensionamento automático para ajustar a capacidade do Hub IoT com base na demanda. Essa abordagem ajuda a garantir o uso eficiente de recursos e o controle de custos.
Use a capacidade reservada. Avalie o tamanho e a frequência dos conteúdos de mensagens para garantir que o Hub IoT esteja adequadamente dimensionado e preparado para crescimento.
Implementar alertas e orçamentos de custo. Configure alertas de custo e orçamentos no Gerenciamento de Custos da Microsoft para controlar e controlar efetivamente seus gastos. Use APIs de gerenciamento de custos para hub IoT e DPS .
Recomendações
Recomendação | Benefício |
---|---|
Entenda cotas do Hub IoT e limites de limitação e como eles afetam o TCO quando sua solução é executada em escala na produção. Seu modelo de custo deve considerar dispositivos, infraestrutura, operações e monitoramento em escala na produção. |
Cada serviço tem seu próprio conjunto de cotas e limitações. Entenda esses limites no Hub IoT para otimizar os custos. |
Entenda o ecossistema do dispositivo e as várias funções envolvidas, como fabricantes de hardware, desenvolvedores de aplicativos e operadores de planejamento. Os dispositivos podem variar de PEQUENAS MCUs de 8 bits a CPUs x86 avançadas, como aquelas encontradas em computadores desktop. Para obter mais informações, consulte Práticas recomendadas para configuração de dispositivo em uma solução de IoT. O hardware escolhido depende de muitas variáveis. Entenda os principais diferenciadores de hardware em um dispositivo IoT para reduzir os custos. |
Entender o intervalo de dispositivos e os principais diferenciadores de hardware facilita a alocação de recursos com mais eficiência. Isso garante que você esteja usando os dispositivos certos para as tarefas certas, levando a um melhor desempenho e eficiência de custo. |
Usar IoT Plug and Play para reduzir o desenvolvimento de hardware e o tempo para integração. Adote uma ontologia do setor de DTDL (Linguagem de Definição de Gêmeo Digital), que é um modelo que um dispositivo usa para divulgar seus recursos para um aplicativo habilitado para IoT Plug and Play. | Os construtores de soluções podem usar o IoT Plug and Play para integrar dispositivos IoT ao Hub IoT sem configuração manual. |
Use Atualização de Dispositivo para o Hub IoT para fornecer atualizações pelo ar e gerenciar remotamente seus dispositivos. | Uma solução para atualizar remotamente o firmware ou o software do dispositivo ajuda a reduzir os custos manuais de mão-de-obra de longo prazo. |
Use conectores para serviços do Azure, como Power Apps, Power Automate e Aplicativos Lógicos do Azure. O Hub IoT e a Grade de Eventos do Azure juntos fornecer conectores para implementar seus requisitos nos Aplicativos Lógicos e no Power Automate. |
Os conectores permitem uma integração perfeita entre dispositivos IoT e vários serviços do Azure, o que permite fluxos de trabalho automatizados e recursos de processamento de dados aprimorados. |
Use simuladores de dispositivo e configure um ambiente de teste de carga para testar a solução em escala de produção e entender o custo da solução. Exemplos de código de simulação, como o Simulador de Telemetria de Dispositivos IoT do do Azure ajudam você a testar e estimar os custos em escala com vários parâmetros. |
Simuladores de dispositivo podem ajudar a economizar custos em escala para modelar, testar e simular resultados para um cenário. |
Para reduzir os tamanhos e custos de transmissão: - Escolha o protocolo certo para seus dispositivos IoT. - Compacte a telemetria na periferia. - Mensagens em lote no dispositivo. - Escolha entre manter as conexões ativas ou se reconectar quando os dispositivos forem ativados. - Use o recurso dispositivo gêmeo para trocar informações de status de forma assíncrona se o custo for crítico. Para dispositivos IoT a bateria, você pode escolher entre manter as conexões ativas ou se reconectar quando os dispositivos ficam ativos. Utilize mensagens keep alive, ou mensagens de pulsação, para verificar o status do dispositivo, mas considere os custos extras de rede durante a transmissão. A reconexão usa cerca de 6 KB de dados para estabelecer uma conexão TLS, autenticar o dispositivo e recuperar um dispositivo gêmeo. Mas conserva a capacidade da bateria se o dispositivo acordar apenas uma ou duas vezes por dia. |
Um protocolo ideal para seu cenário permite que os dispositivos reduzam os tamanhos e os custos de transmissão na camada de transporte. |
Entenda como usar a análise de caminho quente, morno e frio para dados de IoT e aplique a arquitetura lambda. Use o recurso de roteamento de mensagens interno no Hub IoT. | As soluções de IoT podem armazenar grandes quantidades de dados. Os custos de armazenamento compõem grande parte do custo geral da solução. Escolha um plano de processamento e armazenamento apropriado com base em seu cenário de negócios. |
Excelência Operacional
A excelência operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de versões.
Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.
Lista de verificação de design
Inicie sua estratégia de design com base na lista de verificação de design para Excelência Operacional para definir processos de observabilidade, teste e implantação relacionados ao IoT Hub.
Adote operações contínuas e escalabilidade. Verifique se a solução de IoT pode:
- Gerencie com êxito o provisionamento automatizado de dispositivos.
- Integre-se a outros sistemas de back-end.
- Suporte a diferentes funções, como desenvolvedores de soluções, administradores de soluções e operadores.
- Adapte-se e dimensione com eficiência para alterações sob demanda, como dispositivos IoT recém-implantados ou maior taxa de transferência de ingestão.
Otimize os processos de build e versão. Uma solução IoT corporativa bem-sucedida requer uma estratégia para estabelecer e atualizar um dispositivo ou uma frota de configuração do dispositivo. A configuração de um dispositivo inclui propriedades do dispositivo, configurações de conexão, relações e firmware. Os operadores de IoT exigem ferramentas simples e confiáveis para atualizar a configuração de um dispositivo ou frota de dispositivos a qualquer momento durante o tempo de vida do dispositivo.
Entender a integridade operacional. Use os sistemas de registro em log, monitoramento e alertas da solução IoT para determinar se a solução está funcionando conforme o esperado e para ajudar a solucionar problemas durante todo o ciclo de vida da solução.
Use a automação e o DevOps. Um dispositivo IoT é essencialmente um computador pequeno que tem hardware e software especializados. Os dispositivos IoT geralmente são restritos em hardware. Por exemplo, eles podem ter capacidade de computação ou memória limitada. A automação e o DevOps ajudam a garantir o upload e a implantação adequados do sistema operacional e do software em dispositivos e gateways IoT, o que minimiza o tempo de inatividade operacional. Use automação e DevOps para monitorar e gerenciar o ciclo de vida de dispositivos IoT.
Recomendações
Recomendação | Benefício |
---|---|
Use o gerenciamento automático de dispositivos do Hub IoT ou implantações automáticas do IoT Edge para implementar atualizações contínuas em dispositivos existentes ou novos e nas configurações de dispositivos IoT Edge, como propriedades, configurações específicas de aplicativos ou relações. Para atualizar um dispositivo existente ou uma configuração de dispositivo do IoT Edge com base em um agendamento único ou recorrente, use trabalhos agendados do Hub IoT. Para atualizar o firmware, o aplicativo ou as atualizações de pacote de dispositivos existentes ou de dispositivos IoT Edge over-the-air, use Atualização de Dispositivo para o Hub IoT. Tenha um método de atualização manual para dispositivos IoT. Devido a alterações de certificado raiz ou problemas de conectividade, talvez seja necessário atualizar manualmente os dispositivos conectando-se fisicamente a um computador local ou usando um protocolo de conectividade local, como BLE. |
O gerenciamento automático de dispositivos do Hub IoT e as implantações automáticas do IoT Edge fornecem uma maneira altamente eficiente, segura e confiável de automatizar implantações de configuração para uma frota ou grupo específico de dispositivos. Para garantir que os dispositivos tenham as configurações especificadas, os serviços monitoram continuamente dispositivos de destino novos e existentes e suas configurações com base em marcas. Os trabalhos agendados do Hub IoT fornecem uma maneira ideal de atualizar as configurações de uma frota ou grupo específico de dispositivos em um horário agendado. A Atualização de Dispositivo para Hub IoT atualiza com eficiência uma frota ou um grupo específico de dispositivos. |
Configure a ingestão e outras camadas de back-end da solução de nuvem IoT para lidar com as necessidades de capacidade esperadas e inesperadas de forma eficiente. Se a solução estiver vinculada a um produto conectado, verifique se ela pode lidar com flutuações na carga esperada no Hub IoT e nas camadas de back-end associadas. | Iniciativas de marketing, como vendas ou promoções, e eventos sazonais, como feriados, podem introduzir picos de carga. Para garantir que sua solução possa ser dimensionada para lidar com os picos, teste as variações de carga para eventos esperados e inesperados. |
Crie uma interface do usuário de gerenciamento centralizada usando as APIs REST expostas em APIs REST do Hub IoT para ajudar as equipes de operação a gerenciar frotas de dispositivos. | Uma solução centralizada de gerenciamento de dispositivos simplifica a administração, o monitoramento e a operação de dispositivos IoT, o que ajuda a garantir o gerenciamento eficiente do ciclo de vida e a configuração consistente em toda a solução de IoT. Uma interface do usuário integrada também ajuda as equipes de operação a gerenciar frotas de dispositivos efetivamente, o que reduz a complexidade operacional e melhora a confiabilidade geral do sistema. |
Use um provedor de identidade centralizado, como o Microsoft Entra ID, para criar identidades gerenciadas. Somente permitir que os usuários apropriados nessas funções executem atividades de gerenciamento ou operação, como criar e provisionar novos dispositivos, enviar comandos para hardware no campo, implantar atualizações e modificar permissões de usuário. | A ID do Microsoft Entra para autenticação fornece segurança aprimorada e facilidade de uso em comparação com os tokens de segurança tradicionais. Você pode usar o RBAC (controle de acesso baseado em função) do Azure na ID do Microsoft Entra para controlar o acesso ao Hub IoT. |
Em uma solução baseada no Hub IoT, você pode usar a ID do Microsoft Entra para autenticar solicitações para APIs de serviço do Hub IoT, como criar identidades de dispositivo ou invocar métodos diretos. Você pode desenvolver uma interface do usuário de gerenciamento personalizado para operadores e administradores de solução. Essa UI autentica os usuários no Microsoft Entra ID e envia solicitações de API para o back-end da solução de IoT em nome deles. | As interfaces do usuário de gerenciamento personalizado melhoram a segurança incorporando o RBAC e outras medidas de segurança. Eles também aprimoram a experiência do usuário fornecendo interfaces intuitivas que simplificam tarefas complexas. |
Use os sistemas de registro em log, monitoramento e alertas do Hub IoT para determinar se a solução está funcionando conforme o esperado e para ajudar a solucionar e atenuar problemas. Para obter mais informações sobre as métricas e logs que o Hub IoT cria, consulte referência de dados de monitoramento do Hub IoT. | O monitoramento e o registro em log ajudam a determinar se dispositivos ou sistemas estão apresentando erros, configurados corretamente, gerando dados precisos e atingindo os SLOs definidos. |
Use princípios e processos de CI/CD DevOps para aumentar a produtividade e criar um ciclo de desenvolvimento rápido contínuo. Adote o DevOps para seus aplicativos do IoT Edge usando as tarefas internas do IoT Edge no Azure Pipelines. Para obter mais informações, consulte CI/CD para dispositivos IoT Edge. | As ferramentas e os processos do DevOps no Hub IoT e no IoT Edge ajudam a automatizar o ciclo de vida do software de borda. |
Defina um processo para reprovisionar e desprovisionar dispositivos IoT. Para obter mais informações. Consulte Conceitos de reprovisionamento de dispositivos no Hub IoT. O ciclo de vida do dispositivo IoT inclui definir os procedimentos para reprovisionar dispositivos existentes para outros locais ou finalidades e desprovisioná-los com segurança quando necessário. | Um processo de reprovisionamento e desprovisionamento para dispositivos IoT ajuda você a gerenciar o ciclo de vida deles. Esses processos ajudam a manter a continuidade das operações ao migrar as informações de estado do dispositivo e as configurações entre hubs IoT. Essa prática ajuda a garantir que os dispositivos continuem funcionando corretamente após a movimentação. |
Teste o failover e o failback do Hub IoT para ajudar a garantir a alta disponibilidade. Etapas de recuperação de documentos para failover iniciado pela Microsoft e failover manual. Codifique e automatize as etapas necessárias para recuperar ou fazer failover do aplicativo para uma região secundária do Azure durante falhas. Essa prática ajuda a garantir que você possa responder efetivamente a interrupções e minimizar o impacto. Da mesma forma, codifique e automatize as etapas para fazer failback do aplicativo para a região primária depois que o problema for resolvido. |
Os testes de procedimentos de failover e failback ajudam a assegurar que a sua solução de IoT possa lidar com falhas e manter uma alta disponibilidade, o que minimiza o impacto das falhas. As etapas de recuperação documentadas para failovers manuais e iniciados pela Microsoft fornecem uma abordagem clara e estruturada para lidar com cenários de failover, o que garante que os membros da equipe estejam cientes dos procedimentos e possam implementá-los com eficiência. |
Use uma linguagem IaC (infraestrutura como código), como modelos do Bicep ou do ARM (modelos do Azure Resource Manager), para definir e armazenar todas as configurações de infraestrutura Hub IoT, DPS e back-end. Defina toda a sua infraestrutura como IaC para que você possa implantar automaticamente seus recursos de forma consistente entre ambientes. Utilize o gerenciamento de identidade e acesso (IAM) ou ferramentas de governança, como o RBAC do Azure ou o Azure Policy, para controlar o acesso de escrita à sua infraestrutura. Restrinja a configuração ou as atualizações de infraestrutura a um pipeline automatizado. Use essa abordagem para que você possa ver quais alterações ocorrem em seus ambientes e quando. |
Um processo repetível e previsível para provisionar e configurar seus recursos de solução IoT, como Hub IoT ou DPS, ajuda a reduzir erros e tempo de inatividade. As ferramentas de DevOps, como o Azure DevOps ou o GitHub, podem ajudar a controlar as versões de configuração, IaC e firmware. O controle de versão ajuda a identificar as versões de firmware, configuração e IaC em cada ambiente. |
Crie ambientes de teste que usam o mesmo firmware, configurações e IaC que seus ambientes de produção. Para criar facilmente esses ambientes, use IaC e automatize seus processos o máximo possível. | Ambientes de teste e produção correspondentes ajudam a simplificar o desenvolvimento e o teste de novos recursos e correções frequentes. |
Eficiência de desempenho
Eficiência de desempenho significa manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionamento de recursos, identificação e otimização de possíveis gargalos e otimização para o desempenho de pico.
Os princípios de design de eficiência de desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade considerando o uso esperado.
Lista de verificação de design
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de Desempenho para definir uma linha de base segundo os principais indicadores de desempenho para o Hub de IoT.
Design para dimensionamento horizontal. Uma solução de IoT pode começar com algumas centenas de dispositivos ou mensagens e aumentar para milhões de dispositivos e mensagens por minuto. O Hub IoT e os serviços de nuvem relacionados podem lidar facilmente com o aumento de cargas, mas os dispositivos E/S e os gateways adicionam complexidade. Você pode projetar e implantar dispositivos IoT antes de finalizar a solução. Indústrias como a IoT industrial têm dispositivos que duram vários anos, muitas vezes décadas. Substituir dispositivos para atualizar a capacidade pode incorrer em custos significativos, portanto, você deve planejar com antecedência.
Teste o desempenho antecipadamente. Teste antecipadamente e teste com frequência para identificar rapidamente os problemas. Entenda as variáveis que podem introduzir complexidade, como sensores, dispositivos e gateways em locais geograficamente diferentes com diferentes características, velocidade e confiabilidade da comunicação. Planeje essa complexidade em seus testes. Teste cenários de falha, como desconexão de rede. Faça testes de carga e estresse de todos os componentes de dispositivo, borda e nuvem em seu Hub IoT e serviços de nuvem relacionados.
Monitore continuamente o desempenho na produção. Para monitorar diferentes tipos de dispositivos em várias regiões geográficas, use uma solução de monitoramento distribuído. Balancee os custos de memória e desempenho em relação à quantidade de informações que você monitora e envia para a nuvem. Ajuste a transmissão para cenários de diagnóstico e monitore em vários níveis e camadas. Expor métricas de gateway para soluções industriais ou compatíveis com gateway.
Recomendações
Recomendação | Benefício |
---|---|
Otimize os recursos de hardware. Atualizações e substituições de hardware podem aumentar o custo e o tempo. Dimensione dispositivos IoT para sua capacidade e funcionalidade necessárias com antecedência. Para otimizar os recursos de hardware existentes, use linguagens e frameworks eficientes, como Embedded C e Rust Embedded. Quando você desenvolver aplicações para dispositivos restritos ou quando a maior parte das pilhas de segurança e comunicação estiver disponível no dispositivo, use o C-SDK integrado ao Azure IoT. |
Tarefas intensivas de computação e saída de entrada executadas em hardware específico podem melhorar significativamente o desempenho. Por exemplo, algoritmos de machine learning executados em GPUs locais podem descarregar o processamento do processador central, o que cria cálculos mais rápidos e eficientes. Linguagens e estruturas eficientes podem melhorar o desempenho e reduzir o consumo de recursos. O SDK do dispositivo IoT do Azure para C gerencia com eficiência todos os componentes necessários para que você possa se conectar ao gateway de nuvem. Os SDKs do dispositivo IoT do Azure lidam com a tradução de mensagens, o tratamento de erros e os mecanismos de repetição necessários para uma conexão resiliente, o que otimiza o uso de recursos de hardware existentes. |
Considere executar algumas cargas de trabalho na borda, dependendo de restrições do sistema, como taxa de transferência de rede ou latência. | As cargas de trabalho na borda reduzem a latência e melhoram a capacidade de resposta porque processam dados mais próximos de onde são gerados. Essa abordagem minimiza a necessidade de conectividade de nuvem constante, que beneficia cenários que têm acesso intermitente ou limitado à rede. Ele também ajuda a descarregar o processamento da nuvem, o que reduz o uso da largura de banda e os custos associados. |
Não conecte todos os dispositivos de uma só vez, por exemplo, após uma interrupção de energia regional. | Quando você fizer uma repetição, use a retirada exponencial truncada que introduz tremulação. Essa abordagem espalha as tentativas de reconexão ao longo do tempo, o que ajuda a evitar congestionamento de rede e sobrecarga de servidor. Ele cria um processo de reconexão mais estável e confiável, o que reduz o risco de outras interrupções ou degradação de desempenho. Tentativas de reconexão gerenciadas corretamente podem ajudar a manter a integridade geral e o desempenho do Hub IoT. |
Otimize cenários offline. Forneça aos dispositivos informações e contexto suficientes para funcionar sem uma conexão de nuvem e armazenar dados localmente para que eles possam se recuperar de desconexões e reinicializações. Use dispositivos gêmeos e módulos gêmeos para sincronizar as informações de estado de forma assíncrona entre dispositivos e a nuvem para dispositivos que têm conexões intermitentes com o Hub IoT. Defina um TTL (tempo de vida útil) nos dados para garantir que os dados expirados sejam removidos automaticamente. Essa prática reduz a necessidade de intervenção manual. Se o armazenamento de dispositivos de borda atingir a capacidade, use uma estratégia de remoção de cache, como uma estratégia de primeiro a entrar, último a sair; último a entrar, primeiro a sair; ou baseada em prioridade, para ajudar a gerenciar o armazenamento com eficiência. Considere usar um controlador de disco ou disco separado para armazenar dados para que o runtime ou o aplicativo do dispositivo possa continuar funcionando mesmo que tenha armazenamento baixo. |
Um dispositivo que pode armazenar dados localmente, incluindo logs e telemetria armazenada em cache de acordo com a prioridade, quando não conectado ajuda a manter a funcionalidade durante as desconexões. Descarte dados menos importantes quando o dispositivo não estiver conectado para reduzir os requisitos de armazenamento local e o tempo de sincronização quando o dispositivo se reconectar. Um controlador de disco ou disco separado para armazenar dados ajuda a garantir que as limitações de armazenamento não interrompam operações críticas. |
Otimizar a eficiência de mensagens. O Hub IoT calcula contagens diárias de mensagens de cota com base em um tamanho de mensagem de 4 KB. Enviar mensagens menores deixa alguma capacidade não utilizada. Para otimizar o uso, aponte para tamanhos de mensagem próximos a 4 KB. Para reduzir o número total de mensagens, agrupe mensagens menores do dispositivo para a nuvem em mensagens maiores. Mas esteja ciente da latência introduzida ao combinar mensagens. Para implementar o envio em lotes no nível do aplicativo, combine várias mensagens menores no dispositivo downstream e envie mensagens maiores para o gateway de borda. Use métodos diretos para interações solicitação-resposta que podem ter êxito ou falhar imediatamente, após um tempo limite especificado pelo usuário. Use essa abordagem para cenários em que o curso da ação difere dependendo se o dispositivo respondeu. Use dispositivos gêmeos para obter informações de estado do dispositivo, incluindo metadados e configurações. O Hub IoT mantém um dispositivo gêmeo para cada dispositivo que você conectar. |
O número e o tamanho das mensagens do dispositivo para a nuvem é um parâmetro importante para a eficiência de desempenho da solução de IoT. O Hub IoT define limites de mensagem por camada, o que afeta o desempenho e o custo da solução. O envio em lote ajuda a limitar a sobrecarga da mensagem e reduzir as gravações no armazenamento de disco de borda local. |
Entenda as cotas de mensagens e a limitação. A camada do Hub IoT define limites para cada unidade de gateway de nuvem. A cota de mensagens define a taxa de processamento sustentada e as taxas de envio sustentadas para o nível. O Hub IoT pode lidar com cargas que excedem essas cotas por curtas durações para lidar resilientemente com intermitências ou sobrecargas de carga. Outro limite importante é o limite de carga ou restrição de serviço horário ou diário. Limites de restrição protegem um hub IoT contra carga excessiva em longos períodos. |
Entenda as cotas de mensagens e o controle de fluxo para ajudar a garantir que sua solução de IoT opere dentro dos limites definidos. Essa prática impede a sobrecarga e mantém o desempenho. Gerencie a carga com eficiência para que você possa lidar com intermitências e sobrecargas de carga sem afetar a estabilidade geral do sistema. Essa abordagem ajuda a manter uma solução de IoT confiável e eficiente e evita possíveis interrupções de serviço devido à carga excessiva. |
Otimize o processamento de mensagens. Otimize o formato que você usa para enviar dados para a nuvem. Avalie os benefícios de otimizar formatos de dados e reduzir o processamento de nuvem em relação aos custos de largura de banda. Considere usar enriquecimento de mensagens do Hub IoT para adicionar contexto às mensagens do dispositivo. Faça o processamento de eventos críticos em dados ingeridos à medida que eles chegam, em vez de armazenar dados não processados e exigir consultas complexas para adquirir os dados. Para o processamento de eventos críticos em relação ao tempo, considere os efeitos da chegada tardia de dados e do uso de janela. Avalie sua abordagem com base no caso de uso, como lidar com alarmes críticos versus enriquecer mensagens. Selecione a camada básica ou standard do Hub IoT com base em seus requisitos de solução. Entenda os recursos aos quais a camada Básica não dá suporte. Considere usar a Grade de Eventos para roteamento de eventos de publicação-assinatura. Para obter mais informações, consulte Reagir a eventos do Hub de IoT usando a Grade de Eventos para disparar ações e Comparar roteamento de mensagens e Grade de Eventos para o Hub de IoT. |
Antes do armazenamento, talvez seja necessário traduzir, processar ou enriquecer mensagens de um dispositivo ou gateway com mais informações. Essa etapa pode ser demorada, portanto, você deve avaliar o efeito sobre o desempenho. Algumas recomendações entram em conflito, como o uso da compactação para otimizar a transferência de dados em vez de evitar o processamento de nuvem na descriptografia de mensagens. Balancee e avalie essas recomendações em relação a outros pilares arquitetônicos e requisitos de solução. |
Use filas de prioridade do IoT Edge para priorizar os dados importantes que você envia ao IoT Hub. O IoT Edge armazena mensagens em buffer quando não há conectividade. Depois que a conexão é restaurada, ela envia todas as mensagens em buffer na ordem de prioridade primeiro, seguidas por novas mensagens. Use o roteamento de mensagens do Hub IoT para definir rotas de acordo com diferentes prioridades de dados, conforme o caso de uso. O roteamento de mensagens do Hub IoT adiciona latência. Salve e envie dados de baixa prioridade em intervalos mais longos, ou use o recurso de lote ou uploads de arquivo. A detecção de malware em arquivos carregados aumenta a latência. Separar mensagens com base em restrições de tempo. Por exemplo, envie mensagens para o Hub IoT diretamente quando houver uma restrição de tempo e use o upload de arquivos por meio do Hub IoT ou transferência de dados em lote, como o Azure Data Factory, se não houver restrição de tempo. Você pode usar o Armazenamento de Blobs do Azure no módulo do IoT Edge para fazer upload de arquivos. |
Alguns dados que os dispositivos enviam para a nuvem podem ser mais importantes do que outros dados. Classifique e manipule os dados com base na prioridade para melhorar a eficiência do desempenho. Por exemplo, um sensor de termostato envia temperatura, umidade e outras telemetrias, mas também envia um alerta quando a temperatura se desvia de um intervalo definido. O sistema classifica a mensagem de alarme como de alta prioridade e a manipula de forma diferente da telemetria de temperatura. |
Use o DPS para configurar uma conexão com um hub IoT durante o provisionamento, quando a conexão do Hub IoT não estiver mais disponível ou durante uma reinicialização do dispositivo. Use a política de distribuição uniformemente ponderada para ajustar o peso do provisionamento com base no caso de uso. Essa abordagem otimiza a alocação de recursos. |
O DPS ajuda a garantir que os dispositivos sejam provisionados com segurança e eficiência. O provisionamento de dispositivos durante um período de tempo ou em lotes menores ajuda a equilibrar a carga e a cota do DPS, o que garante um processo de integração suave. Alocar dispositivos para o Hub IoT em regiões diferentes com base na latência melhora o desempenho e reduz os tempos de conexão. Implementar uma estratégia de cache para a cadeia de conexão DPS reduz as operações de reconexão, o que aumenta a eficiência geral do sistema. |
Otimizar o processamento de ponta em comparação com o processamento em nuvem. Use a computação local para executar cargas de trabalho em tempo real e quase em tempo real, ou processamento pequeno, otimizado e de baixa latência que tenha restrições de tempo, em dispositivos ou na borda. Para cargas de trabalho maiores ou cargas de trabalho que exigem dados externos extras ou dependências de computação, use recursos de nuvem. Por exemplo, você pode executar um algoritmo de machine learning na borda para contar pessoas em um fluxo de vídeo e enviar um evento que contenha a contagem para a nuvem. Essa abordagem fornece processamento local rápido e análise eficiente de tendência baseada em nuvem. Use o módulo Azure Stream Analytics IoT Edge para executar cargas de trabalho de análise, como detecção de anomalias, na borda. Essa prática ajuda a rotular eventos com anomalias detectadas antes de enviá-los para a nuvem, o que melhora a eficiência geral do sistema. Entenda a sobrecarga de uma carga de trabalho de borda que inclui muitos dispositivos downstream conectados. O nó de borda deve encaminhar ou processar todas as mensagens e armazenar em cache todos os dados se houver conectividade de nuvem intermitente. Para avaliar o efeito da performance em sua solução, teste-a com o número máximo esperado de dispositivos a jusante e mensagens para cada nó de borda. Entenda também o efeito de desempenho que a tradução ou o enriquecimento de mensagens podem ter na borda, no Hub IoT ou no processamento de eventos na nuvem. Planeje adequadamente para manter a eficiência do sistema. |
A execução de cargas de trabalho em tempo real e quase em tempo real na borda fornece processamento de baixa latência e tempos de resposta imediatos, o que é crucial para aplicativos sensíveis ao tempo. Testar com o número máximo esperado de dispositivos downstream e mensagens garante que o nó de borda consiga lidar com a carga e manter o desempenho. |
Para otimizar a eficiência de desempenho para dados de nuvem de alto volume, use a integração de serviços interna entre o Hub IoT e destinos de dados, como o Azure Data Lake Storage e o Azure Data Explorer. Esses serviços são otimizados para desempenho elevado. Use o SDK do Event Hubs para criar um processo de ingestão personalizado de um hub IoT. O SDK inclui um processador de eventos que pode reequilibrar dispositivos e hosts. Use o número apropriado de partições do Hub IoT e grupos de consumidores para o número de leitores de dados simultâneos e a taxa de transferência necessária. Separe o armazenamento necessário para ingestão de dados e processamento de eventos do armazenamento necessário para relatórios e integração. Use o armazenamento de dados que atenda às suas necessidades com base na taxa de transferência, tamanho, período de retenção, volume de dados, requisitos CRUD e replicação regional necessários. Exemplos de armazenamento incluem o Data Lake Storage, o Azure Data Explorer, o SQL do Azure e o Azure Cosmos DB. Para obter mais informações, consulte Selecione um armazenamento de dados do Azure para seu aplicativo. |
A eficiência de desempenho otimizada para dados de nuvem de alto volume garante que sua solução de IoT possa lidar com grandes quantidades de dados com eficiência. A integração de serviços interna e o SDK dos Hubs de Eventos ajudam a simplificar a ingestão e o processamento de dados. A configuração adequada de partições do Hub IoT e grupos de consumidores e armazenamento separado para diferentes finalidades ajudam a melhorar o gerenciamento de dados. O armazenamento de dados apropriado com base em necessidades específicas ajuda a manter o desempenho, a escalabilidade e a confiabilidade da solução de IoT. |
Separe o pipeline de ingestão da solução IoT do processamento de integração. Verifique se as consultas ou cargas complexas não afetam o desempenho de ingestão de dados no Hub IoT. Use APIs bem definidas e com versão para acessar informações do Hub IoT sobre dispositivos gêmeos, módulos gêmeos, trabalhos e roteamento de mensagens. Impedir que os usuários finais criem consultas definidas pelo usuário no armazenamento do Hub IoT. Considere usar armazenamentos de dados separados para integração e relatórios. | A separação do pipeline de ingestão da solução IoT e do processamento de integração garante que consultas complexas ou cargas da camada de integração não afetem o desempenho da ingestão de dados. Essa abordagem mantém a eficiência e a confiabilidade do Hub IoT. |
Use o Azure Monitor para coletar métricas do Hub IoT e enviar alertas para métricas críticas. Configure alertas do Azure Monitor com base em seus limites de escala, como mensagens de dispositivo para nuvem enviadas por segundo. Defina o alerta como um percentual do limite, como 75%, para que você seja notificado com antecedência. Configurar alertas do Azure Monitor para logs e métricas, como a quantidade de erros de limitação. Defina os alertas de serviços de Integridade do Serviço do Azure para acionar notificações quando o status do Hub de IoT for alterado. | As métricas e alertas do Hub IoT para métricas críticas garantem o monitoramento e o gerenciamento proativos da solução de IoT. Alertas baseados em limites de escala e uma porcentagem desses limites ajudam a notificar você antes de atingir os limites de escalabilidade para que você possa fazer ajustes oportunos. Alertas para logs e métricas, como erros de limitação de taxa, ajudam a identificar e resolver problemas prontamente. Alertas quando o status do Hub IoT muda fornecem reconhecimento de possíveis interrupções e permitem que você execute as ações necessárias para manter a confiabilidade e o desempenho da solução de IoT. |
Políticas do Azure
O Azure fornece um amplo conjunto de políticas internas relacionadas ao Hub IoT e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio do Azure Policy. Por exemplo, você pode verificar se:
- O Hub IoT tem métodos de autenticação locais desabilitados para APIs de serviço.
- O acesso à rede pública está desabilitado para sua instância de provisionamento de dispositivos do Hub IoT para que ele não seja acessível pela Internet pública.
- O Hub IoT só pode ser acessado de um ponto de extremidade privado.
- Os logs de recursos no Hub IoT estão ativados. Esses logs recriam trilhas de atividade que podem ajudá-lo a investigar após um incidente de segurança ou comprometimento de rede.
Para uma governança abrangente, examine as definições incorporadas do Azure Policy para a Internet das Coisas e outras políticas que possam afetar a segurança da solução IoT.
Recomendações do Assistente do Azure
O Assistente do Azure é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure. As recomendações do Assistente estão alinhadas com os pilares do Well-Architected Framework.
Para obter mais informações, consulte as recomendações no Azure Advisor.