Sveriges mest populära poddar

Организованное программирование

#32 Почему микросервисы могут разорить, а монолит выручить: инсайты из практики | Владимир Иванов

115 min • 16 februari 2025

В этом выпуске мы поговорили с Владимиром Ивановым, 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 ★
Förekommer på
00:00 -00:00