![Page 1: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/1.jpg)
МИКРОСЕРВИСНАЯ АРХИТЕКТУРА В ТЕОРИИ И НА
ПРАКТИКЕ: ОПЫТ «СКБ КОНТУР»
Иван Бурмистров
Иван Дашкевич
Александр Казаков
![Page 2: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/2.jpg)
Agenda
• Стек: .NET, IIS, Windows
• Сервисы: EDI, Диадок, Экстерн
• Сложность архитектуры: S → M → L → XL
![Page 3: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/3.jpg)
Микросервис: что это?
• То же, что буква S в аббревиатуре SOA
• Легковесное приложение, решающее ровно одну задачу
• Небольшая утилита из не более чем 100 строк кода
• Что угодно с публичным API через HTTP протокол
• Компонент системы, работу которого знает «от» и «до» хотя бы один разработчик в команде
• …
![Page 4: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/4.jpg)
Микросервисы: опыт «СКБ Контур»
• Микросервис – это отдельный процесс
• От 1-2 до нескольких сотен микросервисов в продуктах
• Где 10, там и 20
• На разных этапах развития требуются разные подходы
![Page 5: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/5.jpg)
Продукт размера S (ранний EDI)Некогда объяснять, нужно делать фичи. Срочно.
JavaScript, html
Front
Cassandra
Front
Nginx
![Page 6: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/6.jpg)
«Размер S»: must have
• Логирование: нужно знать, почему у пользователя ошибка. Используем стандартные средства логирования (в нашем случае log4net)
• Обновление схемы БД: помнить про возможные несовместимые изменения
![Page 7: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/7.jpg)
«S» → «M»
![Page 8: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/8.jpg)
«S» → «M»
![Page 9: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/9.jpg)
«S» → «M»
JavaScript, html
Front Cassandra
Front
Nginx
![Page 10: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/10.jpg)
«S» → «M»
JavaScript, html
Front Cassandra
Front
Nginx Index
![Page 11: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/11.jpg)
«S» → «M»
JavaScript, html
Front Cassandra
Front
Nginx
Письма Печать pdf
IndexQueue
![Page 12: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/12.jpg)
«Размер M»: ключевые цифры
• 4-6 разработчиков
• 1-6 Тб данных
• 10 микросервисов
• 10 физических серверов
![Page 13: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/13.jpg)
Проблема: все время что-то «лежит»
![Page 14: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/14.jpg)
Проблема: все время что-то «лежит»
• Решение: Мониторинг «живости» - достаточно простых скриптов
![Page 15: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/15.jpg)
Проблема: ручное обновление – стресс
![Page 16: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/16.jpg)
Проблема: ручное обновление – стресс
• Решение: Автоматизированный деплой (простые скрипты)
![Page 17: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/17.jpg)
Проблема: все время заканчивается место
![Page 18: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/18.jpg)
Проблема: все время заканчивается место
• Решение: Скрипт мониторинга свободного места, ручная очистка
![Page 19: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/19.jpg)
Проблема: Service Discovery
![Page 20: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/20.jpg)
Проблема: Service Discovery
• Решение: Достаточно файликов рядом с каждым микросервисом + голова при обновлениях
![Page 21: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/21.jpg)
Проблема: протокол взамодействия
![Page 22: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/22.jpg)
Проблема: протокол взамодействия
• Решение: Выбрать удобный сериализатор (например, protobuf) + голова при обновлениях
![Page 23: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/23.jpg)
«M» → «L»
![Page 24: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/24.jpg)
Диадок
8 разработчиков70 микросервисов
![Page 25: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/25.jpg)
Проблема: как искать, где ошибка?
JavaScript, html
FrontNginx
ПисьмаIndex
![Page 26: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/26.jpg)
Решение: request-id
• Пробрасывать• Через Http
• В Rabbit-хэндлеры
• В порождаемые потоки
• Не забывать логировать• Log4net ThreadContext
![Page 27: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/27.jpg)
Проблема: как искать, что случилось?
• Не ясно, за какой диапазон искать
• Не ясно, в логах какого сервиса искать
• Все это также очень долго
![Page 28: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/28.jpg)
Решение: централизованное логирование
![Page 29: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/29.jpg)
Проблема: а жив ли сервис?
• Мониторинг живости – маловато будет
• Нужен мониторинг адекватности
![Page 30: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/30.jpg)
Решение: graphite, grafana, seyren
• Graphite – хранит факты, умеет строить графики
• Встроить запись в графит:• Http: сервер/клиент
• RabbitMQ: enqueue/dequeuer
• Периодические процессы (по расписанию или по таймауту)
• Grafana
• Seyren
![Page 31: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/31.jpg)
Проблема: deployment
• Требуется:• Разливать новые версии
• Запускать/останавливать новые реплики
• Накат/откат новых версий
• Смотреть состояние
![Page 32: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/32.jpg)
![Page 33: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/33.jpg)
Проблема: service discovery
• Синхронизация
• Полнота
![Page 34: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/34.jpg)
Решение: решать можно по разному
• Вариант: заточить свой инструмент деплоя
• Вариант: централизованное хранение• В Контур-Экстерне: ClusterConfig
![Page 35: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/35.jpg)
Продукт размера XLБольшой продукт, несколько команд
![Page 36: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/36.jpg)
Контур-Экстерн
70 разработчиков10 команд
250 TB основное хранилище
более 200 различных сервисовболее 1500 работающих экземпляров (реплик)
![Page 37: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/37.jpg)
Team 2 Team 3
Team 1
![Page 38: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/38.jpg)
Team 2 Team 3
Team 1
![Page 39: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/39.jpg)
Team 2 Team 3
Team 1
Проблема: сложность взаимодействия с внешними сервисами
![Page 40: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/40.jpg)
Team 2 Team 3
Team 1
API
API API
API API
API
![Page 41: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/41.jpg)
Внешний API
• Версионность
![Page 42: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/42.jpg)
Внешний API
• Версионность
• Документация
![Page 43: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/43.jpg)
Внешний API
• Версионность
• Документация
• RESTful
![Page 44: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/44.jpg)
а внутренний ?
Внешний API
• Версионность
• Документация
• RESTful
![Page 45: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/45.jpg)
RESTful API — игрушка для девочек
![Page 46: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/46.jpg)
RESTful API — игрушка для девочек
Настоящий мужик напишет хорошего клиента
![Page 47: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/47.jpg)
R1
R2
R3
![Page 48: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/48.jpg)
R1
R2
R3
![Page 49: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/49.jpg)
timeout
R1
R2
R3
![Page 50: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/50.jpg)
R1
R2
R3
![Page 51: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/51.jpg)
timeout = 30 sec
30% requests > 30 sec
R1
R2
R3
![Page 52: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/52.jpg)
“Разумный” timeout
Желаемый отклик
Особенность сервиса
![Page 53: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/53.jpg)
timeout = 10 sec
t (sec)
0
Сервис 2Сервис 1
![Page 54: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/54.jpg)
timeout = 10 sec
request time ~ 12 sec
t (sec)
0
10
20
30
100
Сервис 2Сервис 1
ERR
![Page 55: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/55.jpg)
Стратегии отправки запросов
![Page 56: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/56.jpg)
Стратегии отправки запросов
Последовательная (линейная)
![Page 57: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/57.jpg)
Стратегии отправки запросов
Последовательная (линейная)
Параллельная
![Page 58: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/58.jpg)
Стратегии отправки запросов
Последовательная (линейная)
Параллельная
Адаптивная параллельность
![Page 59: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/59.jpg)
t0 T/3 2T/3 T
R1
R2
R3
![Page 60: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/60.jpg)
timeout=T
t0 T/3 2T/3 T
мы тут
R1
R2
R3
![Page 61: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/61.jpg)
t0 T/3 2T/3 T
мы тут
OK R1
R2
R3
![Page 62: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/62.jpg)
timeout=T
t0 T/3 2T/3 T
timeout=2T/3
мы тут
R1
R2
R3
![Page 63: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/63.jpg)
timeout=T
t0 T/3 2T/3 T
timeout=2T/3
timeout=T/3
мы тут
R1
R2
R3
![Page 64: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/64.jpg)
OK
timeout=T
t0 T/3 2T/3 T
timeout=2T/3
timeout=T/3
мы тут
R1
R2
R3
![Page 65: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/65.jpg)
t0 1 5 15 30
R1
R2
R3
R4
![Page 66: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/66.jpg)
Написал сервис — напиши клиента
![Page 67: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/67.jpg)
Сколько делать попыток?
![Page 68: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/68.jpg)
client.Call(attempts=3)
![Page 69: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/69.jpg)
Количество попыток отправки запроса
Крайний случай № 1
Все 3 попытки сдохли за 10 мс
![Page 70: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/70.jpg)
Количество попыток отправки запроса
Крайний случай № 2
Каждая из 3-х попыток зависла на 30 сек
Клиент отвалился через 15 секунд
![Page 71: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/71.jpg)
client.Call(timeout=5000)
![Page 72: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/72.jpg)
Думайте сами, решайте сами…
![Page 73: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/73.jpg)
Team NTeam 1 …
Ops
![Page 74: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/74.jpg)
Team NTeam 1 …
Ops
Проблема: зоопарк технологий и подходов для деплоя и мониторинга
![Page 75: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/75.jpg)
Team NTeam 1 …
Ops
Проблема: зоопарк технологий и подходов для деплоя и мониторинга
Решение: DevOps
DevOps
![Page 76: DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров, Александр Казаков, СКБ](https://reader031.vdocuments.pub/reader031/viewer/2022013108/55a691361a28ab4a4d8b45b9/html5/thumbnails/76.jpg)
Итого
• Размер S: логирование, обновление схемы БД
• Размер M: скрипты для простого мониторинга, деплоя, думать при обновлениях
• Размер L: трассировка запросов, централизованные логи, продвинутый деплой, метрики
• Размер XL: RESTful API, версионность, SDK, отдел DevOps