UA RU
logo

«От геймдева отличаемся только выводом денег». Как устроена разработка гемблинга

- 29 Dec 2021

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

Мы поговорили об этом с PHP Development Manager Михаилом Горишным и Head of Business Analysis Захаром Хрыстычем. Они работают в Betinvest – IT-компании, которая делает платформы для ставок, в основном для FAVBET.

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

Партнер проекта?

Ускорили обработку данных в 40 раз

«К гемблингу консервативные люди относятся как к секс-шопам: вещи-то нормальные, но реагируют на них иногда негативно», – шутит Михаил Горишный, руководитель PHP-разработчиков в Betinvest. Он пришел в компанию в 2020 году: до этого работал в сервисе email-рассылок, но о новой работе рассказывать не стесняется.

«Недавно мы с командой пришли к операционным менеджерамотвечают за все, что происходит на сайте в реальном времени, – делится Михаил. – Ребята пожаловались, что из-за медленной работы базы данных им становится все сложнее анализировать статистику».

Михаил Горишный, руководитель PHP-разработчиков в Betinvest.

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

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

Сервисы FAVBET собирают данные о тысячах клиентов: в какие игры они заходят, сколько тратят денег. «Для записи и анализа мы использовали базу PostgreSQL, но постепенно она перестала справляться с нагрузками, – объясняет Михаил. – Мы много раз ее оптимизировали, и это перестало помогать. Тогда я предложил подключить базу ClickHouse».

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

На разработку решения ушло три месяца. Михаил спроектировал архитектуру взаимодействия сервисов с новой базой, затем ее подключили и наполнили данными, чтобы протестировать устойчивость. «ClickHouse показала отличный результат: она не падала при пиковых нагрузках и анализировала нужные данные в 40 раз быстрее, – говорит Михаил. – Все это время PostgreSQL продолжала работать, и интеграция нового решения не сказалась на клиентах».

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

Хочу работать в FAVBET

Справились с нагрузками в пандемию

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

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

«Мы с PHP-командой пытались оптимизировать базу данных, но исправить ситуацию не удавалось, – говорит Михаил. – С обработкой big data PostgreSQL не справлялась: время отклика базы данных постоянно увеличивалось».

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

Сначала команда изучила, сколько раз в день посылали каждый запрос, среднее и максимальное время ответа, число запрашиваемых данных. Затем провели оптимизацию всех отдельных запросов. «Например, оказалось, что ежедневный запрос на подсчет всех транзакций по клиенту грузит базу и не дает ничего полезного, – рассказывает Михаил. – Его удалили, и база стала работать быстрее».

Еще на время ответа влиял размер базы: в ней было множество отдельных таблиц. «Мы попробовали репликацию метод, который позволяет распределить нагрузку базы данных с одного на несколько серверов, например, Master и Slave, но она нам не подошла. Иногда данные в Master – основном сервере и Slave, который копирует с него все изменения, не были синхронизированы, – объясняет Горишный. – Мы работаем с данными в режиме реального времени и не можем такого допустить».

Тогда провели партиционирование: администраторы разбили базу PostgreSQL на партиции по дням. Время отклика базы данных существенно уменьшилось.

Еще Михаил ввел два обязательных правила для написания кода:

  1. Обязательные код-ревью. Команда теперь перепроверяет код друг у друга на ошибки, неточности и общий стиль программирования.
  2. Код больше не пишут с привязкой к фреймворку Laravel. Теперь с помощью шаблонов проектирования пишут код на чистом PHP – такой код быстрее выполняется и тратит меньше ресурсов серверов.

«Эта история случилась, когда я только пришел в компанию, – рассказывает Михаил. – Теперь мы научились думать наперед. FAVBET выстоит, даже если введут новый локдаун».

Смотреть открытые вакансии

Научились находить ошибки за пару секунд

Захар Хрыстыч до Betinvest уже шесть лет работал в сфере гемблинга. В сентябре 2020 года он пришел в команду на должность Head of Business Analysis и застал такой случай.

В одну из ночей команда службы поддержки следила за работой платформы. Все было спокойно, но тут пришло уведомление: система мониторинга обнаружила в игре подозрительную активность – клиенты постоянно выигрывали деньги. Дежурные отключили проблемную игру и разбудили начальника отдела. Первой мыслью было, что FAVBET взломали.

«Все оказалось проще, – вспоминает Захар Хрыстыч. – На стороне компании-провайдера, которая предоставила игру FAVBET, произошла ошибка, и сбился показатель RTP для выигрыша в казино».

Захар Хрыстыч, Head of Business Analysis

RTP – return to player – показывает, сколько денег в среднем вернется пользователю с одного прогноза. Для каждой игры RTP свой: нормой считается показатель в пределах 94–99%. Но из-за ошибки провайдера он поднялся до 150%, и за час клиенты выиграли 1 млн грн.

Через пару дней разработчик починил игру, и ее вернули на сайт. А команде предстояло придумать, как сделать так, чтобы чужие ошибки не влияли на работу платформы. «Наши сервисы собирают big data со всех игр. Раньше они направляли данные в базу PostgreSQL, – рассказывает Захар. – Она анализировала их и присылала уведомления об ошибках раз в 60 минут. Мы поняли, что этой частоты мало, и решили ускорить анализ».

Сначала разработчики проанализировали работу системы уведомлений и выяснили, что она собирает данные со всех сервисов FAVBET. Чтобы ускорить работу с ними, выбрали базу ClickHouse.

«Теперь база анализирует больше данных и делает это в реальном времени, – объясняет Захар. – Мы можем определить повышение RTP или другую ошибку в играх за пару секунд».

«Если система мониторинга видит, что число ошибок увеличилось или клиенты много выигрывают у какого-то провайдера, она посылает в нашу группу в Microsoft Teams уведомление, – подводит итог Захар. – А мы можем вручную проверить, что происходит, быстро среагировать и исправить ситуацию, если нужно».

Стать частью команды FAVBET

Почему нам нравится работать с FAVBET

«Наш бизнес очень похож на геймдев, только с системой вывода денег», – отмечает Захар. Из-за гемблинговой специфики рабочие задачи специалистов кардинально не отличаются от задач в других IT-компаниях. А соцпакет и бонусы в FAVBET не уступают лидерам украинского IT-рынка:

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

В офисе есть игровые приставки – вечером после работы можно устроить с коллегами турнир. А для тех, кто любит приезжать на работу на велосипеде, есть душевая комната. Кстати, в FAVBET есть свои команды по футболу и баскетболу, они регулярно тренируются и участвуют в любительских соревнованиях.

«Мы за баланс работы и жизни, у меня в отделе нет переработок, – говорит Михаил. Сейчас мы работаем “наперед” над возможными проблемами, а не тушим пожары».

Еще один плюс работы с FAVBET – глубокое погружение в продукт. «Наши ребята понимают, как работает весь бизнес, – отмечает Захар Хрыстыч. – Вы будете знать столько же, сколько семь специалистов в других компаниях. Вне FAVBET я не могу себе это представить».

Фотограф: Владимир Герасимов

Партнер проекта?

 

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: