«Highload — це коли звичайне не працює». Як українські онлайн-сервіси витримують трафік, що росте, як на стероїдах
Як Favbet Tech, Boosteroid і «Ланет» витримують пікові навантаження і готуються до highload по-дорослому
Як Favbet Tech, Boosteroid і «Ланет» витримують пікові навантаження і готуються до highload по-дорослому
Як Favbet Tech, Boosteroid і «Ланет» витримують пікові навантаження і готуються до highload по-дорослому
Що робить компанія, коли на її сервер одночасно заходять десятки тисяч користувачів? Коли маркетинг зненацька запускає акцію, стримінг має видати зображення без затримки, а мережевий трафік зростає в рази? Ті, хто працюють із highload, кажуть: стандартні підходи тут уже не рятують. dev.ua дізнався, як із цим справляються у Favbet Tech, Boosteroid і «Ланеті».
«Я б сказав, що система стає highload, коли її вже не можна будувати звичайними підходами. Коли треба бути готовим до екстриму», — каже Артем Жданов, development manager у Favbet Tech.
І додає: дивитися лише на кількість запитів — хибно. Для одного продукту й 6000 запитів на секунду — виклик. Для іншого — нормальний день.
Ключове — чи закладено в архітектуру здатність тримати піки.
Favbet Tech готується заздалегідь — система проєктується так, щоб не «гасити пожежу» у розпал великого футбольного матчу чи промокампанії.
Інфраструктура:
«Kubernetes додає або прибирає вузли відповідно до метрик. Це дає змогу обробляти трафік у реальному часі, а не ставити запити в чергу», — каже Жданов.
Якщо відомо про подію (матч, акція) — команда прораховує очікуване навантаження, оцінює черги, перевіряє час обробки. Але іноді буває сюрприз. «Маркетинг вирішив видати бонуси — і бах! Десятки тисяч юзерів в день. До цього все було спокійно. Такі піки треба витримати».
Найбільші навантаження, які доводилося тримати, це півмільйона користувачів. Але справа не лише в кількості. Важливо, що кожен проходить через складний player journey з кількох етапів, де бонуси переходять з одного стану в інший згідно з чіткими правилами. Частину операцій неможливо розпаралелити — вони мають бути послідовними.
«І хоча загалом півмільйона — не космос, до цього навантаження система має бути готова», — каже Жданов.
Що роблять, якщо не витримує:
Іван Швайченко, CEO Boosteroid, який дає змогу грати у важкі ігри просто в браузері, каже: інфраструктура у хмарі — фінансовий глухий кут.
«Оренда серверів у гіперскейлерів, як-от AWS, Azure чи Google Cloud, дуже швидко стає фінансово невигідною. Особливо, якщо у вас масштабний проєкт із GPU», — каже він.
Що роблять:
«Це дозволяє тримати ціну не вище $10 для користувачів. І це критично для нас», — підкреслює Іван Швайченко.
Для інтернет-провайдера «Ланет» highload — це вечірній трафік, коли сотні тисяч абонентів заходять у стримінг, YouTube і TikTok.
Маріан Івасюк, директор компанії, розповідає:
«Зазвичай ми намагаємось витиснути максимум трафіку з кожного юніта обладнання», — каже Івасюк.
Навіть у highload-інфраструктурі є місце для штучного інтелекту — він може передбачити пікові навантаження й заздалегідь зменшити інтенсивність.
«Якщо AI бачить, що запити ростуть, він може зменшити швидкість їх обробки, щоб база не впала. Це цілком реально, навіть на рівні Kubernetes», — каже Жданов із Favbet.
У майбутньому highload-системи змінить WebAssembly — технологія, яка дозволяє запускати код на будь-якому хості з максимальною швидкістю.
«Деякі сервіси стартують за долі секунди й займають усього 30 МБ. Це прорив. Amazon уже пропонує запуск через готові образи — контейнер навіть не потрібно завантажувати з нуля», — каже Жданов.
У Favbet Tech кажуть: у них не бояться віддавати інженерам свободу і дають працювати не з рутиною, а зі справжніми інженерними задачами.
«Якщо ти хочеш автоматизувати, оптимізувати, прибрати зайве — тобі до нас. У нас цінують людей, які хочуть будувати, а не просто виконувати», — говорить Жданов.
Ті, хто працює з highload, часто виростають разом із системою — досвід не вивчиш на курсах, його треба прожити.
«Наші спеціалісти росли разом із продуктами. Інакше не буває — ти не навчишся працювати з highload, якщо не бачив справжнього highload», — резюмує Маріан Івасюк з «Ланету».
Highload — це коли все вже не за інструкцією. І коли все одно працює.