В своём проекте мы решали следующие задачи:
- Скорость разработки задачи;
- Стоимость поддержки задачи;
- Возможность распараллеливать вычисления и задачи;
- Возможность максимально просто масштабировать приложение;
- CI/CD с минимальными усилиями.
Я расскажу о том, как мы решали эти задачи, на какие грабли мы наступали, что из этого всего получилось, и что делать дальше.
Что получили в итоге:
- Мощь JVM под капотом Scala;
- 15 минут от нажатия на кнопку "Merge request" до продакшена в 3 датацентра и 6 серверов с прохождением тестов (юнит + функциональные + интеграционные + нагрузочные);
- 6 нод с приложениями вместо 18 (по 2 в каждом датацентре для отказоустойчивости) с запасом прочности в 60%;
- Независимые пофичные релизы без даунтайма всех компонентов приложения;
- Масштабирование только того функционала и в том количестве, которое необходимо данному сервису.
Презентация доклада:
Запись выступления: