Как мы разработали систему OTA обновления прошивок на 30000 устройств

Производительность enterprise-систем

API
Python
Архитектурные паттерны
Internet of Things
Микросервисы

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Обновление складских устройств не тривиальная задача, особенно когда их больше 30000. В этом докладе мы узнаем все о системе обновления прошивок в Wildberries. Пётр Растегаев расскажет нам про: стек, архитектуру, релизный цикл, проблемы и их решения.

Целевая аудитория

Архитекторы, Тимлиды разработки, Сеньор разработчики.

Тезисы

Как мы разработали систему OTA обновления прошивок на 30000 устройств

1. Введение:
- Необходимость собственной системы обновления прошивок складских устройств.
- Требования к системе: риски и ограничения при работе в закрытом контуре
- Готовые варианты "из коробки", и почему мы пришли к самописному решению.

2. Выбор стэка и подготовка к разработке
- Почему мы выбрали Python
- Кеширование в Redis
- S3 (CEPH) для хранения файлов прошивок
- Микросервис или монолит

3. Архитектура системы:
- Структура микросервиса по заветам дядюшки Боба. Чистая архитектура, и с чем её едят
- Redis, Postgres и S3, взаимодействие, и при чем тут паттерн Repository
- React Admin для быстрой админ консоли. Когда бэкендер пишет фронт, история успеха
- Контракты между бэкендом и приложением на устройстве

4. Релизный цикл
- Построение релизного цикла
- Как мы настроили выкатку канареечных релизов
- A/B тесты
- Откат прошивки в случае критического бага

5. Масштабирование и нагрузка
- Как мы разработали очередь обновления для устройств
- Как мы разнесли систему обновления на два датацентра
- От десятка устройств к нескольким тысячам, от ручного контроля к автоматизации управления
- Сложности доступа в закрытый контур, находим общий язык с конечным пользователем

6. Заключение.
- Чему мы научились пока разрабатывали систему OTA обновления прошивок
- От Системы обновления прошивок, к собственной экосистеме.

В IT с 2007 г., реализовывал проекты в области финтеха, виртуализации, обработки больших данных. В свободное время любит кулинарию и настольные игры.

Видео