Общие сведения о поддержке обновлений отключенных устройств (предварительная версия)

Модуль Microsoft Connected Cache (MCC) для IoT Edge устройств включает возможности обновления устройств на отключенных устройствах за шлюзами. В сценарии прозрачного использования шлюзов одно или несколько устройств передают сообщения через одно устройство шлюза, которое поддерживает подключение к Центру Интернета вещей Azure. В таких случаях дочерние устройства могут не иметь подключения к Интернету или же им может быть запрещено скачивать содержимое из Интернета. Модуль MCC предоставляет обновление устройств для Центр Интернета вещей клиентов с возможностью интеллектуального кэша в сети. Кэш включает обновления на основе образов и пакетов для устройств на основе ОС Linux, которые находятся за шлюзом IoT Edge (также называемые подчиненными устройствами Интернета вещей). Кэш также помогает сократить пропускную способность, используемую для обновлений.

Примечание

Эти сведения относятся к предварительной версии функции, которая доступна для раннего тестирования и использования в рабочей среде. Эта функция полностью поддерживается, но пока находится в стадии активной разработки и может существенно измениться до выхода общедоступной версии.

Если вы не знакомы с шлюзами IoT Edge, узнайте больше о том, как можно использовать устройство IoT Edge в качестве шлюза.

Что такое подключенный кэш Майкрософт

Подключенный кэш Майкрософт — это интеллектуальный прозрачный кэш для содержимого, опубликованного для Обновления устройств для Центра Интернета вещей. Этот кэш можно настроить так, чтобы он кэшировал содержимое из других источников, например из репозиториев пакетов. Подключенный кэш Майкрософт — это холодный кэш, который нагревается запросами клиентов для точных диапазонов файлов, запрошенных клиентом оптимизации доставки, и не выполняет предварительное заполнение содержимого. На следующей схеме и пошаговом описании показано, как работает подключенный кэш Майкрософт в инфраструктуре обновления устройств.

Примечание

В этом потоке предполагается, что шлюз IoT Edge имеет подключение к Интернету. Для сценария с подчиненным шлюзом IoT Edge (Nested Edge) "Сеть доставки содержимого" (CDN) можно рассматривать как MCC, размещенный на родительском шлюзе IoT Edge.

Схема, демонстрирующая, как модуль Подключенного кэша (Майкрософт) обеспечивает обновление отключенных устройств.

  1. Подключенный кэш Майкрософт развертывается в качестве модуля IoT Edge на локальном сервере шлюза.

  2. Обновление устройств для клиентов Центр Интернета вещей настроено на загрузку содержимого из подключенного кэша Майкрософт с помощью атрибута GatewayHostName строки подключения устройства для конечных устройств Интернета вещей или parent_hostname, заданного в файле config.toml для IoT Edge дочерних устройств.

  3. Обновление устройств для клиентов Центр Интернета вещей получает команды загрузки из службы обновления устройств и запрашивает содержимое обновления из подключенного кэша Майкрософт вместо CDN. Подключенный кэш Майкрософт по умолчанию ожидает передачи данных от HTTP-порта 80, в то время как клиент оптимизации доставки выполняет запрос на содержимое через порт 80, поэтому для родительского элемента необходимо настроить прослушивание этого порта. В настоящее время поддерживается только протокол HTTP.

  4. Сервер Подключенного кэша Майкрософт загружает содержимое из CDN, заполняет свой локальный кэш, хранящийся на диске, и доставляет содержимое клиенту Обновления устройств.

    Примечание

    При использовании обновлений на основе пакетов администратор настраивает сервер Подключенного кэша Майкрософт, указывая необходимое имя узла пакета.

  5. Последующие запросы от других клиентов обновления устройств для того же содержимого обновления теперь поступают из кэша, и Microsoft Connected Cache не будет отправлять запросы к CDN для того же содержимого.

Поддержка промышленного Интернета вещей (IIoT) с использованием сценариев размещения в родительских и дочерних объектах

Сценарии промышленного Интернета вещей (IIoT) часто включают несколько уровней IoT Edge шлюзов, при этом доступ к Интернету имеет только верхний уровень. В этом сценарии на каждом шлюзе размещается служба подключенного кэша Майкрософт, настроенная для запроса содержимого обновления из родительского шлюза.

