реклама
разместить

Переход от монолита к микросервисам

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

Не всегда микросервисы являются оптимальным выбором
Не всегда микросервисы являются оптимальным выбором

Декомпозиция на основе волатильности

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

Декомпозиция на основе организационной структуры

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

Шаблоны разбиения монолита на микросервисы

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

Код или база данных

Если вы осознанно подошли к разделению вашего монолита на микросервисы, стоит определиться с шагами. Что стоит выносить первым - код или базу данных? Рекомендуется детально изучить возможность выделения кода и базы данных, а затем определиться с приоритетностью. Наиболее распространенным первым шагом является вынесение кода с сохранением единой (с монолитом) базы данных. Как правило, если извлечь код не получается, можно остановить работы и избежать необходимости распутывать зависимости базы данных.

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

Шаблон "Душитель"

Шаблон "Душитель" (Strangler Fig Pattern) заключается в постепенном переводе функционала старой системы в новую. Осуществляется перехват вызовов к существующей монолитной системе и перенаправление на микросервис для новой функциональности. Оставшуюся функциональность обеспечивает монолит и соответствующие запросы направляются на него. Отличительной особенностью этого шаблона является то, что никаких изменений в монолит не вносится. Это преимущество можно использовать для параллельного исполнения вызовов на старом и новом коде с последующим сравнением результатов.

Шаблон переключаемых функций

Шаблон переключаемых функций (feature toggle или feature switcher) - это механизм, используемый для включения, выключения, а также переключения между версиями функциональности. В нашем случае функциональность в монолите и микросервисе может быть разной и данный механизм позволяет переключаться между реализациями в зависимости от обстоятельств (например, через boolean флаг).

Заключение

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

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

88
реклама
разместить
Начать дискуссию
В России вступил в силу закон о самозапрете на выдачу кредитов и займов
77
55
11
11
реклама
разместить
Думали, свихнёмся: Купили "шалаш" за 4 млн рублей и вложили ещё 3. Бизнес на посуточной сдаче загородных домов.

Как молодая пара путешественников решили купить дом в 2024 году для сдачи его в посуточную аренду и что из этого вышло.

Думали, свихнёмся: Купили "шалаш" за 4 млн рублей и вложили ещё 3. Бизнес на посуточной сдаче загородных домов.
1111
55
11
Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

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

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект
2424
⭐️ Доллар не настоящий! 💸Как заработать на укрепляющемся рубле?

Падение курса доллара создает невероятные возможности для его покупки. Но есть ли смысл покупать «валютные» облигации?

⭐️ Доллар не настоящий! 💸Как заработать на укрепляющемся рубле?
1313
Субботний самопиар на vc.ru

Делимся в комментах ссылками на свои проекты и комментируем чужие! Площадка для самопрезентации стартапов и пет-проектов 👉 Product Radar

Субботний самопиар на vc.ru
1818
33
Итоги 44 месяцев инвестиций. 6,333 млн рублей

1 марта, значит пора жарить блины, лопать их с икрой и подводить итоги февраля. Ежемесячно я пишу отчёт о том, что произошло с моими инвестициями. Напоминаю: я начал копить на квартиру в Сочи в июле 2021. 44 месяца позади. Погнали!

Итоги 44 месяцев инвестиций. 6,333 млн рублей
2727
Миф о троянском коне: обман или искусство?

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

Метастратегия: что это и почему она вам нужна. Ч.1.

Было бы странно рассказывать вам здесь о таком глобальном понятии без примера на собственном опыте. Поэтому сегодня я познакомлю вас с феноменом Новой Русской Школы Психологии. А еще расскажу на нашем примере, как внедрена метастратегия в наш бизнес.

Метастратегия: что это и почему она вам нужна. Ч.1.
66
33
11
11
[]