436 подписчиков
Шаблоны проектировния микросервисов на практике
По мотивам недавно прошедшей конференции highload++ хотим поделиться замечательным докладом о тернистом пути построения микросервисов.
Сначала формулируется набор проблем при использовании монолитной архитектуры и набор улучшений, которых хотелось добиться с переходом на микросервисную архитектуру.
Но, как часто бывает в разработке, не всё получается сразу. Автор рассказывает о нескольких итерациях перехода на микросервисную архитектуру и проблемах, которые не решались с первого раза. Для решения возникавших проблем использовались некоторые шаблоны проектирования микросервисов, о которых рассказывает докладчик:
— Bounded context — правильное выделение зоны ответственности микросервиса. Мне очень нравится сформулированный в докладе принцип — микросервис должен автономно решать бизнес-задачу.
— Null object pattern — сводится к подстановке некоторых дефолтных значений, если не отвечает сервис, к которому обращаемся. Позволяет избежать каскадного отказа микросервисов, при котором из-за одного сломанного сервиса отваливается вся система.
— Circuit breaker — для настройки повторных запросов к сервисам и обращение к другим в случае какого-то отказа.
— Каскадные timeouts — непосредственно связан с предыдущим шаблоном. Неправильная настройка таймаутов сведет на нет circuit breaker.
— Health checks — проверка зависимых ресурсов микросервиса.
Применение этих шаблонов позволяет облегчить разработку, поддержку и починку возникающих проблем в микросервисной архитектуре.
1 минута
13 марта 2023