Середа, 4 Березня, 2026
  • Розмістити рекламну новину
  • Мапа сайту
  • ru Русский
    • ar العربية
    • bg Български
    • zh-CN 简体中文
    • cs Čeština‎
    • nl Nederlands
    • en English
    • et Eesti
    • fr Français
    • de Deutsch
    • it Italiano
    • pl Polski
    • pt Português
    • ru Русский
    • es Español
    • uk Українська
МІСТО ДНІПРО
  • Дніпро
  • Україна
  • Війна в Україні
  • Світ
  • Політика
  • Фінанси
  • Спорт
  • Технології
  • Форум Дніпра
No Result
View All Result
МІСТО ДНІПРО
Home Технології

Стабильные версии на бэкапе, кастомные метрики и не только: лучшие практики для highload от FAVBET Tech

28.08.2024
A A
0
21
SHARES
694
VIEWS
Share on FacebookShare on Twitter

В преддверии боя Усика и Фьюри тысячи болельщиков делали ставки, кто выиграет. Их запросы – миллионы в секунду – получала и обрабатывала платформа, которую обслуживает FAVBET Tech. Артем Скрипник, CEO FAVBET Tech, ставит команде за этот вызов твердую пятерку: платформа ни разу не легла.

Достичь этого удалось благодаря подготовке системы к нагрузке. Какие лучшие практики используют для этого в FAVBET Tech и что делать, если спрогнозировать нагрузку невозможно, Артем Скрипник рассказывает в партнерском материале для ITC.

Содержание

  • 1 Какие системы считают высоконагруженными
  • 2 Как подготовить систему к высоким нагрузкам
  • 3 Как спрогнозировать нагрузку
  • 4 Что делать, если нагрузки непредсказуемые

Какие системы считают высоконагруженными

Когда я начал работать в компании, в IT-направлении было около 80 человек. Сейчас их 450. Они разрабатывают и поддерживают более 20 проектов, чуть менее половины из которых проекты с высокой нагрузкой.

Высокая нагрузка (highload) – термин, который описывает системы, обрабатывающие большой объем данных, клиентов и запросов за короткий промежуток времени.

Ключевые характеристики таких систем:

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

Проекты, где есть сотни тысяч клиентов и сотни миллионов транзакций в сутки, считаются highload-проектами.

Наш ключевой продукт – платформа для игорной индустрии, которая охватывает в том числе онлайн-казино и ставки на спорт. Она работает в Украине, Хорватии и Румынии и является примером проекта с высокой нагрузкой. Когда пользователь играет в слоты, он может делать ставки ежесекундно. Если подсчитать количество пользователей в пиковые часы, количество транзакций возрастает до десятков миллионов.

Артем Скрипник

CEO FAVBET Tech

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

Для FAVBET Tech этот вопрос остро встал из-за COVID-19, когда массово начали использовать онлайн-сервисы. Особенно это повлияло на онлайн-казино: за день здесь делается до десятков и сотен миллионов ставок.

Как подготовить систему к высоким нагрузкам

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

Но специальные технологии для высоконагруженных систем есть.

К примеру, несколько лет назад мы переписали наши core-сервисы на Erlang, потому что этот язык эффективно обрабатывает большое количество транзакций и использует при этом минимум ресурсов.

В то же время Erlang-специалистов мало на рынке, поэтому для клиентских сервисов мы используем Python, PHP и Node.js. Иногда это означает, что нам приходится обрабатывать данные на 20 серверах вместо пяти, но это классные технологии.

Также мы выбрали RabbitMQ вместо Kafka: хотя именно вторая считается лучшей для высоконагруженных систем. Впрочем, когда встал вопрос о миграциях на Kafka, мы обнаружили, что это будет стоить очень дорого. Надо было бы менять инфраструктуру и код и идти на рынок за новыми специалистами. А в результате мы бы получили улучшение всего на несколько процентов.

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

  1. Архитектура

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

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

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

Еще один важный аспект – балансировка нагрузки, то есть правильная настройка балансировщиков для корректного и равномерного распределения запросов между сервисами.

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

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

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

  1. Технологические подходы

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

Вернемся к примеру с новенькими «яблочными» гаджетами. Предположим, есть проблема – база данных не была оптимизирована для такого количества одновременных запросов (предзаказов). Запросы становятся медленными, время отклика растет, и система начинает «тупить».

