Хмарний хостинг під час пікових навантажень: кейс сезонного розпродажу

Сезонність — головний ворог фіксованої інфраструктури. Одинадцять місяців на рік сервер простоює на 20% завантаження, а в один тиждень не витримує трафіку.

Купувати ресурси під пік означає переплачувати весь рік; не купувати — втрачати гроші саме тоді, коли їх найлегше заробити. Хмарна модель існує саме для цієї задачі.

Вихідна ситуація

Український магазин товарів для активного відпочинку. Звичайна відвідуваність — близько 1 200 осіб на добу. Два виражені піки на рік: передноворічний період і весняний старт сезону. У піки трафік зростає у 5–7 разів, причому основний удар припадає на кілька годин після старту розсилки.

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

Що зробили в підготовці

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

Що показало тестування

Найцікавіше знайшлося не там, де очікували. Вузьким місцем виявився не веб-сервер, а один запит до бази на сторінці фільтрації, який працював без індексу. На звичайному трафіку він додавав непомітні 80 мілісекунд, під навантаженням у сім разів вищим — блокував решту запитів і клав усю систему. Додавання індексу коштувало п’ять хвилин роботи і зняло проблему повністю.

Це типова історія: масштабування ресурсів маскує проблеми коду до певної межі, після якої масштабувати вже нема куди. Тому навантажувальне тестування має передувати збільшенню тарифу, а не навпаки.

Як пройшов сам пік

За дві години до старту розсилки конфігурацію збільшили вдвічі. У момент піку час відповіді тримався в межах 400 мілісекунд, помилок не було. Через три доби ресурси повернули до звичайного рівня. Загальна переплата за підвищену конфігурацію склала суму, яку магазин заробляє за перші пів години розпродажу.

Саме в цьому й полягає економічна логіка: хмарний хостинг для сайту дозволяє платити за пікову потужність рівно стільки днів, скільки вона потрібна, а не цілий рік.

Чекліст підготовки до сезону

Що робити після піку

Найкорисніша частина роботи починається наступного дня. Зафіксуйте фактичні цифри: пікову кількість одночасних користувачів, максимальний час відповіді, використання пам’яті й процесора, кількість помилок. Ці дані стануть основою для планування наступного сезону і врятують від вгадування.

Окремо перегляньте, які сторінки виявилися найповільнішими під навантаженням. Зазвичай це не головна, а сторінки фільтрації каталогу й кошик. Оптимізація саме цих двох вузлів дає більший ефект, ніж будь-яке подальше нарощування ресурсів.

Коли хмара не потрібна

Чесне застереження: якщо ваш трафік рівний протягом року, гнучкість хмарної моделі ви не використаєте, а надбавку за неї платитимете щомісяця. У такому випадку фіксована конфігурація на віртуальному чи виділеному сервері обійдеться дешевше за той самий обсяг ресурсів. Хмара — інструмент під конкретну задачу нерівномірного навантаження, а не універсально краще рішення.

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

Читайте также:

Leave a Reply

Your email address will not be published. Required fields are marked *

Заполните поле
Заполните поле
Please enter a valid email address.
Вы должны согласиться с условиями для продолжения

Потяните ползунок вправо *

Menu