ru

Как это работает?

Нужна помощь для бизнеса?

Свяжитесь с нами, чтобы получить персональное предложение по FinMV, адаптированное к вашим потребностям.

Монолитная или микросервисная?

Технический директор Вашей компании при планировании запуска финансовой платформы должен будет выбрать вариант архитектуры проекта. Какие варианты архитектуры ему доступны и какой лучше выбрать?

Вариант 1. Монолитная архитектура (монолит)

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

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

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

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

Вариант 2. Микросервисная архитектура

Мы сделаем Вашу финансовую платформу сразу на основе микросервисной архитектуры.

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

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

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

Реальные примеры из жизни

Первый пример. Руководство платформы P2P-кредитования с большим количество пользователей решило выйти на рынки стран с другой валютой. Платформа имела монолитную архитектуру и в ней была заложена только одна валюта - евро, а для выхода на рынки стран Швеции (шведские кроны), Польши (польские злотые), Чехии (чешские кроны) нужно было внедрить мультивалютность.

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

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

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

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

Третий пример. Финтех-платформа была сделана на старой версии PHP и Laravel. Переход на более новые версии, а также смена базы данных с MariaDB на PostgreSQL фактически было невозможны, поскольку всей команде пришлось несколько месяцев заниматься только процессом миграции.

Новые версии PHP и Laravel на тот момент могли бы ускорить работу проекта и дальнейшую разработку, но вот монолитная архитектура не позволяла обновить стэк технологий

.