Последствия:

  • Сбои в функционировании сайта. Из-за перегрузки базы данных веб-сайт может периодически выходить из строя, приводя к потере потенциальных продаж и недовольству клиентов.
  • Ошибки при обработке заказов. Система может неправильно обрабатывать заказы, например, позволяя нескольким клиентам «купить» последний товар в запасе, что приводит к конфликтам и потребности в отмене заказов.
  • Утрата данных. Из-за высокой нагрузки возможны ситуации, когда данные не сохраняются должным образом, что приводит к потере важной информации о клиентах и ​​заказах.
  • Ухудшение репутации бренда. Частые сбои и медленная реакция сайта могут повлиять на впечатления клиентов от бренда, снижая лояльность и потенциально отпугивая новых клиентов.

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

Кроме того, технологические особенности охватывают разные мониторинги и метрики. Есть общедоступные метрики, такие как потребление сервисом RAM и CPU, а есть более кастомные, например, использование памяти внутренними процессами сервиса. Они и дают понять, что происходит внутри сервиса.

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

На некоторые метрики мы настраиваем алерты. К примеру, когда использование оперативной памяти достигает 75%, это сигнал задуматься об оптимизации сервиса. Это не значит, что он уже не работает, но сигнализирует о необходимости проверки.

  1. Организационные подходы

В FAVBET Tech есть отдельная команда, которая занимается нагрузочным тестированием. Она создает скрипты, которые моделируют поведение пользователей и нагрузку на систему. Это особенно важно для подготовки к большим событиям, когда мы ожидаем условные 100 тыс. клиентов и 500 млн ставок.

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

У компани есть пул performance-тестов для каждого направления, где самая большая нагрузка. Хорошей практикой является нагрузочное тестирование системы в нерабочие часы, например в 4-5 утра в понедельник, когда на платформе минимум клиентов.

Как спрогнозировать нагрузку

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

Как технологическая компания FAVBET Tech не управляет бизнесом, а поставляет программное обеспечение. Например, один из наших клиентов – «Favbet Україна». Мы понимаем динамику и тенденции их бизнеса, знаем некоторые характеристики и метрики, которые можем собрать исторически и спрогнозировать.

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

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

К примеру, бои Кличко и Усика всегда вызывают большой интерес. Последний поединок Усика с Тайсоном Фьюри побил все рекорды нагрузки на платформу. Но мы ни разу не упали, потому что подготовились к этому заранее. Ставлю команде за это твердую пятерку.

Что делать, если нагрузки непредсказуемые

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

Но раньше так не было. Были определенные проблемы с нагрузкой, и мы не всегда успевали понять, почему они возникли. Были и кейсы, где нельзя было спрогнозировать нагрузку. К примеру, когда в прошлом году в Украине закрылся один из крупнейших операторов и огромное количество его клиентов перешли к другим игрокам рынка.

Главное правило в таких случаях: когда не удается оптимизировать код, нужно по крайней мере иметь возможность «засыпать все железом». Использовать не пять серверов, а 25. Это обойдется дорого, но сервис не ляжет. Вы выиграете время на необходимые технические изменения, а даунтаймы будут минимальными только на миграции сервисов на новые, более мощные, серверы.

Визуальное оформление статьи осуществлено командой ITC.UA

Previous Post

Специальная дуровская операция

Next Post

Вибухи у Кривому Розі: збільшилась кількість постраждалих

ТОП НОВИНИ

Самые интересные новые игры марта 2026 года
Технології

Самые интересные новые игры марта 2026 года

04.03.2026
0

После относительно компактного, но насыщенного февраля март 2026-го выглядит еще масштабнее. Здесь и громкие AAA-релизы вроде новой игры от Bungie и долгожданного Crimson Desert, и...

Read moreDetails
Warner Bros. начала работу над фильмом “Игра престолов”

Warner Bros. начала работу над фильмом “Игра престолов”

04.03.2026
Вышли Apple MacBook Pro с M5 Pro и M5 Max: +30% производительности CPU, +50% GPU и 2х скорости SSD

Вышли Apple MacBook Pro с M5 Pro и M5 Max: +30% производительности CPU, +50% GPU и 2х скорости SSD

04.03.2026
К 2050 году половина людей будет иметь это заболевание: виноваты не гаджеты, а “темный” образ жизни

К 2050 году половина людей будет иметь это заболевание: виноваты не гаджеты, а “темный” образ жизни

04.03.2026
Apple MacBook Air M5 подорожал на $100: более быстрый чип, больший SSD, 18 часов автономности

