В этом выпуске мы поговорили с Владимиром Ивановым, Senior Engineering менеджером в Bolt, о системном дизайне и его роли в создании крупных сервисов. Обсудили, как подойти к проектированию, начиная от простых односерверных решений и заканчивая распределёнными системами с балансировкой нагрузки, резервированием и шардированием баз данных. Разобрали, чем на самом деле отличаются реальная жизнь и собеседования по системному дизайну, затронули тему микросервисов и того, когда они действительно нужны, а когда нет. Поделились практическими советами, как соотносить бизнес-требования с техническими решениями, и почему разработчику важно мыслить шире, чем просто написание кода. Не пропустите — в выпуске много живых кейсов и инсайтов из реальных проектов!
✅ Подписывайтесь на канал «Организованное программирование» в Telegram: https://ttttt.me/orgprog
– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие): https://podcast.ru/1734325321
– Смотреть в YouTube: https://youtu.be/5A7ncMHfB1g
Полезные ссылки:
Business Oriented System Design Course: https://vvsevolodovich.dev/business-oriented-system-design-course/
https://www.linkedin.com/in/%F0%9F%93%9A-vladimir-ivanov-a4440226/
https://twitter.com/vvsevolodovich
https://t.me/@vvsevolodovich
https://t.me/@architectureweekly
https://youtube.com/@architectureweekly
- (00:00) - – Введение и анонс
- (00:22) - – Проблемы с самокатами: рост количества, отсутствие инфраструктуры, ужесточение законодательства.
- (01:18) - – История системного дизайна: различия между российским и западным подходами, восприятие дизайна в индустрии.
- (02:17) - – Три типа компаний: продуктовые, сервисные и оффлайновые – их подход к системному дизайну.
- (05:00) - – Образование в IT: почему большинство разработчиков не готовы к проектированию сложных систем.
- (07:52) - – Проблемы с обучением системному дизайну: нехватка учебных материалов, передача знаний только через практику.
- (09:46) - – Сложности оценки системного дизайна: нет универсальных метрик, важность инженерного мышления.
- (11:38) - – Проектирование сложных систем: аналогии с машиностроением, влияние изменений на всю систему.
- (12:34) - – Влияние организационных и бизнес-требований: почему IT-решения часто усложняются искусственно.
- (14:29) - – Кейсы из бизнеса: пример с биллингом Bolt и необходимость технологических изменений.
- (17:40) - – Влияние команды: квалификация и мотивация разработчиков определяют эффективность решений.
- (20:47) - – Базовые навыки архитектора: облачные технологии, сети, безопасность, управление данными.
- (23:37) - – Организация работы в IT: роль стейкхолдеров, инвесторов и технических специалистов.
- (24:35) - – Найм правильных людей: 70% разработчиков не могут стать эффективными менеджерами.
- (25:50) - – Оптимизация решений: использование облачных платформ и их влияние на разработку.
- (29:29) - – Риски облачных технологий: необходимость осознанного подхода, стоимость и ограничения.
- (34:14) - – Взаимодействие с бизнесом: как упрощение требований сокращает время разработки.
- (37:05) - – Веб-разработка и системный дизайн: важность понимания архитектурных решений.
- (39:54) - – Масштабирование и доступность: почему стабильность требует сложных решений.
- (41:43) - – Проблемы с производительностью: важность кэширования, индексов и оптимизации баз данных.
- (44:32) - – Архитектурные ошибки: неоправданное усложнение систем и «архитектурные астронавты».
- (49:16) - – Стадии компетентности: путь от неосознанной некомпетентности к экспертному уровню.
- (51:21) - – Вопросы для оценки решений: какие риски могут убить продукт.
- (56:03) - – Бэкапы и отказоустойчивость: примеры реальных провалов и их последствия.
- (01:00:45) - – Практическое тестирование: важность проверки резервного восстановления данных.
- (01:08:22) - – Региональные требования и блокировки: как они влияют на хранение данных.
- (01:12:07) - – Ошибки хранения данных: почему нельзя хранить их внутри приложения.
- (01:14:55) - – Kubernetes и масштабирование: как правильно строить отказоустойчивые системы.
- (01:30:41) - – Микросервисы vs. монолит: плюсы и минусы подходов.
- (01:35:41) - – Разница между интервью по системному дизайну и реальной архитектурой.
- (01:38:30) - – Оценка зрелости разработчика: что показывают вопросы на собеседовании.
- (01:42:13) - – Стоимость решений: баланс между затратами, производительностью и бизнес-логикой.
- (01:45:55) - – Итоги: системный дизайн как ключевой навык, анонс курса по бизнес-ориентированному системному дизайну.
★ Support this podcast ★