16 сентября 2022 1491
Какие есть сходства и различия у монолитной и микросервисной архитектуры? Какой подход и почему лучше использовать в современных реалиях для компаний разных уровней? Давайте разбираться.
Зачем бизнесу нужны микросервисы

Микросервисы обрели популярность в России около 5 лет назад. В это время компании начали активнее использовать технологические решения в конкурентной борьбе и на первый план вышла концепция «time-to-market» – скорость выпуска продуктов на рынок. Компании приступили к поиску решений и «фич», которые позволяют сделать качественный продукт быстро и (относительно) недорого. Добиться этих целей им помогают микросервисы.

undraw_online_stats_0g94.png

Что такое микросервисная архитектура и чем она отличается от монолитной?

Микросервисная архитектура (microservice architecture, MSA) – это подход, при котором IT-продукт разрабатывается на основе небольших самостоятельных сервисов, каждый из которых взаимодействует с остальными используя легковесные механизмы, например – HTTP.

В свою очередь, монолитная архитектура (monolit architecture) – традиционный подход к созданию ПО. В его рамках формируется единый модуль, функционирующий автономно и независимо от других приложений. Теперь сравним монолитную и микросервисную архитектуру, и разберемся какая архитектура достойна внимания в современных реалиях.

Преимущества монолитной архитектуры

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

Недостатки монолитной архитектуры

  • Первый минус – проблемы с внедрением изменений. Для изменения даже незначительного компонента потребуется вручную отследить как ваша «правка» повлияет на другие компоненты, и исправить множество ошибок, которые могут возникнуть. Все это увеличивает время работы с сервисами и требует вовлечения большого количества специалистов.

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

  • Вероятность возникновения сбоев. Из-за сильной взаимосвязи между компонентами в таких структурах нередко происходят сбои, которые могут негативно повлиять на всю систему.

  • Трудности с внедрением новых технологий. Если продукт был разработан с помощью высокоуровневых языков программирования, то перейти на другие технологии практически невозможно. Среди IT-специалистов такие структуры получили название «Legacy» (от англ. наследие). Их главная характеристика – статичная унаследованная инфраструктура.

Преимущества и недостатки микросервисов

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

"Плюсы" микросервисной архитектуры:

  • MSA меньше влияют на пользовательский интерфейс. В отличие от монолитных сервисов, связь между компонентами внутри подобной системы слабее и функционирует по другим правилам. Каждый сервис – это независимая составляющая, которая имеет свое хранилище, библиотеку и т. д. Для того, что MSA не изменяло пользовательский интерфейс, разрабатывают монолитное SPA-приложение (Monolithic Frontend) и относительно недавно стали популярны Micro frontend-ы.

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

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

  • В MSA решения можно использовать повторно. Микросервис, написанный когда-то, можно использовать для решения тех же проблем, но в других проектах. Благодаря этой особенности уменьшаются трудозатраты и количество рутинных операций, выполняемых IT-специалистом. Однако, стоит учесть, что повторное использование MSA зависит от способа декомпозиции проблемной области (Problem Space). В случае использования Domain-Driven Design повторное использование может быть затруднено.

"Минусы" микросервисной архитектуры:

  • Трудности при миграции с монолитной архитектуры. Переход от одной архитектуры к другой – трудоемкий процесс, он может отнять много времени и других ресурсов.

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

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

undraw_version_control_re_mg66.png

Когда микросервисная архитектура не нужна?

Некоторые компании спешат реорганизовать свою структуру в пользу микросервисов. Но далеко не всем это действительно нужно. Если в рамках работы над проектом вы имеете дело с большим коллективом разработчиков, объемной и сложной архитектурой, продуктами, с резко меняющимся трафиком, приложениями, которые требуют частых обновлений то вам стоит задуматься над использованием MSA. Другими словами, использовать MSA нужно в случаях, если вы имеете дело со сложными предметными областями, частыми решениями (time-to-market) и гибким масштабированием (elastic scalability). Кроме того, без квалифицированной команды ничего не выйдет.

Микросервисы заслужили свою популярность – с их помощью компании решают те проблемы, которые раньше считались неразрешимыми: опыт Netflix, Uber, SoundCloud и Amazon подтверждает это.

Однако, это не решение всех технологических проблем - не всем компаниям переход на MSA даст ощутимое преимущество. Решение использовать тот или иной подход зависит от ваших реальных потребностей.

Последние статьи в блоге

Системный аналитик 100 lvl — дорожная карта развития

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

23 декабря 2024

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

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

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

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

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

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

12 сентября 2024

Баги, которые стали фичами

Многие вещи, которые мы используем ежедневно, были случайно открыты. В честь дня тестировщика рассказываем про 5 багов, которые стали фичами.

09 сентября 2024

Шаблоны облачного проектирования

Читайте про наиболее популярные шаблоны облачного проектирования: шаблон Bulkhead и шаблон Sidecar.

06 сентября 2024

Бесплатные мини-курсы ко Дню знаний

Друзья, поздравляем с Днём знаний! Желаем любопытства, открытий и новых побед!

02 сентября 2024

5 курсов со скидкой 30%

Друзья, в сентябре стартует 5 курсов со скидкой 30%*

29 августа 2024

Исследование IBS: на одну вакансию в Java-разработке приходится 4 резюме

По данным исследования рекрутингового центра IBS, наибольшая конкуренция среди соискателей наблюдается среди Python-разработчиков: на одну вакансию приходится 10 резюме. В менее конкурентной среде находятся Java-разработчики (4 резюме на одну вакансию). Самыми дефицитными являются специалисты по языку Go: менее 2 резюме на одну вакансию.

28 августа 2024

Индексирование баз данных в PostgreSQL: погружение в тему

В продолжение серии статей об устройстве системы управления базами данных (СУБД) PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

28 августа 2024

Книги для системных и бизнес-аналитиков, а также будущих и нынешних архитекторов

Наш коллега, архитектор информационных систем Сергей Политыко, поделился полезными книжными рекомендациями.

Жизнь компании
19 августа 2024

Сценарии кибератак с использованием ИИ. Внутренний периметр.

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

16 августа 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.