Введение 0:00 Обсуждение различий между монолитной и микросервисной архитектурой. Обе архитектуры имеют свои плюсы и минусы.
Монолитная архитектура 0:17 Монолит — это приложение, работающее как один фрагмент кода. Преимущества: простота разработки, тестирования и развёртывания. Недостатки: сложность масштабирования и поддержки.
Проблемы монолитов 2:04 Монолиты становятся большими и сложными в поддержке. Процесс выпуска требует много времени и ресурсов. Сложность масштабирования отдельных частей приложения.
Микросервисная архитектура 3:48 Разделение приложения на автономные компоненты. Каждый компонент отвечает за одну бизнес-функцию. Примеры: Netflix с компонентами для поиска, потокового видео и рекомендаций.
Взаимодействие микросервисов 4:17 API: синхронная связь между компонентами. Посредники сообщений: асинхронные взаимодействия. Сервисная сетка: управление коммуникациями и надёжностью.
Преимущества микросервисов 5:25 Простота поддержки и масштабируемость. Независимость команд и возможность выбора технологического стека. Лёгкость тестирования и автоматизации изменений.
Недостатки микросервисов 7:23 Сложность локального запуска из-за зависимости от других микросервисов. Трудности отладки проблем в производственной среде.
Мониторинг микросервисов 8:19 Важно обеспечить надлежащий мониторинг микросервисов, чтобы вовремя выявлять проблемы с компонентами. Сервисная сетка помогает в этом процессе. Микросервисы экономят на инфраструктуре при масштабировании, но требуют дополнительных затрат для небольших приложений.
Сложности микросервисов 8:48 Микросервисы увеличивают сложность системы, требуя управления несколькими конвейерами CI/CD и обеспечения связи между службами. Необходим тщательный мониторинг для управления сотнями микросервисов.
Выбор архитектуры для нового проекта 9:17 Для новых приложений без существующей инфраструктуры рекомендуется начать с монолита. В стартапах важно быстро выйти на рынок, а проблемы масштабирования можно решить позже. Netflix начал как монолит и перешёл к микросервисам только при необходимости масштабирования. Если приложение будет получать много запросов с первого дня, лучше начать с микросервисов или полумонолита.
Превращение монолита в микросервисы 10:07 После запуска приложения можно рассмотреть возможность разбиения полумонолита на микросервисы. Необходимо проанализировать, какие компоненты монолита можно запустить самостоятельно. Важно определить, какие части приложения испытывают проблемы с масштабированием и могут выполняться синхронно или асинхронно. Для выбора правильной архитектуры микросервисов рекомендуется посмотреть видео о гексагональной архитектуре.