Инструменты для налаживания взаимодействия
Сергеев Кирилл
twitter: @cloudkserg
github: @cloudkserg
1. Микросервисы - зачем нужны
2. Проблема взаимодействия
3. Набор инструментов для решения
4. Пример использования инструментов
5. Вывод
Все идеально и так
Экспоненциальный рост сложности монолитного приложения
Идеальная архитектура
API
Order
Payment
Tax
Shipping
History
Transaction
Наш девиз - вместо микро много макро!
API
Order
Tax
Shipping
History
Transaction
1. Тесты
2. Документация
3. Удобство работы с api
4. Внутренняя архитектура
Consumer
Producer
Request
Response
Tests
Tests
Линтеры
DevOps
CI & CD
Dev
Build Prod
QA
Prod
Build Dev
Local
Диктатура
БИЗНЕС - он же потребитель, consumer
Pact - взаимодействие, BDD - сценарий
EsLint, TsLint - Качество кода
Contract
Security BDD, own scripts
Contract with overrides
Low
High
High
Mutable
Low
Mutable
Build Dev
Build Prod
Fluentd
Graylog
Pino
Contract, RequestId, ProcessId, LastSnapshotId
С
С
С
С
С
Mobile
Web
Знание по контракту
1) Формат логов
2) Производительность
3) Интерфейс
4) Стиль кода
Contract
Own packages
Контракты
Контракт - Тест - Зависимость
Мы не победили хаос
Мы приблизились к его контролю
Time-to-market - возврат к 1 часу
Возросла сложность
Статистика
My twitter: https://twitter.com/cloudkserg
Pact: https://docs.pact.io
Karate framework: https://intuit.github.io/karate
Gatling: https://gatling.io
AsyncApi: https://www.asyncapi.org
Raml: https://raml.org
Bdd: https://continuumsecurity.net/bdd-security