Научная статья на тему 'Концепция высокопроизводительной системы обнаружения аномалий в потоке платежей'

Концепция высокопроизводительной системы обнаружения аномалий в потоке платежей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
96
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫСОКИЕ НАГРУЗКИ / ОБРАБОТКА ДАННЫХ / ОБНАРУЖЕНИЕ АНОМАЛИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ерастов Фёдор Андреевич, Куцев Сергей Олегович

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

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

Текст научной работы на тему «Концепция высокопроизводительной системы обнаружения аномалий в потоке платежей»

КОНЦЕПЦИЯ ВЫСОКОПРОИЗВОДИТЕЛЬНОЙ СИСТЕМЫ ОБНАРУЖЕНИЯ АНОМАЛИЙ В ПОТОКЕ ПЛАТЕЖЕЙ Ерастов Ф.А.1, Куцев С.О.2

1Ерастов Фёдор Андреевич - магистрант;

2Куцев Сергей Олегович - магистрант, кафедра информационных систем, Институт информационных систем и технологий Федеральное государственное бюджетное образовательное учреждение высшего образования Московский государственный технологический университет "СТАНКИН",

г. Москва

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

Ключевые слова: высокие нагрузки, обработка данных, обнаружение аномалий.

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

Качества современного высокопроизводительного приложения:

1. Скорость обработки большого количества обращений - достигается за счет использования современных подходов к потоковой обработке данных. Потоковые данные - это данные, формируемые непрерывно тысячами источников, которые обычно отправляют записи данных одновременно и небольшими объемами (на уровне нескольких килобайтов) [1]. Технологии, реализующие подобные подходы: высокопроизводительная очередь - Apache Kafka и Spark Streaming - расширение системы распределенных вычислений Apache Spark, которое обеспечивает масштабируемую высокопроизводительную отказоустойчивую обработку потоковых данных. Также, в качестве фронт-енд сервиса, который бы первым в цепочке принимал на себя поток транзакций из сети, и отправлял их в очередь на обработку, предлагается использовать событийно-ориентированный фреймворк Vert.x, который основан на парадигме реактивного программирования и реализует модель акторов [2], позволяющей организовать параллельные вычисления, а следовательно позволяет масштабировать систему, и обслуживать огромное количество запросов одновременно.

2. Выполнение сложных вычислений с использованием моделей машинного обучения - подразумевает большой набор мощных вычислительных узлов, способных параллельно обрабатывать тысячи сложных вычислений. Данный критерий осуществим с помощью технологии Apache Spark - быстрой и универсальной кластерной вычислительной системы распределенных вычислений. Он предоставляет высокоуровневые API-интерфейсы на Java, Scala, Python и R, а также оптимизированный движок.

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

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

Последним звеном в цепочке являются непосредственно сами приложения и очереди, которые принимают на себя эту нагрузку, и также нуждаются в масштабировании и распределении нагрузки. Для этого в лучших практиках к построению современных приложений используются системы контейнеризации с помощью технологии Docker [3], и последующей оркестрации этих контейнеров с помощью Kubernetes [4]. Контейнеризация стала основной тенденцией в разработке программного обеспечения в качестве альтернативы или дополнения к виртуализации. Она включает в себя инкапсуляцию или упаковку программного кода и всех его зависимостей, чтобы он мог работать равномерно и согласованно в любой инфраструктуре. А оркестрация, в свою очередь, автоматизирует развертывание, управление, масштабирование и создание сетей контейнеров. Непосредственно технология Kubernetes вводит следующий термин - pod. Pod -это наименьшая развертываемая вычислительная единица, которую можно создавать и управлять ею в Kubernetes.

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

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

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

Помимо всего, и балансировщики и кластер необходимо распределять равномерно по нескольким дата-центрам, разнесенным территориально на большие расстояния, тем самым уменьшая вероятность одновременного выхода из строя сразу всех серверов (например, если в области, в которой расположен дата центр полностью отключается электричество). Такой подход называется Cross DC Clustering.

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

5. Надежные хранилища - также является ключевым компонентом в современных приложениях, как например, в представленной в данной работе системе, надежные хранилища требуются как для фиксации результатов анализа, так и для постоянного хранения истории транзакции и информации о пользователях. Современные хранилища также требуют подходы к масштабированию для постоянного наращивания свободного места под приходящие транзакции, а также практики отказоустойчивости, и толерантности выпадения нескольких физических серверов из хранилища. Тем самым данные должны быть либо точно всегда зафиксированы в одном экземпляре, либо система должна вернуть ошибку, пограничных условий не предполагается. В данной концепции системы для хранения транзакций предлагается использовать кластер базы данных Apache Cassandra [5] -это NoSQL [6] система управления базами данных, предназначенная для обработки

I 13 I

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

Итоговая концепция системы, учитывающая все вышеописанные критерии, представлена на рисунке 1.

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

Благодаря использованию предлагаемой схемы, получается отказоустойчивая, масштабируемая, высокопроизводительная система, способная бесперебойно обслуживать огромное количество запросов в режиме 24/7.

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

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

Список литературы

1. Статья «Что такое потоковая передача данных?». [Электронный ресурс]. Режим доступа: https://aws.amazon.com/ru/streaming-data/ (дата обращения: 10.05.2020).

2. Статья «Модель акторов». [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/ Модель_акторов/ (дата обращения: 10.05.2020).

3. Документация «Docker». [Электронный ресурс]. Режим доступа: https://docs.docker.com/ (дата обращения: 15.05.2020).

4. Статья «Что такое Kubernetes?». [Электронный ресурс]. Режим доступа: https://kubernetes.io/ru/docs/concepts/overview/what-is-kubernetes/. (дата обращения: 15.05.2020).

5. Документация «Apache Cassandra». [Электронный ресурс]. Режим доступа: https://cassandra.apache.org/doc/latest/ (дата обращения: 15.05.2020).

6. Статья «NoSQL». [Электронный ресурс]. Режим доступа: https://www.bigdataschool.ru/wiki/nosql/ (дата обращения: 10.05.2020).

i Надоели баннеры? Вы всегда можете отключить рекламу.