ENIGMA AI
ENIGMA AI

Архитектура микросервисов: вопросы для Middle и Senior

Вопросы по технологиям

Разбор сложных вопросов по микросервисной архитектуре: паттерны Saga, Outbox, Service Mesh и распределенные транзакции. Подготовка к интервью.

В 2026 году фокус на интервью сместился с основ Docker на управление сложностью: Service Mesh (Istio/Linkerd), паттерны консистентности (Saga, Outbox) и FinOps в облаках. Ожидается знание не только теории, но и понимание стоимости владения инфраструктурой при масштабировании до сотен сервисов.

Ключевые концепции и сдвиг парадигмы в 2026 году

На собеседованиях уровня Middle+ больше не спрашивают «что такое микросервис». Интервьюеры фокусируются на границах ответственности сервисов и способах их взаимодействия в условиях высокой нагрузки. Если в 2022 году стандартом был простой REST, то сегодня в крупных проектах (Ozon, Avito, Тинькофф) доминируют gRPC для внутреннего взаимодействия и асинхронные события через Kafka или Pulsar.

Распределенные транзакции и консистентность

Один из самых сложных блоков вопросов касается обеспечения целостности данных без использования распределенных блокировок (2PC), которые практически не масштабируются.

Паттерн Saga

Кандидат должен уметь различать два типа реализации Saga:

  • Хореография: каждый сервис слушает события и решает, что делать дальше. Плюс — нет единой точки отказа. Минус — сложно отслеживать цепочку вызовов при наличии 10+ сервисов.
  • Оркестрация: выделенный сервис-координатор управляет логикой шагов и компенсационных транзакций. Это упрощает мониторинг, но создает центральный узел, который нужно резервировать.

Transactional Outbox

Частый вопрос: как гарантировать, что сообщение уйдет в брокер (Kafka) только если запись в БД прошла успешно? Решение через Outbox-таблицу в той же БД и отдельный Relay-процесс (например, Debezium) считается стандартом индустрии. Использование CDC (Change Data Capture) позволяет избежать потери данных при сбоях сети между приложением и брокером.

Связанность и Service Mesh

К 2026 году использование Service Mesh стало стандартом для систем, где количество микросервисов превышает 50–70 единиц. На интервью важно понимать:

  • Sidecar-контейнеры: как Istio или Linkerd перехватывают трафик.
  • mTLS: как обеспечить шифрование между сервисами без изменения кода самих приложений.
  • Circuit Breaker: механизмы предотвращения каскадных сбоев. Нужно уметь объяснить параметры: порог ошибок, время ожидания и период полуоткрытого состояния.

Наблюдаемость (Observability)

Вместо простого логирования сейчас обсуждают OpenTelemetry. На собеседовании могут попросить спроектировать систему трассировки, которая не «положит» хранилище логов при резком всплеске трафика. Здесь важно упомянуть Sampling (выборочное сохранение трасс) и Adaptive Sampling, когда система сохраняет больше данных только в моменты аномалий.

Практический кейс: Миграция монолита

Типовая задача: «У нас есть монолит на 2 млн строк кода, как вы будете выделять из него первый микросервис?». Правильный ответ базируется на паттерне Strangler Fig (Фига-душитель). Сначала выделяется функционал, который меньше всего связан с ядром БД, ставится API Gateway или Proxy, который постепенно перенаправляет запросы в новый сервис. Важно обсудить синхронизацию данных в переходный период и стратегию отката.

Оптимизация затрат (FinOps)

В 2026 году Senior-инженер должен думать о деньгах. Вопросы могут касаться:

  • Right-sizing: выбор лимитов CPU/RAM в Kubernetes на основе метрик использования, а не интуиции.
  • Spot-инстансы: какие сервисы можно запускать на дешевых, но нестабильных серверах (например, обработчики очередей без состояния).
  • Передача данных: стоимость трафика между зонами доступности (Availability Zones) в облаке.

Часто задаваемые вопросы

Изучите System Design

Углубитесь в проектирование распределённых систем

Читать гайд