Будущее микросервисов: уйдем ли мы к монолитам 2.0?

pcziu5eiiiuo3yyolyz_d8yal2w.png


Микросервисы или монолит? Споры об архитектуре программного обеспечения не утихают, но с 2018–2020 годов наметился интересный тренд: компании начинают переоценивать сложность микросервисного подхода. Возвращение к монолитам, но уже с учетом современных инструментов, вызывает жаркие обсуждения в техническом сообществе.

В этой статье я не буду защищать какую-либо из сторон. И не буду обещать волшебных решений, которые решат все архитектурные проблемы. Вместо этого разберем, что стоит за модной концепцией «монолиты 2.0», как эволюция технологий меняет восприятие архитектуры и почему возвращение к упрощению может быть выгодным. Добро пожаловать в мир архитектурных компромиссов — подробности под катом.

Эволюция архитектур


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

Однако с ростом числа микросервисов возникли новые вызовы: управление зависимостями, сложность инфраструктуры и высокие затраты на поддержку. Согласно Gartner, более 70% компаний, внедряющих микросервисы, сталкиваются с проблемами масштабирования DevOps-процессов, что приводит к увеличению времени разработки и операционных расходов.

Так мы пришли к гибридным моделям — модульным монолитам и микрофронтенду, а также вернулись к обновленным версиям монолитов, известным как монолиты 2.0. Эти решения стремятся сочетать лучшие качества микросервисов (гибкость) и монолитов (простота).

o6h30b1mvb8a0u841qbzgvcrsfe.png


Хайп-цикл Gartner. Источник .

Кейсы успешных монолитов


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

Stack Overflow — платформа для вопросов и ответов, запущенная в 2008 году. В 2024 году она обслуживает более 50 миллионов уникальных пользователей в месяц и имеет более 14 миллионов вопросов и ответов, а также более 5 миллионов новых вопросов в год.

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

6tdgwm3cbtnl3lelktejbz8zsqw.png


Источник.

GitHub, основанный в 2008 году, стал крупнейшей платформой для совместной разработки программного обеспечения. На начало 2024 года GitHub имеет более 40 миллионов активных пользователей и хранит более 100 миллионов репозиториев.

Монолитная структура упростила управление кодом и позволила быстро внедрять изменения. GitHub обрабатывает более 40 миллионов запросов на пул (pull requests) каждый месяц, что подчеркивает его активное использование и необходимость высокой производительности.

Shopify была основана в 2006 году и на начало 2024 года обслуживает более 1,7 миллиона активных магазинов по всему миру. В 2023 году объем продаж через платформу составил более 61 миллиарда долларов.

Использование монолита позволило Shopify быстро реагировать на изменения рынка и внедрять новые функции. Платформа продолжает демонстрировать высокую производительность даже при значительном росте пользователей.

jbzk9n6v6pdhshdcjrwg35xesri.png


Источник.

Кейсы успешных микросервисов


Теперь посмотрим на известные компании, применяющие микросервисную архитектуру.

Netflix управляет более чем 800 микросервисами, обрабатывающими задачи от видеотранскодирования до персонализированных рекомендаций. Этот подход обеспечивает компании гибкость и позволяет оперативно масштабировать серверные мощности во время пиковых нагрузок — например, при выходе популярных сериалов. Однако такая архитектура создает сложные задачи для мониторинга и поддержки. По данным TechRadar, Netflix ежегодно инвестирует миллионы долларов в инструменты DevOps и инженеров, чтобы поддерживать стабильность своей инфраструктуры.

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

fci2dbgp495g-_wrlwamj1zuceg.png


Пример сложного потока в Uber, где для простой интеграции до DOMA требовалось 10 точек соприкосновения.

t1mxw8jlsoalsqvmovu-u3feclu.png


Микросервисная архитектура Uber примерно в середине 2018 года. Источник.

eBay перешел на микросервисную архитектуру, чтобы повысить масштабируемость и сократить время вывода новых функций на рынок. Например, переработка страницы аукциона заняла всего несколько недель благодаря микросервисам. Однако, как сообщает Gartner, управление сотнями сервисов увеличило затраты на инфраструктуру и разработку более чем на 30%. Это привело компанию к необходимости внедрения новых подходов к оптимизации.

1hdqmj1bvguax5hnugdz0ci_jbw.jpeg

Что такое монолиты 2.0


Понятно, что монолиты 2.0 — это какой-то обновленный подход к созданию монолитных приложений. Но что именно там нового? Чаще всего подразумевается внедрение контейнеризации и модульности.

Тот же Docker позволяет упаковывать приложение вместе со всеми его зависимостями в единый контейнер. Это обеспечивает согласованность среды разработки и развертывания, а также упрощает управление версиями.

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

