Saiba mais sobre o suporte à atualização de dispositivos desconectados (versão prévia)
O módulo Cache Conectado da Microsoft (MCC) para dispositivos IoT Edge habilita recursos de Atualização de Dispositivo em dispositivos desconectados por trás de gateways. Em um cenário de gateway transparente, um ou mais dispositivos podem passar suas mensagens por meio de um único dispositivo de gateway que mantém a conexão com o Hub IoT do Azure. Nesses casos, os dispositivos filhos podem não ter conectividade com a Internet ou permissão para baixar conteúdo da Internet. O módulo MCC fornece aos clientes da Atualização de Dispositivo para Hub IoT a capacidade de um cache inteligente na rede. O cache permite atualizações baseadas em imagem e em pacote de dispositivos baseados no sistema operacional Linux que estão por trás de um gateway IoT Edge (também chamado de dispositivos IoT downstream). O cache também ajuda a reduzir a largura de banda usada para atualizações.
Observação
Essas informações referem-se a uma versão prévia do recurso disponível para testes antecipados e uso em um ambiente de produção. Esse recurso tem suporte total, mas ainda está em desenvolvimento ativo e pode receber alterações substanciais até que ele fique disponível.
Se você não estiver familiarizado com gateways IoT Edge, saiba mais sobre Como um dispositivo IoT Edge pode ser usado como um gateway.
O que é o Cache Conectado da Microsoft
O Cache Conectado da Microsoft é um cache inteligente e transparente para conteúdo publicado para a Atualização de Dispositivo para Hub IoT e pode ser personalizado para armazenar em cache o conteúdo de outras fontes como repositórios de pacotes. O Cache Conectado da Microsoft é um cache frio que é aquecido por solicitações de cliente para os intervalos de arquivos exatos solicitados pelo cliente de Otimização de Entrega e não faz o pré-lançamento do conteúdo. O diagrama e a descrição passo a passo a seguir explicam como o Cache Conectado da Microsoft funciona na infraestrutura de Atualização de Dispositivo.
Observação
Esse fluxo pressupõe que o gateway de IoT Edge tenha conectividade com a internet. Para o cenário de gateway downstream do IoT Edge (borda aninhada), a CDN (rede de distribuição de conteúdo) pode ser considerada o MCC hospedado no gateway do IoT Edge pai.
O Cache Conectado da Microsoft é implantado como um módulo IoT Edge no servidor de gateway local.
Os clientes da Atualização de Dispositivo para Hub IoT são configurados para fazer download do conteúdo do Cache Conectado da Microsoft usando o atributo GatewayHostName da cadeia de conexão do dispositivo para dispositivos IoT folha ou do parent_hostname definido no config.toml para dispositivos IOT Edge filho.
Os clientes da Atualização de Dispositivo para Hub IoT recebem comandos de download do serviço de Atualização de Dispositivo e solicitam conteúdo de atualização do Cache Conectado da Microsoft em vez da CDN. O Cache Conectado da Microsoft escuta na porta HTTP 80 por padrão, e o cliente de Otimização de Entrega faz a solicitação de conteúdo na porta 80, de modo que o pai deve ser configurado para escutar nessa porta. Há suporte apenas ao protocolo HTTP no momento.
O servidor de Cache Conectado da Microsoft faz download do conteúdo da CDN, propaga seu cache local armazenado em disco e entrega o conteúdo para Atualização de Dispositivo ao cliente.
Observação
Ao usar atualizações baseadas em pacote, o servidor de Cache Conectado da Microsoft será configurado pelo administrador com o devido nome de host do pacote.
As solicitações subsequentes de outros clientes da Atualização de Dispositivo do mesmo conteúdo de atualização agora serão provenientes do cache e o Cache Conectado da Microsoft não fará solicitações à CDN para o mesmo conteúdo.
Suporte ao IoT industrial (IIoT) com cenários de hospedagem pai/filho
Os cenários de IoT industrial (IIoT) geralmente envolvem vários níveis de gateways IoT Edge, com apenas o nível superior tendo acesso à Internet. Nesse cenário, cada gateway hospeda um serviço de Cache Conectado da Microsoft configurado para solicitar conteúdo de atualização de seu gateway pai.
Quando um gateway filho (ou downstream) IoT Edge faz uma solicitação de atualização de conteúdo de seu gateway pai, essa solicitação é repetida para quantos níveis forem necessários antes de atingir o gateway IoT Edge mais alto que hospeda um servidor de Cache Conectado da Microsoft que tenha acesso à Internet. A partir do servidor conectado à Internet, o conteúdo é solicitado da CDN e, neste momento, o conteúdo é retornado para o gateway de IoT Edge filho que solicitou o conteúdo originalmente. O conteúdo é armazenado em disco em todos os níveis.
Solicitar o acesso à pré-visualização
O módulo IoT Edge de Cache Conectado da Microsoft foi lançado como uma versão prévia para clientes que implantam soluções usando a Atualização de Dispositivo para Hub IoT. O acesso à versão prévia é feito mediante convite. Solicite acesso à versão prévia do Cache Conectado da Microsoft para a Atualização de Dispositivo para Hub IoT e forneça as informações solicitadas se você quiser acessar o módulo.
Configuração do módulo Cache Conectado da Microsoft
O Cache Conectado da Microsoft é implantado aos gateways Azure IoT Edge como um módulo do IoT Edge. Assim como outros módulos do IoT Edge, as variáveis de ambiente e as opções de criação de contêiner são usadas para configurar os módulos do MCC. Esta seção define as variáveis de ambiente e as opções de criação de contêiner necessárias para implantar com sucesso o módulo MCC para ser usado pela Atualização de Dispositivo para Hub IoT.
Não há nenhum requisito de nomenclatura para o módulo de Cache Conectado da Microsoft, pois nenhuma outra interação de módulo ou serviço depende do nome do módulo MCC para comunicação. Além disso, a relação pai-filho dos servidores de Cache Conectado da Microsoft não depende desse nome de módulo, mas sim do endereço IP ou FQDN do gateway do IoT Edge.
Variáveis de ambiente do módulo
Variáveis de ambiente do módulo de Cache Conectado da Microsoft são usadas para passar informações de identidade de módulo básico e configurações de módulo funcional para o contêiner.
Nome da variável | Formato de valor | Descrição |
---|---|---|
CUSTOMER_ID | GUID da ID de Assinatura do Azure | Obrigatório Esse valor é a ID do cliente que fornece autenticação segura do nó de cache aos serviços de Otimização de Entrega. |
CACHE_NODE_ID | GUID da ID de Nó de Cache | Obrigatório Identifica exclusivamente o nó MCC para os serviços de Otimização de Entrega. |
CUSTOMER_KEY | GUID da chave do cliente | Obrigatório Esse valor é a chave do cliente que fornece autenticação segura do nó de cache aos serviços de Otimização de Entrega. |
STORAGE_N_SIZE_GB (onde N é a unidade de cache) | Inteiro | Obrigatório Especifique até nove unidades para armazenar conteúdo em cache e especifique o espaço máximo em gigabytes a serem alocados para conteúdo em cada unidade de cache. O número da unidade deve corresponder aos valores de associação da unidade de cache especificados no valor da opção de criação de contêiner MicrosoftConnectedCacheN value. Exemplos: STORAGE_1_SIZE_GB = 150 STORAGE_2_SIZE_GB = 50 O tamanho mínimo do cache é 10 GB. |
UPSTREAM_HOST | FQDN/IP | Opcional Esse valor pode especificar um nó MCC upstream que atua como um proxy se o nó cache conectado estiver desconectado da Internet. Essa configuração é usada para dar suporte ao cenário de IoT aninhado. Nota: O MCC escuta na porta padrão http 80. |
UPSTREAM_PROXY | FQDN/IP:PORT | Opcional O proxy da Internet de saída. Esse valor também pode ser o proxy OT DMZ de uma rede ISA 95. |
CACHEABLE_CUSTOM_N_HOST | HOST/IP FQDN |
Opcional Necessário para dar suporte a repositórios de pacotes personalizados. Os repositórios podem ser hospedados localmente ou na Internet. Não há limite para o número de hosts personalizados que podem ser configurados. Exemplos: Nome = CACHEABLE_CUSTOM_1_HOST Valor = packages.foo.com Nome = CACHEABLE_CUSTOM_2_HOST Valor = packages.bar.com |
CACHEABLE_CUSTOM_N_CANONICAL | Alias | Opcional Necessário para dar suporte a repositórios de pacotes personalizados. Esse valor pode ser usado como um alias e será usado pelo servidor de cache para fazer referência a diferentes nomes DNS. Por exemplo, o nome do host de conteúdo do repositório pode ser packages.foo.com, mas para regiões diferentes pode haver um prefixo extra que é adicionado ao nome do host, como westuscdn.packages.foo.com e eastuscdn.packages.foo.com. Ao definir o alias canônico, você garante que o conteúdo não seja duplicado para conteúdo proveniente do mesmo host, mas fontes diferentes da CDN. O formato do valor canônico não é importante, mas deve ser exclusivo para o host. Pode ser mais fácil definir o valor para corresponder ao valor do host. Exemplos com base nos exemplos de host personalizado anteriores: Nome = CACHEABLE_CUSTOM_1_CANONICAL Valor = foopackages Nome = CACHEABLE_CUSTOM_2_CANONICAL Valor = packages.bar.com |
IS_SUMMARY_PUBLIC | Verdadeiro ou Falso | Opcional Habilita a exibição do relatório de resumo na rede local ou na Internet. O uso de uma chave de API (discutida posteriormente) é necessário para exibir o relatório de resumo se definido como true. |
IS_SUMMARY_ACCESS_UNRESTRICTED | Verdadeiro ou Falso | Opcional Habilita a exibição do relatório de resumo na rede local ou na Internet sem o uso da chave de API de qualquer dispositivo na rede. Use se você não quiser bloquear o acesso à exibição de dados de resumo do servidor de cache por meio do navegador. |
Opções de criação de contêiner do módulo
As opções de criação de contêiner fornecem controle das configurações relacionadas ao armazenamento e às portas usadas pelo módulo do Cache Conectado da Microsoft.
Opções de criação de contêiner de exemplo:
{
"HostConfig": {
"Binds": [
"/microsoftConnectedCache1/:/nginx/cache1/"
],
"PortBindings": {
"8081/tcp": [
{
"HostPort": "80"
}
],
"5000/tcp": [
{
"HostPort": "5100"
}
]
}
}
}
As seções a seguir listam as variáveis de criação de contêiner necessárias usadas para implantar o módulo MCC.
HostConfig
Os parâmetros HostConfig
são necessários para mapear o local de armazenamento do contêiner para o local de armazenamento no disco. Até nove locais podem ser especificados.
Observação
O número da unidade deve corresponder aos valores de associação da unidade de cache especificados na variável de ambiente STORAGE_N_SIZE_GB value, /MicrosoftConnectedCache*N*/:/nginx/cache*N*/
.
PortBindings
Os parâmetros PortBindings
mapeiam portas de contêiner para portas no dispositivo host.
A primeira associação de porta especifica a porta HTTP do computador externo que o MCC escuta para solicitações de conteúdo. O HostPort padrão é a porta 80 e outras portas não têm suporte no momento, pois o cliente ADU faz solicitações na porta 80 hoje. A porta TCP 8081 é a porta de contêiner interna na qual o MCC escuta e não pode ser alterada.
A segunda associação de porta garante que o contêiner não esteja escutando na porta do host 5000. O módulo de Cache Conectado da Microsoft possui um serviço .NET Core, que é usado pelo mecanismo de cache para várias funções. Para dar suporte à borda aninhada, o HostPort não deve ser definido como 5000, pois o módulo de proxy do Registro já está escutando na porta do host 5000.
Relatório de resumo do Cache Conectado da Microsoft
No momento, o relatório de resumo é a única maneira de um cliente exibir dados de cache para as instâncias de Cache Conectado da Microsoft implantadas em gateways do IoT Edge. O relatório é gerado em intervalos de 15 segundos e inclui estatísticas médias para o período, bem como estatísticas agregadas para a vida útil do módulo. As principais estatísticas que o relatório fornece são:
- hitBytes – a soma de bytes entregues diretamente do cache.
- dissbytes – a soma de bytes entregues que o Cache Conectado da Microsoft teve de baixar da CDN para ver o cache.
- eggressBytes – a soma de hitBytes e missBytes e é o total de bytes entregues aos clientes.
- hitRatioBytes – a taxa de HitBytes para egressBytes. Por exemplo, se 100% de eggressBytes entregues em um período forem iguais a hitBytes, esse valor seria 1.
O relatório de resumo está disponível em http://<IoT Edge gateway>:5001/summary
Substituir <gateway do IoT Edge> pelo endereço IP ou pelo nome do host do módulo do MCC que hospeda o gateway do IoT Edge.
Próximas etapas
Saiba como implementar o Cache Conectado da Microsoft em gateways únicos ou gateways de IoT aninhados e industriais.