Когда дочерний (или подчиненный) шлюз IoT Edge отправляет запрос на обновление содержимого от родительского шлюза, этот запрос повторяется на столько уровней, сколько необходимо, прежде чем достичь самого верхнего шлюза IoT Edge, на котором размещен сервер Подключенного кэша Майкрософт с доступом к Интернету. С сервера, подключенного к Интернету, содержимое запрашивается из сети CDN. После этого оно отправляется обратно в дочерний шлюз IoT Edge, который первоначально запросил это содержимое. Содержимое хранится на диске на каждом уровне.

Запрос доступа к предварительной версии

Модуль IoT Edge Подключенного кэша Майкрософт (предварительная версия) выпущен в качестве предварительной версии для клиентов, которые развертывают решения с помощью Обновления устройств для Центра Интернета вещей. Доступ к предварительной версии осуществляется по приглашению. Создайте запрос на доступ к предварительной версии Подключенного кэша Майкрософт для Обновления устройств для Центра Интернета вещей и предоставьте запрашиваемую информацию, чтобы получить доступ к модулю.

Конфигурация модуля подключенного кэша Майкрософт

Подключенный кэш Майкрософт развертывается в шлюзах azure IoT Edge в качестве модуля IoT Edge. Как и для других модулей IoT Edge, для настройки модулей MCC используются переменные среды и параметры создания контейнера. В этом разделе определяются переменные среды и параметры создания контейнера, необходимые для успешного развертывания модуля MCC для использования обновлением устройств для Центр Интернета вещей.

Требования к именованию модуля Подключенного кэша Майкрософт отсутствуют, так как никакие другие модули и службы не используют имя модуля MCC для обмена данными. Кроме того, отношения "родители-потомки" серверов Подключенного кэша Майкрософт зависят не от этого имени модуля, а от полного доменного имени или IP-адреса шлюза IoT Edge.

Переменные среды модуля

Переменные среды модуля Подключенного кэша Майкрософт используются для передачи базовой информации об удостоверениях модуля и функциональных параметров модуля в контейнер.

Имя переменной Формат значения Описание
CUSTOMER_ID Идентификатор GUID подписки Azure Обязательно

Это значение является идентификатором клиента, который обеспечивает безопасную проверку подлинности узла кэша в службах оптимизации доставки.
CACHE_NODE_ID Идентификатор GUID узла кэша Обязательно

Уникально идентифицирует узел MCC для служб оптимизации доставки.
CUSTOMER_KEY Идентификатор GUID ключа клиента Обязательно

Это значение является ключом клиента, который обеспечивает безопасную проверку подлинности узла кэша в службах оптимизации доставки.
STORAGE_N_SIZE_GB (где N — диск кэша) Целое число Обязательно

Укажите до девяти дисков для кэширования содержимого и максимальное пространство в гигабайтах, выделяемое для содержимого на каждом диске кэша. Номер диска должен соответствовать значениям привязки для диска кэша, указанным в параметре создания контейнера MicrosoftConnectedCacheN.

Примеры:
STORAGE_1_SIZE_GB = 150
STORAGE_2_SIZE_GB = 50

Минимальный размер кэша — 10 ГБ.
UPSTREAM_HOST Полное доменное имя/IP-адрес Необязательно

Это значение может указать вышестоящий узел MCC, который выступает в качестве прокси-сервера, если узел Подключенного кэша отключен от Интернета. Этот параметр используется для поддержки сценария вложенного Интернета вещей.

Примечание: MCC прослушивает HTTP-порт по умолчанию 80.
UPSTREAM_PROXY Полное доменное имя/IP-адрес:порт Необязательно

Исходящий интернет-прокси. Это значение также может быть прокси-сервером DMZ OT сети ISA 95.
CACHEABLE_CUSTOM_N_HOST Узел/IP-адрес
Полное доменное имя.
Необязательно

Требуется для поддержки пользовательских репозиториев пакетов. Репозитории могут размещаться в локальной среде или Интернете. Количество пользовательских узлов, которые можно настроить, не ограничено.

Примеры:
Имя — CACHEABLE_CUSTOM_1_HOST, значение — packages.foo.com
Имя — CACHEABLE_CUSTOM_2_HOST, значение — packages.bar.com
CACHEABLE_CUSTOM_N_CANONICAL Псевдоним Необязательно

