Что такое микросервисная архитектура?
- Что такое микросервисы?
Система из независимо развёртываемых сервисов, каждый владеет своими данными и отвечает за бизнес-возможность. Ключевое — независимость, а не размер.
- Общая база или совместная выкатка — признаки распределённого монолита
- Сервисы общаются по сети: API и события
- Разбиение внутри одного процесса — модульный монолит
А ещё Цена: сеть, итоговая согласованность, эксплуатация
Подробно
Название вводит в заблуждение размером: определяющим признаком является независимость развёртывания и владения, а не количество строк. Если сервисы приходится выкатывать вместе или они ходят в общую базу, то формально их много, а фактически это единая система с сетью посередине. Разбиение внутри одного процесса — это модульный монолит, и он часто оказывается более разумной отправной точкой.
Что хотят услышать
- Определение через независимость развёртывания и владения данными.
- Отличие от распределённого монолита и модульного монолита.
Частые ошибки
- Мерить микросервисы размером кода.
- Считать общую базу данных допустимым упрощением.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Разбиение приложения на модули внутри одного процесса, которые развёртываются вместе
- ✓Система из независимо развёртываемых сервисов со своими данными
- ✗Архитектура, в которой каждый сервис содержит не более тысячи строк кода
- ✗Способ упаковки и размещения приложения в контейнерах Docker и Kubernetes
Что спросят дальше
- Чем модульный монолит отличается от набора микросервисов?
- Что покупает такое разбиение и чем за него платят?
Разбор темы
- Монолит, микросервисы и границы сервисов
Когда микросервисы оправданы, а когда вредны; bounded context и DDD как способ резать систему; распределённый монолит и его признаки; база на сервис и организационная цена.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.