Звучит все, конечно, здорово. Но как это реализовать? На сегодняшний день доступно несколько инструментов.

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

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

Laravel. Этот PHP-фреймворк известен своим элегантным синтаксисом и мощными инструментами для работы с базами данных через Eloquent ORM. Laravel также предлагает средства для тестирования и управления зависимостями, что делает его идеальным выбором для разработки современных веб-приложений.

Тренды 2024: почему это стало актуально


В 2024 году наблюдается несколько ключевых трендов, способствующих возрождению интереса к монолитам. В мире технологий каждый тренд рано или поздно вызывает обратную волну. После нескольких лет доминирования микросервисов монолиты 2.0 вновь стали обсуждаемой темой. Что их делает актуальными именно сейчас?

Отчасти этому способствует упрощение DevOps-процессов. Микросервисы требуют сложной оркестрации, множества инструментов и постоянного мониторинга. Компании, уставшие от этого, начали искать более простые решения. Монолиты 2.0 возвращают контроль в одни руки: меньше инструментов — меньше проблем. Согласно данным Forrester, переход на оптимизированную архитектуру позволяет сократить до 25% времени на DevOps-операции.

ievukjiyhsuduh4t0dt2svjzlm8.png


Илон Маск раскритиковал чрезмерное использование микросервисов, назвав их «bloatware».

Другой важный фактор — экономия ресурсов. Это тренд не только в бизнесе, но и в архитектуре. Компании хотят снизить затраты на поддержку инфраструктуры на 15–20%. Как отмечает Deloitte: «Вместо борьбы с полусотней микросервисов компании экономят миллионы, переходя на оптимизированные монолиты».

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

Получается, монолиты 2.0 — это не шаг назад, а переосмысление архитектуры под современные задачи. Они позволяют быть гибкими и быстрыми, сохраняя бюджет и упрощая разработку. Возможно, это и есть тот баланс, которого не хватало микросервисам.

Будущее архитектуры: компромисс или крайность?


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

ebx-u7hsew5nilcxq32zxdqcs-0.png


Микросервисы изначально являются менее производительной архитектурой из-за накладных расходов на обслуживание. По мере роста монолита он становится сложнее. Источник.

Гибридная архитектура — это компромисс между монолитами и микросервисами, который позволяет использовать преимущества обоих подходов. В этом контексте можно выделить два основных варианта.

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


jneuw75p91aui2mc5yebmddrkps.png


Модуляризация помогает проектировать лучшие монолиты и микросервисы. Без тщательно определенных модулей мы либо попадаем в традиционный многослойный монолит, либо, что еще хуже, в распределенный монолит, который сочетает в себе худшие черты монолитов и микросервисов. Источник.

По данным исследования McKinsey, более 60% компаний, использующих гибридные подходы, отметили улучшение скорости разработки и гибкости системы при одновременном снижении затрат на поддержку.

Эксперты прогнозируют[a] несколько ключевых трендов в области архитектуры программного обеспечения. Один из них уже упомянут — рост интереса к гибридным решениям. Ожидается, что гибридные архитектуры будут становиться все более популярными среди компаний, стремящихся к оптимизации затрат и повышению гибкости. По прогнозам Forrester Research[b], к 2025 году более 75% компаний будут использовать гибридные модели для разработки своих приложений.

Еще один тренд — увеличение использования облачных технологий. Облачные вычисления продолжат развиваться, предоставляя компаниям новые возможности для хранения данных и обработки информации. Ожидается, что объем облачных услуг вырастет на 25% в год в ближайшие пять лет.

Интеграция IoT и периферийных вычислений: Увеличение числа устройств IoT требует новых подходов к обработке данных. Периферийные вычисления помогут снизить нагрузку на центральные серверы и улучшить производительность систем. Прогнозируется, что к 2026 году количество подключенных IoT-устройств достигнет 30 миллиардов.

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

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

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

Заключение


ukncmo9wk1cq-lqol7_fbtp6lh4.png


Источник.

Когда смотришь на эволюцию архитектур, понимаешь, что технологии всегда движутся по кругу. Возвращаясь к старым идеям, но с новым смыслом. Монолиты 2.0 — это как раз про это: не шаг назад, а переосмысление прошлого под реалии настоящего.

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

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

Личный инсайт: технологии — это всегда про людей и их потребности. Архитектура должна решать проблемы бизнеса, а не создавать новые. Если у вас есть задача, которую можно решить проще, не бойтесь отойти от модных решений и сделать так, как действительно удобно.

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

А как вы считаете, куда приведет эволюция архитектур — к гибридному будущему или очередному повороту к «старому-новому»? Делитесь своими мыслями в комментариях, ставьте реакции и давайте обсудим!

Habrahabr.ru прочитано 2144 раза