Как мы разработали систему OTA обновления прошивок на 30000 устройств
1. Введение:
- Необходимость собственной системы обновления прошивок складских устройств.
- Требования к системе: риски и ограничения при работе в закрытом контуре
- Готовые варианты "из коробки", и почему мы пришли к самописному решению.
2. Выбор стэка и подготовка к разработке
- Почему мы выбрали Python
- Кеширование в Redis
- S3 (CEPH) для хранения файлов прошивок
- Микросервис или монолит
3. Архитектура системы:
- Структура микросервиса по заветам дядюшки Боба. Чистая архитектура, и с чем её едят
- Redis, Postgres и S3, взаимодействие, и при чем тут паттерн Repository
- React Admin для быстрой админ консоли. Когда бэкендер пишет фронт, история успеха
- Контракты между бэкендом и приложением на устройстве
4. Релизный цикл
- Построение релизного цикла
- Как мы настроили выкатку канареечных релизов
- A/B тесты
- Откат прошивки в случае критического бага
5. Масштабирование и нагрузка
- Как мы разработали очередь обновления для устройств
- Как мы разнесли систему обновления на два датацентра
- От десятка устройств к нескольким тысячам, от ручного контроля к автоматизации управления
- Сложности доступа в закрытый контур, находим общий язык с конечным пользователем
6. Заключение.
- Чему мы научились пока разрабатывали систему OTA обновления прошивок
- От Системы обновления прошивок, к собственной экосистеме.