Apple MacBook Air M5 подорожал на $100: более быстрый чип, больший SSD, 18 часов автономности

04.03.2026
Обзор Fall of an Empire — оттянуть неизбежное

Обзор Fall of an Empire — оттянуть неизбежное

03.03.2026
Новое видео, вероятно, демонстрирует сверхсекретный истребитель США шестого поколения F-47

Новое видео, вероятно, демонстрирует сверхсекретный истребитель США шестого поколения F-47

03.03.2026
Next Post
Вибухи у Кривому Розі: збільшилась кількість постраждалих

Вибухи у Кривому Розі: збільшилась кількість постраждалих

0 0 голоси
Рейтинг статьи
Підписатися
Сповістити про
guest
guest
0 комментариев
Найстаріші
Найновіше Найбільше голосів
Зворотній зв'язок в режимі реального часу
Переглянути всі коментарі

Опитування

Пішли б ви на поступки русні через відсутність світла\тепла?
Results

КАТЕГОРІЇ НОВИН

  • Війна в Україні
  • Дніпро
  • Політика
  • Світ
  • Спорт
  • Технології
  • Україна
  • Фінанси

ПОПУЛЯРНІ НОВИНИ

  • Названо найкращих гравця та тренера 5-го туру УПЛ

    Названо найкращих гравця та тренера 5-го туру УПЛ

    26 shares
    Share 10 Tweet 7
  • Легендарний сезон “Змiїнi Дари” у Casino Joker Win – вигравайте великі призи!

    29 shares
    Share 12 Tweet 7
  • 700 мільйонів гривень: українцям повертають гроші за покупки

    21 shares
    Share 8 Tweet 5
  • “єВідновлення” расширяется: заработал компенсационный механизм за разрушенное жилье

    21 shares
    Share 8 Tweet 5
  • Бесплатная компьютерная томография: где сделать в Днепре и области

    43 shares
    Share 17 Tweet 11
  • Про нас
  • Політика конфіденційності
  • Наші контакти
  • Реклама
Редакція сайту: dneprcity.net@gmail.com
Реклама: digestmediaholding@gmail.com

Використання будь-яких матеріалів, опублікованих на сайті, дозволяється виключно за умови обов’язкового посилання на ресурс Dneprcity.net. Це правило стосується всіх типів контенту, включаючи новини, аналітичні огляди, авторські статті, мультимедійні матеріали, інтерв’ю, огляди подій та інші публікації, розміщені на сайті. Для забезпечення прозорості та коректності джерела використання матеріалів, посилання має бути активним та відкритим для індексації пошуковими системами.

Інтернет-ЗМІ та онлайн-платформи, що публікують матеріали, зобов’язані розміщувати посилання у підзаголовку статті або в першому абзаці тексту.

Редакція сайту залишає за собою право не поділяти точки зору авторів опублікованих матеріалів. Публікації можуть містити особисті оцінки, аналітичні висновки чи суб’єктивні думки авторів, тому відповідальність за зміст републікованих матеріалів, їхню точність та можливі наслідки використання інформації повністю покладається на джерело або автора публікації.

© 2010-2026 Новини міста Дніпро онлайн. All Rights reserved

No Result
View All Result
  • Дніпро
  • Україна
  • Світ
  • Політика
  • Спорт
  • Технології
  • Фінанси
  • Форум

Використання будь-яких матеріалів, опублікованих на сайті, дозволяється виключно за умови обов’язкового посилання на ресурс Dneprcity.net. Це правило стосується всіх типів контенту, включаючи новини, аналітичні огляди, авторські статті, мультимедійні матеріали, інтерв’ю, огляди подій та інші публікації, розміщені на сайті. Для забезпечення прозорості та коректності джерела використання матеріалів, посилання має бути активним та відкритим для індексації пошуковими системами.

Інтернет-ЗМІ та онлайн-платформи, що публікують матеріали, зобов’язані розміщувати посилання у підзаголовку статті або в першому абзаці тексту.

Редакція сайту залишає за собою право не поділяти точки зору авторів опублікованих матеріалів. Публікації можуть містити особисті оцінки, аналітичні висновки чи суб’єктивні думки авторів, тому відповідальність за зміст републікованих матеріалів, їхню точність та можливі наслідки використання інформації повністю покладається на джерело або автора публікації.

© 2010-2026 Новини міста Дніпро онлайн. All Rights reserved

wpDiscuz
0
0
Буду рада вашим думкам, прокоментуйте.x
()
x
| Відповісти