TGViewer
CTO для стартапов | Дмитрий Гончаров CTO для стартапов | Дмитрий Гончаров @ctoforstartups · 34 subscribers
Post #27 77
Когда инструменты не выдерживают рост

На старте у нас всё было просто и удобно. Один сервер, Dokku, dev и прод в одной лодке. Контейнеры забирали ресурсы сколько хотели. Работало — значит, устраивало.

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

На бумаге всё выглядело как мечта. Но реальность быстро внесла коррективы. Ещё на внутреннем тестировании под нагрузкой вылезли первые пробои. Система ловила периодические даунтаймы. CPU и память — в порядке. А падал NATS, и за ним рушились все остальные сервисы.

Сначала я спокойно делегировал проверку девопсам. Ответ был стандартный: "Это просто NATS капризничает." Но что-то внутри не давало покоя. Лезу в логи — и картина становится яснее. Перед нами были не просто баги. Перед нами были две разные ошибки: тактическая и стратегическая.

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

Стратегическая ошибка — архитектура NATS.
Этот сервис хранит своё состояние в памяти. А мы его начали горизонтально масштабировать. В результате любое колебание — и мы теряли события, рвали соединения, рушили стабильность. На таком фундаменте масштабироваться было всё равно что строить небоскрёб на зыбучем песке.

Решение принимали быстро. Изолировали NATS на отдельной микроноде без автоскейлинга, чтобы стабилизировать работу. Параллельно начали планировать переезд на управляемую Kafka — медленнее, но зато надёжно и с полноценным мониторингом из коробки.

И вот тут был настоящий кайф.
Не потому что «спасли ситуацию», а потому что вытащили проблему на свет и успели перестроиться до того, как ошибка ударила по реальным клиентам.

Инструменты, которые отлично работают на старте, чаще всего разваливаются в момент роста.
Масштабирование — это проверка на прочность всего, что вы собрали раньше. И если архитектура не выдерживает — виноваты не клиенты и не нагрузка. Виноваты ваши прежние решения.
  • ❤‍🔥 3
  • 👌 1
More from @ctoforstartups
  1. Aug 14, 2025Когда фундамент начинает требовать перестройки В своей почти 20-летней карьере программист…
  2. Jun 13, 2025CTO без рук — CTO без власти Чем больше я погружаюсь в автоматизацию с помощью no-code и L…
  3. May 16, 2025Процессы в стартапе: меньше — значит больше В прошлом посте я писал про бюрократию и как о…
  4. May 16, 2025Бюрократия, которую ты не просчитывал: как один пропущенный билет вывел меня из колеи Сего…
  5. May 6, 2025Метрики — твой единственный способ управлять ростом, а не быть его жертвой Каждый раз, ког…
  6. Apr 28, 2025Когда устройство — это не про мощность, а про то, как оно вплетается в твою жизнь В школьн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →