Разработка серверной платформы для управления IoT-устройствами

Требуется создать надежное и масштабируемое серверное решение для управления большой сетью IoT-устройств, использующих протокол MQTT для связи.

Контекст проекта

В рамках проекта необходимо обеспечить централизованное управление сетью, состоящей из 40 000 устройств. Каждое устройство представляет собой аппаратную платформу на базе микроконтроллера ESP32 S2.

Основные задачи серверной части

  • Обеспечение стабильного подключения и двустороннего обмена данными с устройствами по протоколу MQTT.
  • Обработка, валидация и сохранение данных, поступающих от устройств.
  • Отправка команд и конфигураций на устройства.
  • Масштабируемость архитектуры для поддержки указанного количества активных подключений.
  • Организация локальной части системы (on-premise или в приватном облаке).
  • Работа с данными, хранящимися в памяти устройств (логи, состояния, метрики).

Требования к решению

  • Архитектура должна быть отказоустойчивой и рассчитанной на высокую нагрузку.
  • Необходимо предусмотреть механизмы мониторинга состояния устройств и серверной инфраструктуры.
  • Решение должно быть документировано и развернуто.

Исполнителю необходимо предложить оптимальную технологическую стек и архитектуру для реализации данной задачи.