Как мы один pet-project масштабировали
Тезисы
Во время работы над сложными проектами, например, такими как виртуальные ассистенты, возникают нетиповые задачи, для решения которых нет подходящего инструмента или фреймворка. Иногда такие задачи кажутся маленькими и незначительными, поэтому один разработчик-энтузиаст за два дня пишет на коленке маленький Python сервис и делится им с коллегами.

Но как быть, если маленький наколенный проект с 2 RPS, предназначенный для использования несколькими людьми, выстреливает, и его накрывает волна фича реквестов и пользователей из десятков команд?

В своём докладе я расскажу, как развивался наш внутренний инструмент UnionPortal, предназначенный для поддержки NLP задач, про его эволюцию, начиная с маленького наколенного проекта и заканчивая большим отказоустойчивым сервисом со всеми правилами хорошего тона enterprise сервиса. Мы затронем такие интересные вопросы как масштабирование, бесшовный вывод из и ввод в эксплуатацию, сокращение стоимости разработки и внедрение единого архитектурного стандарта.

План
Предпосылки к появлению сервиса.
Шаг ноль — делаем прототип UnionPortal 1.0 одним человеком на Streamlit.
Шаг первый — замена интерфейса и разделение фронта и бэка.
  • Отказываемся от генерации фронта Python кодом
  • Повышаем UI и UX
  • Внедряем метрики и доказываем значимость сервиса
Шаг второй — увеличиваем пропускную способность и отказоустойчивость.
  • Меняем архитектуру. Переходим от одного сервиса к группе сервисов
  • Удешевляем железо — отказываемся от GPU.
  • Делаем на базе SmartApp Framework новый - UnionPlugin Framework
  • Бесшовно заменяем UnionPortal 1.0 на UnionPortal 2.0
Шаг третий — добавляем джентльменский набор в виде ELK, Prometheus и Grafana.

Доклад рассчитан на разработчиков и руководителей разработки. Слушатели узнают:
  • Как доказывать значимость pet-project для компании
  • Как масштабировать "сырые" проекты
  • Как можно экономить время и силы на разработке
Во время работы над сложными проектами, например, такими как виртуальные ассистенты, возникают нетиповые задачи, для решения которых нет подходящего инструмента или фреймворка. Иногда такие задачи кажутся маленькими и незначительными, поэтому один разработчик-энтузиаст за два дня пишет на коленке маленький Python сервис и делится им с коллегами.

Но как быть, если маленький наколенный проект с 2 RPS, предназначенный для использования несколькими людьми, выстреливает, и его накрывает волна фича реквестов и пользователей из десятков команд?

В своём докладе я расскажу, как развивался наш внутренний инструмент UnionPortal, предназначенный для поддержки NLP задач, про его эволюцию, начиная с маленького наколенного проекта и заканчивая большим отказоустойчивым сервисом со всеми правилами хорошего тона enterprise сервиса. Мы затронем такие интересные вопросы как масштабирование, бесшовный вывод из и ввод в эксплуатацию, сокращение стоимости разработки и внедрение единого архитектурного стандарта.

План
Предпосылки к появлению сервиса.
Шаг ноль — делаем прототип UnionPortal 1.0 одним человеком на Streamlit.
Шаг первый — замена интерфейса и разделение фронта и бэка.
  • Отказываемся от генерации фронта Python кодом
  • Повышаем UI и UX
  • Внедряем метрики и доказываем значимость сервиса
Шаг второй — увеличиваем пропускную способность и отказоустойчивость.
  • Меняем архитектуру. Переходим от одного сервиса к группе сервисов
  • Удешевляем железо — отказываемся от GPU.
  • Делаем на базе SmartApp Framework новый - UnionPlugin Framework
  • Бесшовно заменяем UnionPortal 1.0 на UnionPortal 2.0
Шаг третий — добавляем джентльменский набор в виде ELK, Prometheus и Grafana.

Доклад рассчитан на разработчиков и руководителей разработки. Слушатели узнают:
  • Как доказывать значимость pet-project для компании
  • Как масштабировать "сырые" проекты
  • Как можно экономить время и силы на разработке
Видеозапись доклада
Информация о спикере
Денис Усачёв
Руководитель разработки на ML системах, Сбердевайсы
Список конференций, где я выступал:

Dump.
27 мая 2022
Как прокачать надёжность ML системы

MergeConf
20-21 мая 2022
Как прокачать надёжность ML системы

Moscow Python Podcast. 2021

Автоматизация процессов

https://www.youtube.com/watch?v=YXV3qke2QZI&t=1s
Конференция SmartDev 2021

Как разработчик может управлять характером и эмоциями ассистента

https://www.youtube.com/watch?v=ns3CYPywXAQ&t=2s
Конференция PyCon Weekend Сочи, март 2021

SmartApp Framework новые возможности для Python разработчиков

Ночная конференция IT Nights 2019

Bert in production

https://www.youtube.com/watch?v=p7j99FALS8U&t=268s
Круглый стол CodeFest

Тут или там?

https://www.youtube.com/watch?v=xuT--6yTgOM

  • Денис Усачёв
    Руководитель разработки на ML системах, Сбердевайсы
    Список конференций, где я выступал:

    Dump.
    27 мая 2022
    Как прокачать надёжность ML системы

    MergeConf
    20-21 мая 2022
    Как прокачать надёжность ML системы

    Moscow Python Podcast. 2021

    Автоматизация процессов

    https://www.youtube.com/watch?v=YXV3qke2QZI&t=1s
    Конференция SmartDev 2021

    Как разработчик может управлять характером и эмоциями ассистента

    https://www.youtube.com/watch?v=ns3CYPywXAQ&t=2s
    Конференция PyCon Weekend Сочи, март 2021

    SmartApp Framework новые возможности для Python разработчиков

    Ночная конференция IT Nights 2019

    Bert in production

    https://www.youtube.com/watch?v=p7j99FALS8U&t=268s
    Круглый стол CodeFest

    Тут или там?

    https://www.youtube.com/watch?v=xuT--6yTgOM
Все доклады секции