4 мин

Архитектура на «ИЗИ»

Когда монолит выгоднее, а когда пора переходить на микросервисы — разбираю выбор архитектуры через стоимость строки кода, без занудства про «масштабируемость» и «отказоустойчивость».

Архитектура на «ИЗИ»

Всем привет! Архитектура информационных решений не даёт мне покоя, и вот почему. Я вижу, что системные аналитики сплошь и рядом не понимают классических паттернов проектирования — а это бьёт по их постановкам. Плохая постановка тянет за собой лишнее время на разработку, проблемы в реализации, неконсистентные данные на входе. И ведь именно аналитик — тот человек, который должен излагать мысли понятно для разработчиков и тестировщиков. А по факту из «мудрых» голов на свет выходят идеи, вообще не технические))

Почему так?

Моё мнение простое: нет базы, нет фундамента — и это боль текущего слоя аналитиков. Не все такие, гуру тоже встречаются, но общая масса именно такова.

Поэтому я и взялся за ликбез — для аналитиков и вообще для всех, кому интересна разработка и проектирование.

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

Суть его вот в чём: на определённом этапе стоимость строки кода в монолите начинает расти, и есть точка, где разработка монолита становится попросту невыгодной.

Как стоимость строки кода меняет правила игры?

Когда выбирают архитектуру — монолит или микросервисы (и нет, это не все паттерны, их куда больше, но о них в другой раз), — разговор обычно сползает к скучным словам вроде «масштабируемость» и «отказоустойчивость». А давай копнём глубже и спросим: сколько стоит каждая строчка кода? Да-да, каждая строка — это как крошечный айтишник, который требует зарплату, поддержку и внимание. Разберёмся, как цена небольшой доработки влияет на выбор архитектуры.

Монолит, когда каждая строка кода — дешёвая рабочая сила

Представь: стартап, три разработчика и большая мечта. Время идёт, фичи пекутся как горячие пирожки. Здесь монолит — самый экономичный выбор. Каждая строка дешёвая, как пачка «Роллтона». Всё в одном месте: один проект, один деплой, один большой-большой тест. Ты не тратишь силы на перегон данных между сервисами, не мучаешься вопросом «а зачем этот микросервис вообще здесь нужен?» и живёшь припеваючи, даже не вспоминая про межсервисное взаимодействие.

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

Микросервисы, каждый кусочек кода — инвестиция в будущее

Теперь другой сценарий: стартап взлетел, разработчиков стало тридцать три, фичи множатся быстрее грибов после дождя. Добро пожаловать в мир микросервисов! Здесь каждый кусочек кода — уже не просто строка, а стратегическая инвестиция. Каждый сервис живёт своей жизнью, как коты по разным комнатам: одному подавай Scala, другому Java, третьему — танцы с бубном вокруг Kubernetes. Начальная настройка обходится дороже, зато каждый отдельный «кодовый кот» не такой уж и прожорливый.

Представь разработчика Васю, который добавляет новую фичу. Вместо того чтобы будить всю кодовую базу (а заодно и Петю, мирно спящего в этот момент), Вася обновляет только свой кусочек. Тесты быстрые, деплой независимый. А если Вася вдруг решит, что душа у него лежит к Rust, а не к Java, — его микросервису это скорее на пользу, и без той боли, что была бы с монолитом.

Так когда же переходить на микросервисы?

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

Итог: если твой проект — лёгкий монолитный тост на завтрак, пусть таким и остаётся. Но как только тост превращается в многослойный бутерброд, подумай о микросервисах — чтобы каждая строка кода не стоила как полёт в космос.


Из моего Telegram-канала @it_underside.

Ваш ДПУПП

Похожие статьи

Копировать — дёшево. Эксплуатировать — дорого

#импортозамещение #архитектура

Почему «сделали аналог» и «локализовали» — это не инновация, а отложенный счёт. Разбор того, во что обходится жизнь на чужих архитектурах и почему суверенитет нельзя купить на Marketplace.

FAANG по-русски: культ канонов и антипаттерны, рождающиеся из лучших намерений

#архитектура #управление

Почему «хотим архитектуру как в FAANG» так часто оказывается началом конца. Про культ канонов, антипаттерны из лучших намерений и одно короткое слово, которое спасает проекты чаще любых паттернов.

Event Storming без иллюзий: плюсы, минусы и стикер на лбу

#системный анализ #архитектура

Личный разбор Event Storming по итогам не одного «штурма событий»: где он реально спасает команду, где превращается в бесполезную стикеротерапию и что нужно, чтобы сессия не улетела в трубу.