
Пару лет назад я консультировал один московский B2B-стартап (околофинтех). Денег инвесторских поначалу не жалели. Команда – 12 человек, но новый, амбициозный CTO с порога затянул в проект ванильный Kubernetes, 47 микросервисов, Kafka и Istio. Обоснование классическое – «мы закладываем фундамент под хайлоад». Знаете, какой там был хайлоад на пике? 30 RPS.
Зато они платили за облако так, будто через них ходит трафик Авито. Почти миллион рублей в месяц тупо на поддержку инфраструктурной махины, потому что логи сжирали место, а поды периодически падали по OOM. Вместо фич нанимали дорогих девопсов, просто чтобы это всё не развалилось при очередном релизе. CTO, кстати, через год благополучно сбежал в зеленый банк, где на собеседованиях увлеченно вещал про «распределённые системы с eventual consistency». А фаундер до сих пор разгребает счета от провайдера и не может свести юнит-экономику.
За последние три года я видел этот сценарий в 6 из 10 проектов. Для небольших команд с нагрузками на уровне районного интернет-магазина – это уже не исключение, а унылый паттерн.
Все почему-то привыкли считать микросервисы синонимом «гибкости», напрочь забывая, сколько эта гибкость стоит в рублях. Дальше я покажу на простых цифрах, как цена избыточной сложности хоронит ИТ-продукты в эпоху дорогого капитала и дефицитного железа.
Налог на координацию: считаем в рублях
Нам продали идею, что распределенная архитектура – это круто и модно. Инвестору заливают в уши песню про «мы легко масштабируемся». Но если у вас нет 500 разработчиков и десятков миллионов уников в сутки, вы просто платите скрытую цену бессмысленной сложности.
Сколько стоит просто чтобы оно работало?
Давайте в лоб. В 2025 году хороший инфраструктурный инженер (DevOps уровня Middle+/Senior) – это 450 000 – 500 000 рублей в месяц со всеми налогами, ДМС и онбордингом. Для того, чтобы поддерживать зоопарк микросервисов с дежурствами 24/7 (они же падают по ночам), вам в штат нужно минимум два-три таких спеца.
Итого: 1 млн. рублей каждый месяц вышвыривается только на то, чтобы кубер вертелся. Если весь ваш IT-бюджет крутится вокруг 3–4 млн рублей в месяц, то вот они – те самые 30–40% ФОТ, улетающие в трубу.
Для сравнения: скучный монолитчик с PostgreSQL на выделенном серваке с Linux часто администрируется одним сисадмином на парт-тайме. А то и сами бэкендеры справляются. Выкинув микросервисные амбиции, компания экономит около 10 миллионов рублей в год просто на фонде оплаты труда.
Сетевые прыжки и потерянные клиенты
Возьмем элементарное действие: пользователь открывает карточку товара в модном микросервисном e-commerce и простой запрос превращается в экскурсию:
API Gateway -> Auth Service -> Product DB -> Pricing Service -> Inventory -> Reviews -> Response
Каждая стрелочка в этой цепочке – это сетевой прыжок. Данные нужно гонять через балансировщик, сериализовать, десериализовать. В итоге и без того кривой код начинает тупить на 500–800 мс на пустом месте. Да, мне сейчас скажут, что при нормальной настройке там будет 50 мс. Но чтобы это «нормально настроить», вам понадобится нанять еще одного инженера за полмиллиона (см. предыдущий пункт).
Еще в бородатом 2006-м в Amazon посчитали, что каждые 100 мс задержки откусывают 1% продаж. В Google говорили, что полсекунды тормозов срезают 20% поисковых запросов. С тех пор люди стали только нетерпеливее. Современный стек тихонько срезает вам конверсию на 5-8%, а вы и не в курсе, потому что в Графане метрики зеленеют.
Облачная ипотека
Мы все видим, что происходит на российском рынке облаков: дефицит железа, проблемы с параллельным импортом, ставка ЦБ улетела в космос. За прошлый год ценники на инфраструктуру подскочили на 30–40%. Сегодня облако – это роскошь и «налог на комфорт», который вы платите за право не нажимать кнопки самому.
TCO (Total Cost of Ownership) на 3 года
Берем типичный B2B-продукт. Кластер, 32 vCPU, 128GB RAM, пара managed-баз и Кафка.
Статья расходов | Публичное облако | Выделенные серверы |
|---|---|---|
Аренда мощностей (мес) | ~320 000 ₽ | ~100 000 ₽ |
Managed-сервисы под ключ | + ~30% (~95 000 ₽) | 0 ₽ (ставим сами) |
Исходящий трафик | Платный (~15 000 ₽) | Включен в тариф |
Итого за 1 год | ~5 160 000 ₽ | ~1 200 000 ₽ |
Итого за 3 года (+ инфляция) | ~17 000 000 ₽ | ~4 000 000 ₽ |
Откуда берётся этот разрыв?
Управляемые сервисы (Kubernetes, Kafka, БД) стоят в 1.5–2 раза дороже «голых» виртуальных машин.
Вызовы внутри памяти заменяются на HTTP-запросы, генерируя платный внутренний трафик и требуя дорогих балансировщиков.
Service Mesh, логгеры и сборщики метрик K8s легко сжирают 20–30% вычислительных мощностей только на собственное обслуживание.
Разница – 13 миллионов рублей. Эти деньги стартап мог бы пустить на нормальный маркетинг или просто положить на депозит под процент. Но нет, мы заплатили провайдеру за кайф «базы данных в один клик». Понятно, что на железе нужен будет админ. Но, повторюсь, для зоопарка в облаке инженеров нужно сильно больше.
Атрофия железа
Замечали, как корпоративный мессенджер в 2025 году жрет 2 ГБ оперативки, хотя 15 лет назад в этот объем влезала вся Windows с сапером и косынкой? Я называю это атрофией железа. Когда кажется, что инстансы в облаке можно плодить бесконечно, никто не оптимизирует код.
Вот типичный путь HTTP-запроса в вашем «современном» приложении:
HTTP Request → Nginx (reverse proxy) +2 мс → Express.js middleware #1-5 +8 мс, +45 МБ RAM → ORM-абстракция +12 мс (шпарит 3 кривых JOIN'а) → PostgreSQL +5 мс ← ORM сериализация +6 мс, +30 МБ RAM ← JSON-сериализация +3 мс ← Nginx gzip +2 мс Итого: ~38 мс, ~75 МБ оперативы на один чих пользователя. Тракторный запрос напрямую к БД занял бы 5 мс и меньше мегабайта.
Мы так привыкли к фразе «сервера дешевые, а время разработчика дорогое», что забыли посчитать математику. Каждый новый слой абстракции, каждая модная ORM или Express.js middleware накидывают вам десятки мегабайт и миллисекунды задержек. И ладно бы оно тормозило только на локалхосте. Но когда вы масштабируете это в облаке, каждый лишний гигабайт RAM обойдётся вам в 600-800 рублей сверху ежемесячно. Умножаем 32 ГБ мусорной памяти на 10 серверов и получаем минус пару сотен тысяч из чистой прибыли.
Resume Driven Development, или почему инженеры учатся за ваш счет
Есть ещё одна штука, о которой неловко говорить вслух, но все в индустрии её знают – Resume Driven Development (RDD). Рынок труда платит премию за «модные» технологии, а не за умение решать задачи бизнеса простыми средствами. Инженер, который два года стабильно поддерживал монолит на PostgreSQL, на собеседовании проигрывает тому, кто «внедрил Kafka и Istio Service Mesh». И я не виню инженеров – это баг системы мотивации, а не конкретных людей. Но оплачивает этот баг бизнес.
Конкретный пример. B2B SaaS в финтехе, команда из 15 человек. Тимлид инициировал внедрение Istio Service Mesh – сложного программного балансировщика с шифрованием трафика между сервисами. Обоснование: «безопасность и observability». Полгода на внедрение. Полгода, в течение которых конкурент на «скучном», но понятном монолите выкатил 15 новых продуктовых фич и забрал двух ключевых клиентов.
Стоимость эксперимента: ФОТ команды за полгода – около 12–15 млн руб.
Результат: инфраструктура стала неподъёмной, скорость доставки фич упала вдвое. Инициатор внедрения через три месяца ушёл в крупный банк – с красивой строчкой в резюме и без последствий для себя.
Сталкивались с таким? Сценарий настолько заезженный, что финал угадывается с первых строк.
Что делать? Модульный монолит и скучные технологии
Я не топлю за то, чтобы писать спагетти-код из девяностых. Речь о банальном прагматизме и суверенитете ваших технологий.
Модульный монолит
Суть простая: код организован так же чётко, как в микросервисах – отдельные модули, чистые границы, свои таблицы в БД. Но запускается всё в одном приложении, без сетевого зоопарка.
Параметр | Модные микросервисы | Модульный монолит |
|---|---|---|
Git-репозитории | 23 | 1 |
Docker-контейнеры | 47 | 1 процесс |
Дежурные девопсы | 3 (и бессонные ночи) | 1 толковый админ |
Задержка внутреннего вызова | 500+ мс по сети | доли миллисекунды (вызов функции) |
Вы получите все плюсы микросервисов (порядок в коде, тесты не пересекаются), но инфраструктурный налог упадет до нуля. Вызовы между модулями в памяти – это доли миллисекунды. А если один конкретный кусок кода реально начнет жрать CPU (например, генерация тяжелых отчетов), вы вынесете его в отдельный сервис за пару дней. Уверяю, в 95% случаев до этого просто не дойдет. Да, вы теряете возможность независимого деплоя по кусочкам. Но для штата в 30-40 человек это вообще не проблема.
Зависимости: почему ваш бизнес может лечь из-за парня из Небраски
Когда продукт размазан на десятки сервисов, каждый тянет с собой ворох NPM-пакетов, библиотек и Docker-образов. Вы даже не контролируете код, который крутится у вас на проде. Кто-то удалил микро-пакет со смешным названием (привет, left-pad), кто-то влил эксплойт (привет, Log4Shell), и ваш отдел продаж стоит.
Монолит позволяет держать зависимости в одном месте, регулярно их обновлять и не молиться на то, что опенсорс-сообщество не подкинет свинью в очередной минорной версии.
Инновационные токены и скучные технологии
Дэн МакКинли (экс-Etsy) красиво сформулировал понятие “инновационных токенов”. Любая новая технология в проекте – это темный лес и скрытые баги. Считайте, что у вас есть 2-3 таких токена на весь проект. Хотите поиграться с распиаренной графовой БД? Окей, сожгли токен. Значит бэкенд вы теперь обязаны писать на старой-доброй Java или C#, а не на экспериментальном фреймворке. Решили взять новый язык программирования? Отлично, значит базой берем дефолтный PostgreSQL. Попытка внедрить сразу три хайповые приблуды в одном месте – это выстрел в обе ноги.
Скучная технология – это та технология, чьи баги вы знаете в лицо. Она не заставит вас седеть в пятницу вечером из-за того, что кластер решил пересобраться.
Завтрашний легаси-ад
Сегодняшний хайп – это завтрашний легаси. Через пять лет поддерживать монстра из 100 переплетенных микросервисов, чьи авторы давно уволились, будет банально нерентабельно. И это уже дошло до гигантов. Amazon Prime Video публично признались, что снесли микросервисы в пользу монолита и сократили траты на 90%. 90%, Карл! Shopify сидит на модульном монолите. Segment выкинули микросервисы на помойку из-за того, что в них невозможно было разобраться. Вы правда думаете, что вашему стартапу с 500 юзерами нужна архитектура сложнее, чем у Shopify?
Если вы CEO, спросите своего CTO:
Какой путь проходит клик пользователя до ответа на экране, и почему это дольше 200 мс?
Сколько мы переплачиваем за облако по сравнению с двумя выделенными серверами?
Почему мы тратим столько времени на инфраструктуру, а клиенты месяцами ждут новых фич?
Каждый рубль, слитый на модную архитектуру – это рубль, отнятый у вашего маркетинга и развития продукта. Клиенты платят за решение их проблем, а не за ваш кубернетес.
P.S. Всю эту кухню современной IT-индустрии, фатальные ошибки и почему разработчики строят системы ради строчек в резюме, я подробно разбираю в книге «Поколение JSON». Первую главу можно забрать и почитать бесплатно на сайте json-book.ru.
Берегите свои бюджеты, пишите монолиты и не ведитесь на хайп!
