Развиваем финтех-продукт для международного рынка

April 2024

Мокка – один из самых популярных BNPL-сервисов с клиентской базой более 16 млн. пользователей. Компания была основана в 2012 году и основная идея заключается в том, чтобы предоставить покупателям возможность совершать покупки и оплачивать их равными частями по удобному графику. Сервис оплаты частями Мокка работает с более чем 7,5 тыс. ритейлеров.

Ранее сервис Мокка работал под брендом «Рево Технологии». Evrone уже более пяти лет оказывает компании услуге по аутстаф-разработке. О нашем опыте мы ранее рассказывали здесь и здесь. С тех пор география проекта расширилась, а наши специалисты продолжают развивать сервис в составе внутренних команд международной группы компаний.

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

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

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

DevOps

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

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

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

Для ускорения развертывания приложений в Kubernetes мы использовали методологию GitOps и Flux CD, что помогло очень быстро развернуть stateful приложения (базы данных, брокеры сообщений) для каждого стенда. Мы настроили Continuous Integration (CI), деплой происходит полностью автоматически, исключая влияние человеческого фактора. Перед продакшном код проверяют в тестовом окружении.

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

Проблема с провайдером облачных услуг заставила команду задуматься о Cloud Agnostic подходе к инфраструктуре, который позволяет минимизировать зависимость от инструментов конкретной облачной платформы. Из-за GDPR и местных законов о защите данных, хостить российскую и европейскую части приходится у разных провайдеров, но унифицированная инфраструктура позволит значительно упростить обслуживание и развертывание в будущем. Поэтому теперь практикуется метод Cloud Agnostic: мы создаем Kubernetes в каждом секторе и разворачиваем все stateful-приложения с помощью Flux CD.

Frontend

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

Изначально почти весь фронтенд был написан на JavaScript и React, но со временем большинство приложений и лендингов мы вместе с командой переписали на TypeScript. Теперь фронтенд клиентских приложений общается с бэком через шаблон BFF, который заставляет их обращаться к прокси-сервису вместо непосредственно микросервиса, к которому направлен запрос. Это нужно, чтобы защитить конфиденциальные данные.

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

Проект постепенно готовится к переходу на Feature Sliced Design (FSD) - методологию организации кода, которая позволяет сохранять код в порядке в условиях регулярного изменения бизнес-требований. При таком подходе вместо стандартных компонентов используют три уровня абстракции: слои, слайсы и сегменты. Это позволит стандартизировать архитектуру frontend-приложений.

Отдельно есть сервис для генерации лендингов для партнеров. Он может быть отображен просто формой и встроен через iFrame. Это приложение работает на Headless CMS — это система при которой можно создавать универсальный контент для любых платформ: веб-сайта, веб- или мобильного приложения. По сути, это API с удобным интерфейсом, которое можно быстро сконфигурировать. Для проектов работающих на разные рынки, это очень удобно — не нужно поддерживать разные версии сайтов отдельно, можно легко и быстро генерировать новые лендинги. Админка сервиса реализована на Strapi.

Backend

B2C

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

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

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

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

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

Как мы писали выше, инфраструктуру сервиса готовят к переезду в кластеры Kubernetes. Бэкенд команда работает с DevOps специалистами, готовит сервисы к миграции и сообщает об ошибках. Бэкенд проекта — это монолит, окруженные сервисами. Все новые функции стараются реализовать именно в виде отдельного сервиса, который бы общался с остальными через API или Kafka.

B2B

Команда, которая работает с бизнесом, отвечает за интеграцию магазинов и онлайн-площадок, которые предлагают клиентам способ оплаты покупок частями от Мокка, а также за интеграцию со сторонними операторами, которые предоставляют услуги биллинга и скоринга (оценке благонадежности заемщика). Также мы помогли интегрировать новые личные кабинеты для B2B и B2C, настроить их обмен данными с бэкендом. Кабинет для магазинов-партнеров станет автономным мерчант-сервисом.

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

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

Заключение

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

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

 

Мы работаем с Evrone очень давно, их специалисты есть в каждой нашей команде. Мы довольны уровнем экспертизы и качеством их работы. Если нам требуются новые люди, мы всегда знаем, куда обратиться
Тимофей Шагун
Генеральный директор Мокка
Будем на связи
Прикрепить файл
Максимальный размер файла: 2 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.