16. Проблемы
• Долго отрабатывают запросы (95% - 500ms)
• Невозможно параллельно, многопоточно выполнять какие-то задачи
• Приложение - один большой кусок, который нужно выкатывать очень
часто и целиком
16
17. Проблемы
• Долго отрабатывают запросы (95% - 500ms)
• Невозможно параллельно, многопоточно выполнять какие-то задачи
• Приложение - один большой кусок, который нужно выкатывать очень
часто и целиком
• Кеширование не спасает
17
18. Проблемы
• Долго отрабатывают запросы (95% - 500ms)
• Невозможно параллельно, многопоточно выполнять какие-то задачи
• Приложение - один большой кусок, который нужно выкатывать очень
часто и целиком
• Кеширование не спасает
• Много команд разработчиков, сервисов, интеграций
18
19. Проблемы
• Долго отрабатывают запросы (95% - 500ms)
• Невозможно параллельно, многопоточно выполнять какие-то задачи
• Приложение - один большой кусок, который нужно выкатывать очень
часто и целиком
• Кеширование не спасает
• Много команд разработчиков, сервисов, интеграций
• Много тестов, которые долго работают
19
24. Сервисная архитектура (SOA)
— модульный подход к разработке программного обеспечения,
основанный на использовании распределённых, слабо связанных
заменяемых компонентов, оснащённых стандартизированными
интерфейсами для взаимодействия по стандартизированным
протоколам
24
48. Как распилить?
• Выделить каждую группу методов в отдельный сервис
• Начать с самого мелкого и несвязного сервиса
• Постепенно выделять сервисы, переходя к более крупным
48
60. Scala vs Java
• Те же библиотеки + свои
• Меньше кода, чем на Java
• Много success-story в микросервисах
• Асинхронность и многопоточность намного проще из коробки +
сторонние библиотеки
60
61. Scala vs Java
• Те же библиотеки + свои
• Меньше кода, чем на Java
• Много success-story в микросервисах
• Асинхронность и многопоточность намного проще из коробки +
сторонние библиотеки
• В компании есть несколько команд, использующих Scala на
продакшене
61
84. Тестирование
• Функциональные и интеграционные тесты на ваш продукт, которые у
вас должны быть
• Для нагрузки - gatling
• gor
• Простой скрипт, кидающий запрос на 2 хоста и делающий diff
84
100. Итоги
• Поменьше велосипедов
• Ставьте себе четкие, достижимые цели в короткий срок
• Делайте задачи итеративно
• Решайте проблемы по мере из возникновения
• Преждевременная оптимизация - зло
100