Este artigo discute uma estratégia de selo de implantação que dá suporte à escala vertical dos números de dispositivos conectados em uma solução de IoT (Internet das Coisas). O artigo também descreve detalhadamente como implantar dispositivos IoT e aplicativos entre selos de implantação.
A estratégia de selo de implantação para soluções de IoT baseia-se no padrão de design Selo de implantação. Os selos de implantação são unidades compostas por componentes heterogêneos que dão suporte a uma população de dispositivos definida. Os selos de implantação escalam verticalmente o número de dispositivos IoT conectados replicando selos, em vez de escalar verticalmente diferentes partes de uma solução de modo independente.
Benefícios dos selos de implantação:
- Posicionar e distribuir dispositivos por critérios como dependência geográfica, ciclo de vida ou status de versão.
- Conter os impactos da interrupção ou da degradação do serviço em selos específicos.
- Implantar novos recursos, funcionalidades e alterações de arquitetura em selos específicos que podem dar suporte a eles.
- Dar suporte ao gerenciamento de dispositivos de várias gerações alinhando funcionalidades e serviços a populações de dispositivo especificadas.
- Fornecer um modelo de escala e de custo com base em selos para acomodar de modo previsível o crescimento futuro.
Arquitetura de selo de implantação de IoT
Baixe um Arquivo Visio dessa arquitetura.
O diagrama anterior ilustra uma estratégia de selo de implantação para o IoT do Azure. Essa solução cria selos atômicos que consistem em:
- Um Hub IoT do Azure
- Pontos de extremidade de roteamento como Hubs de Eventos do Azure
- Componentes de processamento
Os selos devem ser sempre projetados para dar suporte a capacidades explícitas. Para determinar o número correto de dispositivos aos quais dar suporte, considere a quantidade de tráfego de comunicação esperada proveniente dos dispositivos. Nesta solução, cada selo idealmente dá suporte a uma população de dispositivos definida com mil a 1 milhão de dispositivos. Conforme a população do dispositivo cresce, as instâncias de selo adicionadas acomodam esse crescimento.
Mover dispositivos e aplicativos entre selos
Os selos de implantação são destinados à implantação atômica, mas às vezes é necessário mover populações de dispositivo entre selos. Por exemplo, talvez seja necessário:
- Mova populações de dispositivos dos selos de teste para os selos de produção como parte de um ciclo de lançamento.
- Mova dispositivos e usuários para outro selo como parte da correção de interrupções em um cenário de alta disponibilidade.
- Balanceie a carga para distribuir a população de dispositivos de maneira mais uniforme entre os selos.
Mover dispositivos entre hubs
Se os componentes do selo abrangem apenas o comportamento do dispositivo para nuvem, mover dispositivos entre hubs é suficiente para migrar os dispositivos de um selo para outro. O DPS (Serviço de Provisionamento de Dispositivos) do IoT do Azure fornece uma forma de mover os dispositivos entre instâncias do Hub IoT. Para usar o DPS na estratégia de selo, verifique se entendeu os Conceitos e terminologia do DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT.
Observação
O DPS usa IDs de registro, enquanto o Hub IoT usa IDs de dispositivo. Essas IDs geralmente têm o mesmo valor, mas podem ser diferentes. Ao consultar ou gerenciar dispositivos com as APIs do DPS, use as IDs de registro.
Mover dispositivos e aplicativos entre selos autônomos
Se os selos de implantação incluírem front-ends da Web ou aplicativos de API que se comunicam por meio do Hub IoT, esses componentes também precisarão migrar para novos hubs para continuarem a se comunicar com os dispositivos movidos. Você pode mover aplicativos e dispositivos inteiros entre selos.
Quando os selos abrangerem um aplicativo de ponta a ponta, o Gerenciador de Tráfego do Azure poderá mover o tráfego de um selo para outro. Essa estratégia envolve a criação de vários selos, cada um contendo todo o aplicativo com a própria URL. Populações inteiras de dispositivos e usuários de aplicativos se movem de um selo para outro.
Essa estratégia totalmente independente é:
- Simples de implantar.
- Apropriado como parte de uma estratégia de alta disponibilidade.
- Útil para migrar dispositivos e usuários por meio de ambientes de teste para produção.
Baixe um Arquivo Visio dessa arquitetura.
O diagrama anterior acima mostra o processo de migração de um conjunto de dispositivos do Selo 1 para o Selo 2:
- Os dispositivos vão adquirir o ponto de extremidade do Hub IoT por meio do DPS se ele for desconhecido ou não for mais válido.
- Quando os dispositivos são movidos para o Selo 2, o Gerenciador de Tráfego aponta a URL do aplicativo para a instância do Aplicativo 2.
- O DPS move um conjunto inteiro de dispositivos de um selo para outro.
- Cada selo de aplicativo contém o front-end do aplicativo e refere-se ao Hub IoT correspondente a esse selo.
Mover dispositivos entre selos em um gateway de aplicativo
Quando um front-end de aplicativo dá suporte a vários selos de dispositivo, o front-end do aplicativo precisa atualizar dinamicamente o mapeamento de dispositivo para hub para manter a comunicação da nuvem para o dispositivo. Para dar suporte à migração de dispositivos para diferentes selos e Hubs IoT, os gateways podem usar um mecanismo de cache para o mapeamento do dispositivo para o hub. Os clientes de serviço podem usar uma rotina de pesquisa compartilhada para detectar e migrar dinamicamente chamadas de dispositivo para novos Hubs IoT.
Baixe um Arquivo Visio dessa arquitetura.
Nesse modelo, o gateway usa um cache para mapear dispositivos para Hubs IoT e usa como padrão o ponto de extremidade armazenado em cache. Se o gateway receber um erro de dispositivo não encontrado, ele usará o SDK do Serviço do DPS para consultar o registro de dispositivo individual e determinar qual Hub IoT o dispositivo usa agora. Em seguida, o gateway atualizará o cache com o novo mapeamento.
Veja algumas considerações quanto ao uso dessa estratégia:
Enquanto o armazenamento em cache em uma pesquisa compartilhada impedir a nova negociação de pontos de extremidade em cada chamada, é possível que o ponto de extremidade do cache falhe. Um cache secundário ou plano de fallback de renegociação com o DPS pode melhorar a confiabilidade da solução.
Se o registro do dispositivo estiver em andamento, o dispositivo não poderá ser acessado. Use uma API do DPS, como Obter estado do registro do dispositivo, para obter o Hub IoT atribuído ao dispositivo e ao status de registro atual.
Na opção somente dispositivo, os dispositivos são desconectados do Hub IoT quando eles se movem de um selo para outro. Na opção aplicativo para dispositivo, o erro ocorre quando o aplicativo tenta acessar o dispositivo por meio do Hub IoT.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Autor principal:
- Jason Wadsworth | Engenheiro de Software Principal
Próximas etapas
- Dispositivos, plataformas e aplicativos de IoT
- Comandos de aplicativo para dispositivo de IoT
- Padrão de design de selos de implantação