Лотерейный процессинг во многом похож на банковский. Чтобы он не сбоил, его обслуживают 430 человек

Особенности ИТ-направления «Столото».

Лотерейный процессинг во многом похож на банковский. Чтобы он не сбоил, его обслуживают 430 человек

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

За последние три года штат ИТ-специалистов увеличился с 250 до 430 человек. Столько людей нужно, чтобы поддерживать работоспособность разрастающейся инфраструктуры.

У лотерейных и банковских операций много общего

В последнем новогоднем тираже «Русского лото» участвовало более 50 млн билетов. Примерно по каждому третьему компания за короткий срок выплатила выигрыш — миллионы транзакций в день.

Чтобы выдержать такие нагрузки, «Столото» использует больше сотни виртуальных серверов. Подсистемы организованы так, чтобы нагрузка распределялась равномерно.

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

Лотерейный процессинг — обработка информации во время платёжной операции — во многом похож на банковский:

  • Он транзакционный — алгоритмы в реальном времени обрабатывают огромное количество небольших транзакций.

    Транзакции — покупки билетов и выплаты выигрышей — выполняются в соответствии с принципами атомарности и изолированности.

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

  • Сложный. Прежде чем клиент увидит результат запроса, транзакция проходит длинный путь через множество компонентов процессинга. Например, при покупке билета в мобильном приложении «Столото» система проверяет баланс счёта, уменьшает его на нужную сумму, сохраняет новый баланс, отправляет деньги на другой счёт.
  • И доступный. Лотерейная система, как и банковская, работает круглосуточно при нескончаемом потоке запросов. Поэтому важно обеспечить её устойчивость к высоким нагрузкам и возможным аппаратным и сервисным сбоям.

Скорость внедрения новых агентов и продуктов значительно выросла

В 2011 году «Столото» продавала в онлайне только две лотереи, а сейчас — уже пару десятков. У каждой своя механика и способ хранения тиражных и транзакционных данных. Параллельно развивается сеть дистрибуции, появляются новые платёжные системы. Всё это требует постоянной модернизации ИТ-инфраструктуры.

Лотерейный процессинг во многом похож на банковский. Чтобы он не сбоил, его обслуживают 430 человек

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

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

Сложность внедрения новой лотереи в процессинг зависит от следующих характеристик:

  • Каналы, по которым её будут продавать.
  • Тип продукта — бумажная моментальная лотерея, тиражная лотерея с предустановленными комбинациями (например, «Русское Лото») или лотерея со ставкой, формируемой участником (например, «5 из 36»).
  • Формат лотерейной ставки — количество игровых полей на билете, как они должны быть заполнены, возможность сделать расширенную ставку и прочее.
  • Место проведения тиража и периодичность.

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

Дополнительные сложности вызывает ещё и разнообразие платёжных систем — в интеграции каждой есть особенности:

  • Механизмы авторизации операций и конфиденциальности информационного обмена.
  • Протоколы и общие принципы взаимодействия с платёжной системой.
  • Механизмы проведения сверок транзакций.
  • Уровень обслуживания, предоставляемый платёжной системой.

Для хранения информации разработали новую базу данных

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

Лотерейный процессинг во многом похож на банковский. Чтобы он не сбоил, его обслуживают 430 человек

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

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

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

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

Кластеризованная база данных работает под управлением СУБД MariaDB. Перед переносом данных разработчики «Столото» больше года работали с СУБД по другим проектам, чтобы увидеть все подводные камни системы. После испытаний многостраничное файловое хранилище с индексами перенесли в новую базу данных — на разработку решения ушло полгода.

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

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

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

Спрос на специалистов постоянно растёт

В ближайших планах ИТ-департамента — разработка новой системы работы с оперативными данными. Она позволит повысить производительность и надежность, а также расширить возможности лотерейного процессинга.

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

58 комментариев

Комментарий недоступен

24
Ответить

Мы не монополисты в области распространения билетов :) А вот лотереи у нас только государственные, это верно. 

1
Ответить

Комментарий недоступен

Ответить

Комментарий недоступен

15
Ответить

Здравствуйте! Все наши победители — реальные участники.

1
Ответить

Каналы продаж в скором времени могут сократиться только до онлайна, особенно если карантинная история не закончится в ближайшие 2-3 месяца, а она видимо не собирается заканчиваться...

4
Ответить