Свяжитесь с нами, чтобы получить персональное предложение по FinMV, адаптированное к вашим потребностям.
Технический директор Вашей компании при планировании запуска финансовой платформы должен будет выбрать вариант архитектуры проекта. Какие варианты архитектуры ему доступны и какой лучше выбрать?
Монолитную архитектуру можно сравнить со снежным комом. Вы начинаете делать проект и у вас небольшой снежный ком. Он такой маленький, что его может развивать и катить маленькая команда. Проходит пару лет, и вот ваш снежный ком стал таким огромным, что его уже толкают 20 разработчиков. Пройдёт ещё пару лет, а ваш снежный ком с тонной программного кода будут катить сотни разработчиков, но запуск новых возможностей станет совсем медленным.
В результате владельцы начинают менять технического директора, членов команды, но становится только хуже. Новые члены команды не знают исторических особенностей, почему снежный ком именно такой, а не другой. Документация по продукту быстро устаревает.
Почему же изначально не сделать сразу правильно? Во-первых, в самом начале бизнеса всегда ресурсы ограничены, не хватает разработчиков, экспертизы, времени. Руководство подгоняет, и программисты спешат сделать максимально быстрым способом.
Во-вторых, технические инженеры думают: "Ну и пусть пока будет монолитная архитектура, в вот когда бизнес вырастет, тогда всё переделаем". К сожалению, перенести действующий монолитный проект на микросервисную архитектуру в реальности окажется сложнее в десятки раз, чем написать всё заново "с нуля".
Мы сделаем Вашу финансовую платформу сразу на основе микросервисной архитектуры.
Микросервисную архитектуру можно сравнить с тротуарной плиткой на пешеходных дорожках. По мере роста вашего проекта добавляются всё новые плитки на вашей пешеходной дорожке. В случае, если какой-то компонент устарел, достаточно эту плитку заменить на новую.
Преимуществ у такой архитектуры много, но назову самые главные:
Первый пример. Руководство платформы P2P-кредитования с большим количество пользователей решило выйти на рынки стран с другой валютой. Платформа имела монолитную архитектуру и в ней была заложена только одна валюта - евро, а для выхода на рынки стран Швеции (шведские кроны), Польши (польские злотые), Чехии (чешские кроны) нужно было внедрить мультивалютность.
Внедрение подобного функционала у всей команды заняло месяцы, а разработка нового функционала ещё больше замедлилась. В случае с микросервисной архитектурой всё было бы значительно легче и быстрее.
Второй пример. Изначально конструктор сайтов запускался на родном языке и руководство не собиралась выходить на другие рынки. Проект имел монолитную архитектуру, а функционал быстро рос. Схема работы платформы представляла собой сложную паутину, в которой всё было связано со всем. Однажды бизнес решил выпустить версию платформы на других языках. По началу казалось, что достаточно добавить только языковых файлов и вот у нас весь интерфейс будет переведён.
На практике же пришлось переделать весь проект. Например, названия компаний и товаров в базе данных должны были теперь хранится не только на одном языке, а на каждом языке. Дублировать информацию было нельзя из-за бизнес-логики, нужно было именно названия хранить сразу для всех языков. Соответственно, это потянуло изменения интерфейсов кабинета и бэк-офиса. Изменения интерфейса потребовало изменение правил валидации входящих данных, шаблонов писем из-за разных принципов окончаний в разных языках, изменение тестов и т.д.
Поскольку всё было связано со всем, то принято было решение перейти на микросервисную архитектуру вместе с запуском новых языков. Процесс перехода от монолитной к микросервисной архитектуры занял больше года.
Третий пример. Финтех-платформа была сделана на старой версии PHP и Laravel. Переход на более новые версии, а также смена базы данных с MariaDB на PostgreSQL фактически было невозможны, поскольку всей команде пришлось несколько месяцев заниматься только процессом миграции.
Новые версии PHP и Laravel на тот момент могли бы ускорить работу проекта и дальнейшую разработку, но вот монолитная архитектура не позволяла обновить стэк технологий
.