Построение приложения с помощью архитектуры микросервисов. Плюсы и минусы применения на практике на примере реального проекта.
Презентация подготовлена по материалам выступления Виталия Квятковского на витебской конференции “Developer's Software Conference” (31.10.2015). Запись выступления: https://events.epam.com/events/dsc2015/talks/102.
7. 7
За и Против
Плюсы
+ Протокол
+ Простота модуля
+ Скорость разработки
+ Независимость команд
+ Независимость технологий
8. 8
За и Против
Минусы
- Подверженность ошибкам
- Сложность системы
- Сложность разработки
- Нужно автоматизировать
9. 9
Business Capabilities
Организация вокруг потребностей бизнеса
• Разные сервисы под разные нужды
• отчеты
• кредитки
• Отдельные команды
• Поддержка на продакшене
• Создание вспомогательных утилит
11. 11
Infrastructure Automation
Автоматизация инфраструктуры
• Continuous Integration
• Jenkins
• Выделенное окружение разработчика
• Развертывание одной кнопкой
• Эволюция Базы Данных
• Создание структур БД
• Миграция данных
• Автоматическое выполнение
• Chef
15. 15
Decentralized Data
PostgreSQL MongoDB
ROA Скидки
REST
Децентрализованные данные
• Разные хранилища данных
• polyglot persistence
• MongoDB/PostgreSQL/Lucene
• Нет доступа к хранилищам других сервисов
21. 21
Типы взаимодействия
Взаимодействие между сервисами
• Синхронное
• обычно R в CRUD
• Асинхронное
• может быть CUD в CRUD
Сканировани
е документа
асинх
Заказ
документа
Чтение из БД
синх
Просмотр
заказа
22. 22
Синхронное Взаимодействие
• Максимально быстро
• Все что требует внимания пользователя
Иначе асинхронное
• Использовать кэш
• Внутрипроцессный кэш Guava
Для небольших данных
Сохранение
заказа
Снятие денег
Создание
лицензии
синхсинх асинх
31. 31
Отказы (Failures)
• Быть готовым к отказу
• Быть готовым к восстановлению
• Найти точки отказа
• Определить как восстанавливать
• Синхронное- на стороне клиента
• ответственный: пользователь
• Асинхронное- на стороне сервера
• ответственный: разработчик
32. 32
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос
33. 33
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос
34. 34
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос
35. 35
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос
36. 36
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос
37. 37
Redelivery & DLQ
Очередь1 Consumer
Повторная
доставка
(X попыток)
чтение
Брокер
ActiveMQ
DLQ
перемещение
Служба
поддержки
просмотр
исправление
запрос