Заметки разработчика умного дома
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Последние два года я отвечаю за бэкенд умного дома компании «Сбердевайсы». Помимо основной зоны ответственности, я часто выступаю техническим лидом для функций, затрагивающих все компоненты умного дома. Мне даже довелось побывать на стройке. Мой доклад — это попытка обобщить полученный за это время опыт.
Давайте представим, что мы решили запустить собственную экосистему умного дома для широкого потребителя. Вместе мы пройдём весь путь — от идеи до работающей системы, обслуживающей тысячи квартир и домов.
Мы начнём с формирования идеального образа результата: каким мог бы быть современный умный дом, если бы мы подключились на стадии проектирования. В данном сценарии столь популярные беспроводные технологии играют второстепенную роль, уступая место старым добрым UART, Modbus и т.д.
Затем мы скорректируем этот образ с учётом реалий, где основную массу потребителей составят пользователи с готовым жильём и ремонтом. В подавляющем большинстве случаев первое умное устройство будет использовать Wi-Fi или останется на полке магазина. А для различного рода датчиков, не подключённых к сети 230 Вольт, оптимальным решением будет протокол Zigbee. Выберем минимально необходимый набор устройств — это определит параметры нашего MVP. Сформируем технические требования, выберем ключевые метрики.
Требования определяют архитектуру. Оптимальным решением для устройств будет протокол MQTT, справедливо заслуживший популярность среди разработчиков умных устройств. В выборе ЯП и БД возможны варианты, но мы пойдём по пути Go + PostgreSQL.
Мы пройдём этап запуска и кратного роста нагрузки. Разберём, как решать проблемы масштабирования проекта. Основным вызовом будет балансировка большого числа долгоживущих TCP-соединений, что решается с помощью Nginx как для MQTT, так и для WebSocket.
Чем больше число пользователей сервиса, тем большее количество людей будет затронуто в случае плановой или незапланированной недоступности сервиса. Сбои в работе интернет-провайдеров также нарушают работу умного дома. Снизить чувствительность к таким событиям поможет повышение автономности нашего решения. Без доступа в интернет Zigbee Hub может выполнять простые сценарии автоматизации, лампочка — самостоятельно выполнять простые анимации, розетка — выключаться или включаться. Оборотной стороной такого решения будет высокая распределённость нашей системы, что усложняет реализацию фич и мониторинг.
В финале мы проработаем варианты дальнейшего развития — умный офис, умный отель, умный город.
Тимлид
Видео
Другие доклады секции
Доклады вне привычной рамки