Сейчас о микросервисах не говорит только ленивый. Я, конечно, не работал в Netflix и не имею права называть себя экспертом в этой теме, тем не менее, опыт применения микросервисов в production у меня был, и вот несколько ключевых выводов, которые я для себя сделал.

Первое заблуждение: Микросервисы - это просто. Не верьте в маркетинг. На первый взгляд все выглядит просто, нам обещают небольшие по размеру программы и четкие API. Тем не менее, инфраструктура для разработки, отладки, масштабирования и развертывания становится краеугольным камнем. Это новый, многими до сих пор неизведанный мир, изучение которого требует массу времени и ресурсов.

Второе заблуждение: Микросервисы решат проблему с неправильной декомпозицией. Это не так. Плохой монолит, превратится в набор не очень хороших, а то и отвратительных, микросервисов. Та же ситуация, скорее всего, произойдет, если вы попытаетесь делать микросервисы с нуля. Здесь крайне важна качественная экспертиза предметной области.

Третье заблуждение: Микросервисы можно внедрить в команде любого размера. Единого мнения на счет размера сервисов и количества человек, которые должны поддерживать один сервис, к сожалению, нет. В одних источниках пишут, что один или несколько сервисов может поддерживать один программист. В других, что за один или несколько микросервисов должна отвечать мультифункциональная команда. Правда где-то посередине.

Тем не менее, я не утверждаю, что микросервисы - это плохо. Мне кажется, так или иначе это современный и вполне себе годный архитектурный подход, в первую очередь подходящий для средних и больших проектов, которые обслуживают сотни тысяч и миллионы пользователей ежедневно.