Kaspi Жұма и Черная Пятница: как подготовить интернет-магазин к х10 трафику и не умереть
Салем, хастлеры, фаундеры и суровые B2B-директора! На связи Шарафутдинов Р. На календаре август, а значит, самые жаркие дни для казахстанского e-commerce уже не за горами. Kaspi Жұма, 11.11, Черная Пятница, Новогодние распродажи — это время, когда маркетологи открывают шампанское, а сисадмины и DevOps-инженеры закупаются корвалолом и энергетиками.
Представьте знакомую картину: вы влили миллионы тенге в таргетированную рекламу, подготовили убойные офферы, нагнали трафик. Клиенты заходят на сайт, добавляют товары в корзину, нажимают "Оформить заказ" и... видят белый экран с надписью 502 Bad Gateway или 503 Service Unavailable. Сайт "прилег". Телефоны колл-центра разрываются от звонков злых клиентов, в соцсетях пишут гневные комментарии, а вы в панике звоните хостинг-провайдеру, который отвечает: "У вас превышен лимит нагрузки на CPU, покупайте тариф дороже".
Каждая минута простоя в такие дни стоит миллионы. Но почему в наше время сайты вообще падают? И главное — как навсегда забыть про эту проблему, используя современные облачные технологии, в частности, Google Cloud Run? В этом лонгриде я разберу анатомию падений и дам пошаговое руководство по подготовке инфраструктуры к х10 трафику.
Анатомия катастрофы: почему "классические" серверы умирают
Давайте посмотрим правде в глаза. Большинство казахстанских интернет-магазинов, даже довольно крупных, до сих пор работают на устаревшей архитектуре. Это может быть монолитное приложение (например, на Битриксе, Laravel или Django), которое крутится на арендованном виртуальном сервере (VPS) где-нибудь в локальном дата-центре.
Как обычно решают проблему нехватки ресурсов? Вертикальным масштабированием. Сайт начинает тормозить? Давайте добавим оперативной памяти! Не хватает? Давайте поставим более мощный процессор! Это работает до определенного предела. Но у любого, даже самого мощного сервера, есть физический потолок. Когда в день старта Kaspi Жұма к вам одновременно приходят не 50, а 5000 человек, ни один "жирный" сервер в одиночку не вытянет такое количество одновременных подключений и запросов к базе данных.
Кроме того, вертикальное масштабирование означает, что вы платите за эти огромные мощности весь год, хотя реально они нужны вам только несколько дней в году. Это экономически нецелесообразно.
Эволюция инфраструктуры: Горизонтальное масштабирование
Решение проблемы кроется в горизонтальном масштабировании. Это когда вы не делаете один сервер мощнее, а добавляете много маленьких серверов-клонов, которые работают параллельно и делят нагрузку между собой с помощью балансировщика (Load Balancer).
Но управлять парком из 50 серверов вручную — это ад. Нужно настраивать их, синхронизировать код, следить, чтобы ни один не упал. И здесь на сцену выходят контейнеры (Docker) и системы оркестрации (Kubernetes). Однако Kubernetes — это сложно, дорого в обслуживании и требует квалифицированных DevOps-инженеров в штате, которых в Казахстане днем с огнем не сыщешь.
И вот мы подходим к нашему "серебряному корыту" — Google Cloud Run.
Google Cloud Run: Serverless-магия для суровых реалий
Что такое Cloud Run? Это полностью управляемая (serverless) вычислительная платформа от Google, которая автоматически масштабирует ваши stateless-контейнеры. Вы просто отдаете Google свой код (упакованный в Docker-контейнер), а все остальное — provisioning серверов, настройку сети, балансировку нагрузки и масштабирование — Google берет на себя.
Как это работает в момент Kaspi Жұма:
- Обычный день: На сайте 10 человек. Cloud Run держит запущенным 1 инстанс вашего приложения (или даже 0, если вы хотите экономить). Вы платите копейки.
- Старт распродажи (00:01): На сайт резко врывается 1000 человек. Cloud Run за миллисекунды (!!) автоматически поднимает 10, 50, 100 новых инстансов вашего приложения, чтобы обработать все запросы. Каждый клиент получает быстрый ответ.
- Спад нагрузки: Когда трафик уходит, Cloud Run автоматически "убивает" лишние инстансы. Вы перестаете платить за неиспользуемые мощности.
Вы платите только за те миллисекунды, когда ваш код реально обрабатывает запросы. Это идеальная модель для бизнеса с ярко выраженной сезонностью или пиковыми нагрузками.
Архитектура отказоустойчивого E-commerce на GCP
Чтобы Cloud Run работал на 100%, ваше приложение должно быть к этому готово. Нельзя просто взять монолит на Битриксе и закинуть его в Cloud Run. Архитектура должна быть cloud-native. Вот как выглядит идеальный сетап, который мы в ОЗАТ внедряем для наших клиентов:
1. Разделение Frontend и Backend
Ваш фронтенд (React, Vue, Angular) должен быть скомпилирован в статику и раздаваться через сверхбыстрые CDN-сети, например, Google Cloud CDN или Firebase Hosting. Статика никогда не "падает" от наплыва трафика, она просто кэшируется на граничных серверах по всему миру (и в Центральной Азии тоже). Ваш Cloud Run будет заниматься только полезной работой — обработкой API-запросов (авторизация, корзина, чекаут).
Cloud CDN: Как заставить ваш сайт загружаться за секунду и в Актау, и в Усть-Каменогорске
2. База данных — Cloud SQL или Spanner
База данных часто становится самым узким местом при масштабировании. Cloud Run может поднять 1000 инстансов, но если они все одновременно пойдут в одну слабую базу PostgreSQL, она просто "ляжет". Решение: использование управляемых сервисов баз данных от Google.
Cloud SQL позволяет легко настроить реплики чтения (Read Replicas). 90% запросов в e-commerce — это чтение (просмотр каталога, карточки товара). Cloud Run отправляет эти запросы на реплики, разгружая основную мастер-базу, которая занимается только записями (оформление заказа).
3. Кэширование с Memorystore (Redis)
Чтобы еще больше разгрузить базу данных, мы внедряем Google Cloud Memorystore (управляемый Redis). Результаты тяжелых запросов, списки товаров, категории — все это кэшируется в оперативной памяти. Когда клиент открывает каталог, данные отдаются из Redis за миллисекунды, вообще не затрагивая базу данных.
4. Асинхронная обработка (Cloud Pub/Sub + Cloud Tasks)
Во время распродажи чекаут должен работать молниеносно. Клиент нажал "Купить" — заказ должен быть принят мгновенно. Но что если после заказа нужно отправить email с чеком, SMS с подтверждением, списать бонусы из программы лояльности и отправить данные в 1С? Если делать это синхронно, клиент будет ждать 10 секунд, пока загрузится страница успеха.
Мы выносим все эти тяжелые задачи в очереди (Cloud Pub/Sub). При оформлении заказа мы просто кидаем сообщение в очередь "Заказ №123 создан" и мгновенно показываем клиенту страницу успеха. А в фоне отдельные микросервисы (воркеры) спокойно разгребают эту очередь, отправляя письма и стучась в 1С, не тормозя основной сайт.
Пошаговый план подготовки к х10 трафику
Если вы хотите, чтобы ваш магазин выжил в следующую распродажу, вот что нужно сделать прямо сейчас (а не за неделю до старта):
- Проведите аудит и профилирование кода: Найдите медленные SQL-запросы, циклы в цикле, тяжелые картинки.
- Внедрите Docker: Упакуйте ваше приложение в контейнер. Сделайте его stateless — оно не должно хранить файлы или сессии на локальном диске (используйте Cloud Storage и Redis).
- Настройте CI/CD: Процесс выкладки нового кода должен быть автоматизирован через Cloud Build или GitLab CI. Никакого копирования по FTP!
- Мигрируйте БД: Перенесите данные в управляемую базу (Cloud SQL), настройте бэкапы и репликацию.
- Нагрузочное тестирование: Это самый важный шаг. Не верьте теории. Запустите стресс-тест с помощью инструментов вроде JMeter или k6. Сгенерируйте искусственно трафик х10 от вашего пикового и посмотрите, где порвется. Исправьте узкое место и повторите тест.
Реальный кейс ОЗАТ: Спасение утопающих
В прошлом году, ровно за три недели до Черной Пятницы, к нам обратился крупный зарубежный интернет-магазин. Их текущий провайдер предупредил, что не сможет выделить им дополнительные мощности, а в прошлом году они лежали 8 часов, потеряв колоссальную прибыль.
Мы экстренно мобилизовали команду. Мы переписали их монолитный API на микросервисы (Node.js), упаковали во фронтенд на React и перенесли всё в Google Cloud. API развернули в Cloud Run, фронтенд — на Firebase Hosting, базу — в Cloud SQL (PostgreSQL).
В день X трафик превысил их исторический максимум в 15 раз! Cloud Run в пике автоматически поднял 180 инстансов. База данных благодаря Redis и репликам чтения чувствовала себя прекрасно, CPU load не превышал 40%. Сайт летал, страницы грузились за 0.5 секунды. За весь период распродажи не было ни единого падения. А счет за инфраструктуру оказался на 30% ниже, чем они платили за аренду "железа" весь год, потому что после распродажи мы просто свернули масштабирование до минимума.
Это и есть сила правильной архитектуры и облачных технологий.
Бесплатный экспресс-аудит от ОЗАТ
Не ждите, пока ваш сайт упадет в самый ответственный момент. Подготовьте инфраструктуру к сезону распродаж заранее! Оставьте заявку, и наши Senior-инженеры проведут бесплатный экспресс-разбор вашей архитектуры. Мы найдем узкие горлышки, проверим готовность к пиковым нагрузкам и дадим пошаговый план по миграции в Cloud Run.
Оставить заявку на аудитKaspi Жұма и Черная Пятница — это праздник для бизнеса, а не повод для инфаркта. Перестаньте кормить локальные серверные стойки, которые подводят в самый нужный момент. Переходите в облако, используйте Cloud Run и спите спокойно, пока ваша система сама зарабатывает вам деньги.
На связи была команда ОЗАТ. Высоких вам конверсий и 100% аптайма!

Шарафутдинов Р.
Инженер по облачной инфраструктуре, специалист по Google Cloud
Эксперт в проектировании высоконагруженных систем, миграции в облако и оптимизации ресурсов (FinOps). Имеет богатый опыт интеграции сложных API и построения Cloud Native архитектур на базе GCP.