Требуется для поддержки пользовательских репозиториев пакетов. Это значение можно использовать в качестве псевдонима. Сервер кэша будет использовать это имя для ссылки на различные имена DNS. Например, узел содержимого репозитория может иметь имя packages.foo.com, но для различных регионов к этому имени узла могут добавляться разные префиксы, например, westuscdn.packages.foo.com и eastuscdn.packages.foo.com. Задав канонический псевдоним, вы гарантируете, что содержимое, поступающее из одного узла, но от разных источников CDN, не будет дублироваться. Формат канонического значения не важен, но это значение должно быть уникальным для узла. Может оказаться, что проще всего задать значение, соответствующее значению узла.

Примеры, основанные на предыдущих примерах пользовательского узла:
Имя — CACHEABLE_CUSTOM_1_CANONICAL, значение — foopackages
Имя — CACHEABLE_CUSTOM_2_CANONICAL, значение — packages.bar.com
IS_SUMMARY_PUBLIC Значение true или false Необязательно

Позволяет просматривать сводный отчет в локальной сети или Интернете. Если задано значение true, для просмотра сводного отчета требуется использовать ключ API (описан далее).
IS_SUMMARY_ACCESS_UNRESTRICTED Значение true или false Необязательно

Позволяет просматривать сводный отчет в локальной сети или в Интернете без использования ключа API с любого устройства в сети. Используйте этот параметр, если вы не хотите блокировать просмотр сводных данных сервера кэша через браузер.

Параметры создания контейнера модуля

Параметры создания контейнера обеспечивают контроль параметров, связанных с хранилищем и портами, используемыми модулем Подключенного кэша Майкрософт.

Пример параметров создания контейнера:

{
    "HostConfig": {
        "Binds": [
            "/microsoftConnectedCache1/:/nginx/cache1/"
        ],
        "PortBindings": {
            "8081/tcp": [
                {
                    "HostPort": "80"
                }
            ],
            "5000/tcp": [
                {
                    "HostPort": "5100"
                }
            ]
        }
    }
}

В следующих разделах перечислены необходимые переменные для создания контейнера, используемые для развертывания модуля MCC.

HostConfig

Параметры HostConfig необходимы для сопоставления расположения хранилища контейнера с расположением хранилища на диске. Можно указать до девяти расположений.

Примечание

Номер диска должен соответствовать значениям привязки для диска кэша, указанным в переменной среды STORAGE_N_SIZE_GB со значением /MicrosoftConnectedCache*N*/:/nginx/cache*N*/.

Привязки портов

Параметры PortBindings сопоставляют порты контейнера с портами на устройстве узла.

Первая привязка порта задает HTTP-порт внешнего компьютера, по которому MCC прослушивает запросы содержимого. По умолчанию в качестве порта узла (HostPort) используется порт 80. Другие порты не поддерживаются, так как сейчас клиент ADU выполняет запросы через порт 80. TCP-порт 8081 — это внутренний порт контейнера, который прослушивает MCC, и его невозможно изменить.

Вторая привязка порта гарантирует, что контейнер не будет прослушивать порт узла 5000. Модуль Подключенного кэша Майкрософт имеет службу .NET Core, которая используется подсистемой кэширования для выполнения различных функций. Для поддержки вложенной границы значение параметра HostPort должно отличаться от 5000, так как модуль прокси-сервера реестра уже прослушивает порт 5000 узла.

Сводный отчет о Подключенном кэше Майкрософт

Сейчас сводный отчет является единственным способом, с помощью которого клиент может просмотреть кэшированные данные для экземпляров Подключенного кэша Майкрософт, развернутых на шлюзах IoT Edge. Отчет создается с интервалом в 15 секунд и включает усредненную статистику за этот период, а также агрегированную статистику за все время существования модуля. Основные статистические данные, которые предоставляет отчет:

  • hitBytes — сумма доставленных байтов, поступивших непосредственно из кэша.
  • missBytes — сумма доставленных байтов, которые Подключенному кэшу Майкрософт пришлось скачать из CDN для просмотра кэша.
  • eggressBytes — сумма значений hitBytes и missBytes, которая представляет общее число байтов, доставленных клиентам.
  • hitRatioBytes — отношение hitBytes к egressBytes. Например, если бы 100 % байтов eggressBytes, доставленных за заданный период, соответствовали значению hitBytes, то это значение было бы равно 1.

Сводный отчет можно найти на странице http://<IoT Edge gateway>:5001/summary. Замените адрес <шлюза IoT Edge> IP-адресом или именем узла шлюза IoT Edge, на котором размещается модуль MCC.

Дальнейшие действия

Узнайте, как реализовать подключенный кэш Майкрософт в отдельных шлюзах или во вложенных и промышленных шлюзах Интернета вещей.