Особенности разработки в финтехе: обзор успешных практик

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

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

Больше не нужно искать и обзванивать каждое диджитал-агентство
Создайте конкурс на workspace.ru — получите предложения от участников CMS Magazine по цене и срокам. Это бесплатно и займет 5 минут. В каталоге 15 617 диджитал-агентств, готовых вам помочь — выберите и сэкономьте до 30%.
Создать конкурс →

Аналитика

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

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

Еще сюда мы отнесли:

  • Соблюдение нормативных требований. Банки подчиняются строгим правилам и стандартам, установленным регулирующими органами: например, законы о конфиденциальности данных, требования по борьбе с отмыванием денег (AML), правила «знай своего клиента» (KYC) и другие финансовые правила.

  • Масштабируемость и надежность. Крупные банки очень быстро растут, поэтому нуждаются в обработке возросших объемов транзакций. Банковские IT-системы должны быть масштабируемыми, чтобы соответствовать растущим требованиям клиентов и количеству операций.

  • Омниканальность. Клиенты получают услуги банков через различные каналы: такие как филиалы, банкоматы, платформы онлайн-банкинга, мобильные приложения и колл-центры. IT-системы необходимо проектировать, учитывая эти многоканальные взаимодействия.

Java

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

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

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

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

Производительность

Но тем не менее, Java не самый быстрый, если сравнивать его с языками С/С++, Golang и даже .NET, в то время как финтех — очень конкурентная сфера, где высокая скорость и производительность играют ключевую роль.

Например, на одном интересном проекте криптосканера для трейдеров на бэкенде мы выбрали две мощных технологии: основную бизнес-логику написали на RoR, а все высоконагруженные части отвели микросервисам на Golang. На фронте мы работали с React.js, что в свою очередь также обеспечило быстродействие и реактивность системы.

В итоге вся система спроектирована так, чтобы трейдеры смогли в разы быстрее:

  1. получить необходимые данные и актуальную рыночную информацию;

  2. принять решение о покупке/продаже криптовалюты.

Рефакторинг

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

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

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

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

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

На том же проекте для биржи микросервисная архитектура позволила нашей команде взаимодействовать и со старыми сервисами проекта, сократив при этом показатель time-to-market в 1,5 раза: мы могли быстрее доставлять обновления и без потери времени и клиентов изменять логику под гибкие запросы партнеров и интересы посетителей.

Сравнение микросервисной и монолитной архитектуры. Источник

Apache Kafka

А чтобы все отдельные компоненты микросервисной архитектуры «корректно» общались между собой, отправляли запросы и передавали данные о своих изменениях друг другу, мы часто (на 4 из 5 проектах) подключаем Apache Kafka.

Одно из важных преимуществ Kafka для микросервисной архитектуры — это асинхронная коммуникация. Она позволяет микросервисам обмениваться данными и событиями в режиме реального времени без прямой связи или блокировки друг друга. Асинхронная коммуникация снижает зависимость между сервисами и позволяет им масштабироваться независимо, не блокируя друг от друга.

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

Полный текст статьи читайте на CMS Magazine