К основному содержимому
Спираль ДНК как метафора эволюционной архитектуры
Tinkoff Agile Conference · 22 октября 2021

Эволюционная архитектура на практике

Fitness functions, инкрементальные изменения и архитектурные качества на масштабе крупного финтеха

/ Эволюционная архитектура на практике · Tinkoff Agile Conference 2021

Содержание слайдов

  1. 1. Эволюционная архитектура на практике

    Fitness functions, инкрементальные изменения и архитектурные качества на масштабе крупного финтеха

  2. 2. О чём поговорим

    От «зачем» до «как мерить» эволюционную архитектуру

    Зачем архитектуре эволюционировать

    Booch: дорого менять = architecture

    Fitness Functions и -ilities

    Modularity, cohesion, practice

  3. 3. 01. Зачем

    Почему архитектура должна эволюционировать

  4. 4. Зачем нам эволюционная архитектура

    Масштаб, мультипродукт и непрерывный рост

    16+ млн клиентов

    Мультипродуктовая экосистема

    Рост штата → переход к stream-aligned командам

    Big-bang architecture не работает

  5. 5. 02. Что такое архитектура

    Booch и стоимость изменений

  6. 6. Архитектура = важные дизайн-решения

    А «важные» — те, что дорого менять

    Significant design decisions

    Значимость = стоимость change

    Дешёвое — не архитектура

    Фундамент: данные, контракты, сервисы

  7. 7. 03. Эволюционная архитектура

    Инкрементальные и управляемые изменения

  8. 8. Что такое эволюционная архитектура

    Поддерживает направленные инкрементальные изменения

    Маленькие build + deploy шаги

    Эффект виден через метрики

    Architecture = process

    Быстрее изменений бизнеса

  9. 9. Цикл изменений

    Idea → Requirements → Development → Deploy

    Idea — гипотеза

    Requirements — функции + architecture

    Development — код, тесты, миграции

    Deploy — rollout, rollback, effect

  10. 10. 04. Fitness Functions

    Как измерить архитектуру

  11. 11. Что такое Fitness Functions

    Из книги «Building Evolutionary Architectures»

    Измеримая проверка -ility

    Throughput, latency, security

    CI / prod / periodic

    Падение = архитектурный регресс

  12. 12. Архитектурные характеристики

    Что обычно меряем через FF

    Performance: throughput / latency

    Reliability: SLO / error budget

    Usability: продуктовые метрики

    Auditability / security

  13. 13. Общесистемная Fitness Function

    Мониторинг и алертинг как живая FF в проде

    SLO + error budget

    p50/p95/p99 latency

    Burn-rate alerts

    Domain dashboards

  14. 14. Категории Fitness Functions

    По частоте, скоупу и способу запуска

    Atomic / Holistic

    Triggered / Continuous

    Static / Dynamic

    Manual / Automated / Temporal

  15. 15. Матрица Fitness Functions 2×2

    Atomic / Holistic × Triggered / Continuous — где какие проверки живут

  16. 16. 05. Modularity

    Cohesion и Coupling

  17. 17. Modularity, Cohesion, Coupling

    Из книги «Fundamentals of Software Architecture»

    Modularity — clear boundaries

    Cohesion — «про одно»

    Coupling — зависимость от чужого

    High cohesion, low coupling

  18. 18. Где проходит граница модуля

    На границе бизнес-домена, а не технологии

    DDD bounded context

    Контракт = API + events

    Implementation private

    Contract change requires FF

  19. 19. 06. Практика

    Как это выглядит в работе

  20. 20. Практические примеры FF

    Что мы реально проверяем автоматикой

    No cyclic dependencies

    p99 API latency budget

    Crash-free sessions threshold

    DB access / resource budget

  21. 21. Как внедрять эволюционную архитектуру

    Маленькие шаги, измеримый эффект

    1–2 FF на больной домен

    FF в CI / SLO

    Owner-team per characteristic

    Регулярный review набора FF

  22. 22. Что забрать с собой

    Эволюционная архитектура = измеряемая архитектура

    Architecture = expensive decisions

    Evolution = incremental + guided

    FF make -ilities measurable

    Low coupling, high cohesion

  23. 23. Ссылки и материалы

    Evolutionary architecture, DDD, FF practice

    Building Evolutionary Architectures

    Hard Parts + Fundamentals

    Domain-Driven Design

    ArchUnit + Tech Radar

  24. 24. Спасибо!

    polomodov.tech

    Все слайды и ссылки — в Telegram-канале

    Александр Поломодов, Technical Director & Fellow, Т-Технологии

    @book_cube