Пару лет назад я консультировал один московский 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:

  1. Какой путь проходит клик пользователя до ответа на экране, и почему это дольше 200 мс?

  2. Сколько мы переплачиваем за облако по сравнению с двумя выделенными серверами?

  3. Почему мы тратим столько времени на инфраструктуру, а клиенты месяцами ждут новых фич?

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


P.S. Всю эту кухню современной IT-индустрии, фатальные ошибки и почему разработчики строят системы ради строчек в резюме, я подробно разбираю в книге «Поколение JSON». Первую главу можно забрать и почитать бесплатно на сайте json-book.ru.

Берегите свои бюджеты, пишите монолиты и не ведитесь на хайп!

Комментарии (15)


  1. ohrenet
    31.03.2026 08:19

    Неужели теперь найм развернётся в сторону старых добрых "решал" проблем бизнеса, а не напомаженных эрудитов, сладко рассказывающих на собесах про самые модно-молодёжные свистоперделки? Ах мечты, мечты...


    1. MrTheFirst Автор
      31.03.2026 08:19

      И мечты бьются о суровую выборку... Рынок так долго премировал за знание «модно-молодёжных» технологий, что найти того, кто понимает, почему один JOIN лучше десяти сетевых вызовов, сегодня труднее, чем архитектора с сертификатом AWS.


  1. akod67
    31.03.2026 08:19

    У микросервисов может появиться второй шанс, так как ЛЛМам проще с мелким контекстом. Но это не точно.


    1. MrTheFirst Автор
      31.03.2026 08:19

      Да, написать изолированный кусок кода для одной функции — это сейчас идеальная задача для любой LLM.

      Но тут есть пара нюансов:

      1. Проблема микросервисов никогда не была в написании кода одного сервиса. Главная боль — это распределенные транзакции, разрыв сети, консистентность данных и распределенный трейсинг. LLM еще очень плохо понимают архитектуру всей системы целиком и то, как эти 50 «идеально написанных» кусочков будут общаться между собой в проде под нагрузкой.

      2. Если сейчас больно искать, где потерялся спан в трейсе из десятка сервисов, написанных людьми, то представьте, каково будет дебажить логику, которую нагенерили агенты без единого архитектурного видения.

      3. Учитывая, что у новых моделей окна контекста уже пробивают 1-2 миллиона токенов, ограничение «маленького контекста» — это временно (хочется в это верить). Скоро скормить LLM-ке хорошо структурированный модульный монолит будет даже выгоднее: она будет видеть всю предметную область разом, а не пытаться угадать контракты соседнего сервиса.

      Так что, с точки зрения написания — да, проще. А вот с точки зрения поддержки всей инфраструктуры — LLM могут этот «налог на микросервисы» только увеличить, генерируя их десятками там, где хватило бы одного модуля.


      1. akod67
        31.03.2026 08:19

        Думаю для мониторинга состояния архитектуры всё что требуется от “архитектурного видения” - это чёткое описание data flow и прочих флоу, а уж логи LLMы по tracking id копают на много лучше кожанных. Т.е. опять же, инструментарий стал лучше и он может порешать некоторые проблемы, с которыми людьми не справлялись. А окна в миллион не решают проблему галлюцинаций при распухшем контексте, наоборот, только делают эти проблемы более вероятными, так как перестаёшь следить за контекстом, не напарываясь на компрессию.


    1. Cringeon
      31.03.2026 08:19

      So far наблюдается обратное: пока весь код в одной репе и иишка может найти все нужные референсы условно в "1 grep" - она с задачами справляется на ура, а если ей при этом надо помнить про какие-то внешние связи или констрейнты, то начинает что-то придумывать поверх каждый раз


    1. smartdog
      31.03.2026 08:19

      разбейте систему на модули (как упомянуто в статье) и скармливайте их по-очереди своей LLM.


  1. Dhwtj
    31.03.2026 08:19

    Несколько я в курсе, до сих пор использует микросервисы массово Озон. Они сели на них и слезать не собираются. И там они не для производительности и не чтобы устранить противоречия команд. Они чтобы быстрее писались маркетинговые свистоперделки (рейтинги, рекомендации, аналитика …), которые если лягут или будут отдавать устаревшие данные то и фиг с ними. Главное, чтобы основой процесс не положили. Не будем их переубеждать, им норм.

    PS Маркетинг любит микросервисы. Где микросервисы там почти всегда это маркетинг


  1. JustMoose
    31.03.2026 08:19

    Хм. Никогда не был бекендером, скорее пробовал туда вкатиться... У нас был Docker. Чтобы в нём было удобно собирать какой-то кусок кода для бекенда. Маленький кусок плюсового кода. Но есть один нюанс: я много лет ковырял другой (правда, десктопный) крупный проект (гигабайты плюсового кода), который без проблем собирался одним bat файлом. Мне кажется, overengineering всё ещё слишком популярен :(((


    1. akod67
      31.03.2026 08:19

      ну CI и докеризация нынче - это база, а не overengineering. Даже странно будет, если придётся объяснять, для чего это нужно.


      1. JustMoose
        31.03.2026 08:19

        Там чуть выше есть целая статья про то, что нужно это не всегда :)


        1. akod67
          31.03.2026 08:19

          Это нужно всегда хотя бы с точки зрения гигиены.


          1. JustMoose
            31.03.2026 08:19

            О какой вообще гигиене может идти речь, когда фигачишь самодельный софт на специально купленной для этого тачке?


            1. akod67
              31.03.2026 08:19

              чистоту и порядок неважно где поддерживать. вопрос культуры производства.


  1. Bonus2k
    31.03.2026 08:19

    В действительности так называемые "модные архитектуры" не являются самостоятельной ценностью. В it прослеживается устойчивая тенденция рассматривать отдельные технологии как универсальные решения ("серебряные пули"), что приводит к их применению вне контекста задач и ограничений. В результате инструменты используются не по назначению - подобно попытке применять микроскоп для вбивания гвоздей.

    Подобная практика во многом обусловлена недостаточным уровнем инженерной культуры, в рамках которой ключевую роль должны играть метрология, формализованные критерии оценки и обоснованный выбор инструментов с учётом требований системы. Отсутствие системного подхода к принятию технических решений снижает эффективность разрабатываемых решений и увеличивает их сложность.

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