Escalar e gerenciar soluções de IoT com os selos de implantação

Hubs de eventos do Azure
Hub IoT do Azure
Gerenciador de Tráfego do Azure

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

A diagram showing a deployment stamping strategy for use in Azure 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:

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.

A diagram showing how to move a set of devices from one stamp to another stamp.

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:

  1. 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.
  2. 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.
  3. O DPS move um conjunto inteiro de dispositivos de um selo para outro.
  4. 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.

A diagram demonstrating how devices can move from one hub to another using an app gateway.

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:

Próximas etapas