Что такое микросервисная архитектура?
Микросервисная архитектура — это подход к разработке программного обеспечения, при котором приложение строится как набор небольших, автономных сервисов, каждый из которых работает в собственном процессе, развёртывается независимо и взаимодействует с другими сервисами через чётко определённые API (обычно HTTP/REST, gRPC или через брокеры сообщений).
Аналогия из жизни: микросервисы — это как отделы в банке. Кассовый зал, кредитный отдел и IT-отдел работают автономно, у каждого свои процессы и данные, но они обмениваются информацией через чётко определённые регламенты.
Каждый микросервис:
- Отвечает за одну бизнес-функцию — например, сервис платежей, сервис пользователей, сервис уведомлений.
- Имеет собственное хранилище данных — каждый сервис владеет своими данными и не обращается напрямую к базе другого сервиса.
- Развёртывается независимо — можно обновить один сервис, не затрагивая остальные.
- Может быть написан на любом стеке технологий — хотя в рамках одной организации обычно используют ограниченный набор (например, Java/Spring Boot).
Пример
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Сервис │ │ Сервис │ │ Сервис │
│ платежей │◄──►│ заказов │◄──►│ клиентов │
│ │ │ │ │ │
│ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │
│ │ DB │ │ │ │ DB │ │ │ │ DB │ │
│ └────┘ │ │ └────┘ │ │ └────┘ │
└──────────┘ └──────────┘ └──────────┘
На собеседовании: интервьюер ожидает не только определение, но и понимание ключевых характеристик: автономность, собственное хранилище, независимый деплой. Частая ошибка — описывать микросервисы просто как «маленькие сервисы», не упомянув про владение данными и независимость развёртывания.