Назад
Development 27 апр 2026 4 мин

Микросервисы — одна из самых дорогих ошибок на старте

Почему микросервисы — это не архитектура по умолчанию, а инструмент под конкретную проблему. Два реальных кейса: когда это была ошибка и когда было оправдано

Микросервисы — одна из самых дорогих ошибок на старте

Дорогая ошибка

Микросервисы одна из самых переоценённых вещей в разработке. Команда начинает проект и сразу: «давайте разобьём на сервисы, будет масштабируемо». Звучит логично. На практике это premature scaling, ты масштабируешь то, чего ещё нет. Нет нагрузки, нет команды, нет проблем. Но уже есть сервисы, взаимодействие между ними и инфраструктура, которую кто-то должен поддерживать.

Слишком раннее дробление системы на микросервисы

Мой кейс

У меня был конкретный пример. Нужно было сделать систему рекомендаций для интернет-магазина. Идея: вынести в отдельный микросервис на Go, чтобы можно было менять провайдера, чтобы было «гибко». Сервис ходил во внешнее API, фильтровал данные, проверял наличие товаров. Ушло около трёх недель.

В следующей версии backend мы просто сделали это внутри основного приложения на PHP. Без отдельного сервиса, без лишней инфраструктуры. И в этот момент стало очевидно: микросервис был лишним. Думали «микросервисы = правильно», вместо того чтобы думать: «это сейчас решает проблему?»

Когда оправдано

Это не значит, что микросервисы не нужны. Вот противоположный кейс: мы принимали аудио с клиентов чанками, была высокая нагрузка на I/O, и PHP здесь объективно не справлялся. Мы вынесли один endpoint в отдельный сервис на Python (FastAPI). Это было оправдано: конкретная проблема, техническое ограничение, точечное решение.

Микросервисы оправданы, когда есть конкретный bottleneck, разные типы нагрузки, необходимость изоляции и команда, которая это поддержит. Не надо резать систему на 10 сервисов, часто достаточно одного дополнительного процесса.

Оправданное выделение одного тяжёлого сервиса
Выделение сервиса оправдано только тогда, когда оно снимает конкретное техническое ограничение.

Главный вопрос

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

Главный вопрос всегда один: это сейчас нужно или это страх будущего? Зрелость разработчика это не умение строить сложные системы. Это умение не усложнять без причины.

architecture microservices

Ещё по теме

Последние опубликованные материалы из той же категории или соседних тем

Учимся дружить с чужим кодом
Development 27 апр 2026

Учимся дружить с чужим кодом

Первый раз читать чужой код это почти всегда стресс. Но есть алгоритм, который убирает хаос и даёт точку входа

Читать
Бойлерплейт — это не зло
Development 27 апр 2026

Бойлерплейт — это не зло

DTO, мапперы, слои и разделение моделей кажутся лишними, пока система маленькая. Но с ростом проекта бойлерплейт ограничивает зону изменений, делает код предсказуемым и ускоряет работу команды

Читать
Цифры никогда не врут
Development 27 апр 2026

Цифры никогда не врут

Как метрики изменили мой подход к оптимизации. Реальный кейс: от «что-то медленно» до роста конверсии в 2–3 раза через конкретные данные

Читать