
Как пройти System Design Interview
Подготовка и поведение на секции
Содержание слайдов
1. Как пройти System Design Interview
Подготовка и поведение на секции
2. Александр Поломодов
Роль на момент доклада · 2022
Александр Поломодов, CTO мобильного банка и привлечения, Тинькофф
Курировал архитектурные вопросы
Курировал System Design Interview
Интервьюировал технических руководителей
3. От найма до поведения кандидата
Восемь смысловых блоков
Найм и семь шагов
Требования, границы, потоки
Схемы, технологии, масштабирование
Поведение и материалы
4. System Design проверяет Senior и Senior+
Не универсальный современный процесс найма
5. Архитектура рождается по шагам
От условия задачи до уточнений
6. 02. Формализация
До первой линии на доске
7. Сначала уточните задачу
Сценарии, объёмы, приоритеты
Что входит и не входит
Кто и зачем пользуется
Какие объёмы ожидаются
Что важнее всего
8. Приоритеты направляют архитектуру
Сайзинг связывает требования с масштабом
9. Изучайте язык требований
Функциональность и архитектурные качества
UML Use Cases
User Story и JTBD
ATAM для компромиссов
Вигерс и Эйскенс
10. 03. Границы системы
Система в своём окружении
11. Граница начинается со сценария
Files, DB, API или Messaging
12. Понимайте путь каждого запроса
От контекста до балансировщика
C4 System Context
REST, RPC, GraphQL, AsyncAPI
OSI, TCP/IP, DNS
HTTP/1.1–HTTP/3 и WebSockets
13. 04. Потоки
Компоненты появляются из поведения
14. Happy path открывает исключения
Потом добавляются сбои и углы
15. Разведите чтение и запись
Проверьте нагрузку и отказ
Проследите read path
Проследите write path
Наложите ключевые NFR
Добавьте сбои и повторы
16. Выбирайте схему под вопрос
Не смешивайте все обозначения
C4 показывает контейнеры
Sequence раскрывает взаимодействия
Activity описывает ветвления
DFD и BPMN показывают потоки
17. 05. Концептуальная схема
Сначала классы решений
18. Сначала ответственность, потом продукт
Stateful, stateless, данные и контексты
19. Соедините модель и хранение
Данные определяют доступ
RDBMS и классы NoSQL
ER и Class Diagram
DDD и bounded contexts
Twelve-Factor App
20. 06. Реальная схема
Технологии, гарантии, эксплуатация
21. Технология должна выдерживать обещание
Гарантии, мощность, failure domains
22. Проектирование продолжается после запуска
Наблюдаемость, изменения, восстановление
Логи, метрики, трассировки
Резервирование и восстановление
Миграции схемы и данных
SRE и Kubernetes Patterns
23. 07. Под нагрузкой
Разные состояния — разные рычаги
24. Состояние определяет масштабирование
Autoscaling, replication, partitioning, sharding
25. Масштабируйте под реальные обращения
Гарантии меняются вместе с топологией
Начните с access patterns
Назовите модель консистентности
Проверьте горячие ключи
Подтвердите нагрузочным тестом
26. Управляйте разговором, не угадывайте
Думайте вслух и замечайте подсказки
27. Углубляйтесь по четырём направлениям
Полная библиография — в заметках
Требования и компромиссы
Сети и интеграции
Данные и распределённость
Надёжность и эксплуатация
28. Сначала смысл, затем технология
Семь шагов удерживают разговор целиком
polomodov.tech
Уточняйте, проводите потоки, объясняйте компромиссы
Александр Поломодов, Автор и спикер, ArchDays 2022
@book_cube