Este artigo discute uma estratégia de carimbo de implantação para dar suporte à ampliação do número de dispositivos conectados em uma solução de Internet das Coisas (IoT). O artigo também descreve em detalhes como implantar dispositivos e aplicativos IoT entre carimbos de implantação.
A estratégia de carimbo de implantação para soluções de IoT é baseada no padrão de design do Selo de Implantação . Os carimbos de implantação são unidades compostas por componentes heterogêneos que suportam uma população de dispositivos definida. O carimbo de implantação aumenta o número de dispositivos IoT conectados replicando carimbos, em vez de escalar de forma independente diferentes partes de uma solução.
Benefícios de carimbo de implantação:
- Coloque e distribua dispositivos por critérios como dependência geográfica, ciclo de vida ou status de lançamento.
- Conter impactos de interrupção ou degradação de serviço em carimbos específicos.
- Implante novos recursos, recursos e alterações arquitetônicas em carimbos específicos que possam oferecer suporte a eles.
- Ofereça suporte ao gerenciamento de dispositivos multigeracionais alinhando recursos e serviços a populações de dispositivos especificadas.
- Forneça um modelo de escalabilidade e custo baseado em selos para acomodar de forma previsível o crescimento futuro.
Arquitetura de carimbo de implantação de IoT
Transfira um ficheiro do Visio desta arquitetura.
O diagrama anterior ilustra uma estratégia de carimbo de implantação para o Azure IoT. Esta solução constrói selos atómicos que consistem, cada um, em:
- Um Hub IoT do Azure
- Roteamento de pontos de extremidade, como Hubs de Eventos do Azure
- Componentes de processamento
Os carimbos devem ser sempre concebidos de modo a suportar capacidades explícitas. Para determinar o número correto de dispositivos a suportar, considere quanto tráfego de comunicação esperar dos dispositivos. Nesta solução, cada carimbo suporta de forma ideal uma população de dispositivos definida de 1.000 a 1.000.000 dispositivos. À medida que a população de dispositivos cresce, as instâncias de selo adicionadas acomodam o crescimento.
Mova dispositivos e aplicações entre carimbos
Os carimbos de implantação destinam-se à implantação atômica, mas às vezes você precisa mover populações de dispositivos entre carimbos. Por exemplo, talvez seja necessário:
- Mova populações de dispositivos de selos de teste para selos de produção como parte de um ciclo de lançamento.
- Mova dispositivos e usuários para outro carimbo como parte da correção de interrupção em um cenário de alta disponibilidade.
- Balanceamento de carga para distribuir populações de dispositivos de forma mais uniforme entre selos.
Mover dispositivos entre hubs
Se os componentes de carimbo englobarem apenas o comportamento de dispositivo para nuvem, mover dispositivos entre hubs é suficiente para migrar os dispositivos de um carimbo para outro. O Azure IoT Device Provisioning Service (DPS) fornece uma maneira de mover dispositivos entre instâncias do Hub IoT. Para usar o DPS na estratégia de carimbo, certifique-se de entender a terminologia e os conceitos do DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT.
Nota
O DPS usa IDs de registro, enquanto o Hub IoT usa IDs de dispositivo. Esses IDs geralmente têm o mesmo valor, mas podem ser diferentes. Ao consultar ou gerenciar dispositivos com as APIs do DPS, certifique-se de usar as IDs de registro.
Mova dispositivos e aplicativos entre carimbos independentes
Se os carimbos 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 continuar se comunicando com os dispositivos que foram movidos. Você pode mover aplicativos e dispositivos inteiros entre selos.
Quando cada carimbo engloba um aplicativo de ponta a ponta, o Gerenciador de Tráfego do Azure pode mover o tráfego de um carimbo para outro. Essa estratégia envolve a criação de vários selos, cada um contendo todo o aplicativo com sua própria URL. Populações inteiras de dispositivos e usuários de aplicativos se movem de um carimbo para outro.
Esta estratégia totalmente autónoma é:
- Simples de implementar.
- Apropriado como parte de uma estratégia de alta disponibilidade.
- Útil para migrar dispositivos e usuários de ambientes de teste para ambientes de produção.
Transfira um ficheiro do Visio desta arquitetura.
O diagrama anterior acima mostra o processo de mover um conjunto de dispositivos do Carimbo 1 para o Carimbo 2:
- Os dispositivos adquirem 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 Carimbo 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 carimbo para outro.
- Cada carimbo de aplicativo contém o front-end do aplicativo e refere-se ao Hub IoT correspondente a esse carimbo.
Mover dispositivos entre carimbos atrás de um único gateway de aplicativo
Quando um único front-end de aplicativo oferece suporte a vários carimbos de dispositivo, o front-end do aplicativo deve atualizar dinamicamente seu mapeamento de dispositivo para hub para manter a comunicação de nuvem para dispositivo. Para dar suporte a dispositivos que se movem para diferentes carimbos e Hubs IoT, os gateways podem usar um mecanismo de cache para mapeamento de dispositivo para hub. Os clientes de serviço podem usar uma rotina de pesquisa compartilhada para detetar e migrar dinamicamente chamadas de dispositivo para novos Hubs IoT.
Transfira um ficheiro do Visio desta 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 DPS para consultar o registro de dispositivo individual e determinar qual Hub IoT o dispositivo usa agora. Em seguida, o gateway atualiza o cache com o novo mapeamento.
Aqui estão algumas considerações para esta estratégia:
Embora o cache em uma pesquisa compartilhada evite a renegociação de pontos de extremidade em cada chamada, é possível que o ponto de extremidade de cache falhe. Um cache secundário ou um 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 estará acessível. Use uma API DPS como Obter Estado de Registro do Dispositivo para obter o Hub IoT atribuído ao dispositivo e seu status de registro atual.
No caso apenas do dispositivo, os dispositivos são desconectados do Hub IoT quando se movem de um carimbo para outro. No caso do aplicativo para o dispositivo, o erro ocorre quando o aplicativo tenta alcançar o dispositivo por meio do Hub IoT.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Jason Wadsworth - Brasil | Engenheiro de Software Principal
Próximos passos
- Dispositivos, plataforma e aplicativos IoT
- Comandos de aplicativo para dispositivo da IoT
- Padrão de design de Selos de Implantação