Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Как снизить накладные расходы на добавление +1 микросервиса

Byndyusoft
September 21, 2021

Как снизить накладные расходы на добавление +1 микросервиса

Слайды доклада Руслана Сафина - технического директора Byndyusoft - с конференции HighLoad++

Byndyusoft

September 21, 2021
Tweet

More Decks by Byndyusoft

Other Decks in Technology

Transcript

  1. Руслан Сафин Технический директор в Byndyusoft.com — Развиваю техническую культуру

    в компании — Участвую в проектах в роли IT-архитектора Byndyusoft — это заказная разработка с продуктовым подходом. Среди наших заказчиков:
  2. Цели — Проектировать архитектуру, не боясь количества микросервисов — Не

    накапливать техдолг с увеличением количества микросервисов
  3. Растущие издержки на +1 микросервис — Увеличивающаяся сложность при •

    проектировании • разработке и отладке • тестировании • эксплуатации — Растущие отказы систем • количество точек отказа • человеческий фактор
  4. Относительно постоянные издержки — Инфраструктурный код и настройка • повторяемые

    действия и код, не дающие бизнес-ценности — Техдолг • оптимизация • рефакторинг
  5. Снизим издержки до нуля! Строим инфраструктуру и процесс разработки с

    учетом 7 факторов: 1. Шаблоны репозиториев 2. Визуализация архитектуры 3. Автообнаружение 4. CI/CD Pipeline 5. Окружения по требованию 6. Процесс проектирования и разработки 7. Observability
  6. Фактор №1: Шаблоны репозиториев Включает: — Логирование — Трассировку —

    Работу с БД/очередями/S3... — Code-style — Телеметрию — Шаблон Readme — Автодокументация (OpenAPI) — Структура папок и заготовки кода — Devops-конфиги и заготовки …
  7. Фактор №1: Шаблоны репозиториев Снижает затраты: — на инфраструктурный код

    и настройку — человеческие ошибки Готовые шаблоны: github.com/orgs/Byndyusoft/reposit ories?q=template
  8. Фактор №2: Визуализация архитектуры На выбор: – С4 model –

    4+1 model – Enterprise Architecture Frameworks – … Снижает затраты: на растущую сложность
  9. Фактор №3: Автообнаружение Включает: — Access — CI/CD — Мониторинг,

    алертинг … Снижает затраты: — на человеческие ошибки — инфраструктурный код и настройку
  10. Фактор №4: CI/CD Pipeline Включает: — Build-test-deploy — Статический анализ

    кода — Процент покрытия кода тестами — Отсутствие уязвимостей — Сode-style — Интеграционные, нагрузочные и end-to- end тесты
  11. Фактор №4: CI/CD Pipeline Снижает затраты: — на растущую сложность

    — инфраструктурный код и настройку — человеческие ошибки
  12. Фактор №5: Окружения по требованию Включает: — Автоматическое создание для

    каждой ветки — Полноценный или необходимый набор изолированных точек деплоя — Автоматическая очистка
  13. Фактор №6: Процесс проектирования и разработки Включает: — методология работы

    с аналитикой, кодом и документацией (gitflow/githubflow/…; PR) — описанные процессы: проектирования и ревью; поставки и поддержки — гайдлайны по формату описания архитектуры, паттернам, проектированию API, именованию репозиториев и сущностей, ведению документации, …
  14. Фактор №6: Процесс проектирования и разработки Снижает затраты: — на

    растущую сложность — человеческие ошибки — оптимизацию
  15. Фактор №7: Observability Включает: — Визуализация и алерты по бизнес-

    метрикам — Выставление и отслеживание соблюдения SLO — Алерты о быстром сгорании бюджета ошибок — Отслеживание частоты использования сценариев
  16. Все 7 факторов участвуют в жизненных циклах каждого микросервиса 1.

    Шаблоны репозиториев 2. Визуализация архитектуры 3. Автообнаружение 4. CI/CD Pipeline 5. Окружения по требованию 6. Процесс проектирования и разработки 7. Observability
  17. Итог. Сколько стоит добавить микросервис? 1. Добавить на архитектуру и

    обсудить с командой — от 1 часа. 2. Создать репозиторий (задать имя и выбрать шаблон) — около 5 минут.