Автоматическое масштабирование ресурсов по нагрузке

Представьте: ваш интернет-магазин в пятницу вечером под нагрузкой — CPU на 90%, latency растёт, а вы не успеваете добавить серверы вручную. Или наоборот: в будний день серверы простаивают, а вы платите за 80% неиспользуемой мощности. Автомасштабирование решает обе проблемы. Мы настроили autoscaling

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Автоматическое масштабирование ресурсов по нагрузке
Сложный
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    998

Представьте: ваш интернет-магазин в пятницу вечером под нагрузкой — CPU на 90%, latency растёт, а вы не успеваете добавить серверы вручную. Или наоборот: в будний день серверы простаивают, а вы платите за 80% неиспользуемой мощности. Автомасштабирование решает обе проблемы. Мы настроили autoscaling для 20+ проектов — от стартапов до enterprise. Ниже — реальный код, конфиги и типовые ошибки.

Проблемы, которые решаем

Переплата за ресурсы в спокойное время

Средняя загрузка CPU веб-серверов — 15-20%. Держать capacity под пик — платить за 80% неиспользуемой мощности. Autoscaling удерживает минимум инстансов и добавляет новые при росте. Например, e-commerce сайт с пиковой нагрузкой 20k RPS держит 10 серверов, хотя средняя нагрузка 2k RPS. Autoscaling позволяет держать 2 сервера и добавлять по мере роста. Экономия на инфраструктуре составляет 30-40% от бюджета. Для одного из клиентов (e-commerce с пиковой нагрузкой 20k RPS) внедрение сократило ежемесячные расходы на $4500.

Падение при резких всплесках

DDoS или вирусный пост — нагрузка вырастает в 10 раз за минуты. Без масштабирования сайт падает. Наше решение реагирует за секунды, используя Target Tracking и scale-out cooldown 60s.

Сложность ручного управления

Даже опытный админ не успевает вручную добавлять серверы. Автоматизация исключает человеческий фактор.

Как мы это делаем: стек и кейс

AWS Auto Scaling Group с Target Tracking

Используем Terraform для описания инфраструктуры как кода. Пример конфигурации:

resource "aws_autoscaling_group" "app" { name = "app-asg" min_size = 2 max_size = 20 desired_capacity = 3 vpc_zone_identifier = var.private_subnet_ids launch_template { id = aws_launch_template.app.id version = "$Latest" } health_check_type = "ELB" health_check_grace_period = 60 target_group_arns = [aws_lb_target_group.app.arn] } # Target Tracking: держать CPU на 60% resource "aws_autoscaling_policy" "cpu_tracking" { name = "cpu-tracking" autoscaling_group_name = aws_autoscaling_group.app.name policy_type = "TargetTrackingScaling" target_tracking_configuration { predefined_metric_specification { predefined_metric_type = "ASGAverageCPUUtilization" } target_value = 60.0 scale_in_cooldown = 300 scale_out_cooldown = 60 } } 

Scale-out cooldown (60s) меньше scale-in (300s) — быстро реагируем на рост, медленно убираем ресурсы.

Kubernetes HPA с кастомными метриками

Horizontal Pod Autoscaler в сочетании с Prometheus Adapter позволяет масштабировать по кастомным метрикам:

apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: app-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: app minReplicas: 2 maxReplicas: 50 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60 - type: Pods pods: metric: name: http_requests_per_second target: type: AverageValue averageValue: "100" 

Метрика http_requests_per_second поступает из Prometheus через kube-state-metrics и Prometheus Adapter.

KEDA: масштабирование по внешним источникам

KEDA (Kubernetes Event-Driven Autoscaling) масштабирует поды по длине очереди RabbitMQ, Kafka, SQS:

apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: queue-processor spec: scaleTargetRef: name: worker-deployment minReplicaCount: 1 maxReplicaCount: 30 triggers: - type: rabbitmq metadata: host: amqp://rabbitmq:5672/ queueName: tasks queueLength: "50" 

Масштабирование до нуля при пустой очереди — экономит ресурсы.

Predictive Scaling

AWS Predictive Scaling предугадывает нагрузку на основе исторических данных (минимум 14 дней) и заблаговременно добавляет ресурсы:

resource "aws_autoscaling_policy" "predictive" { name = "predictive" autoscaling_group_name = aws_autoscaling_group.app.name policy_type = "PredictiveScaling" predictive_scaling_configuration { mode = "ForecastAndScale" scheduling_buffer_time = 300 max_capacity_breach_behavior = "IncreaseMaxCapacity" metric_specification { target_value = 60 predefined_scaling_metric_specification { predefined_metric_type = "ASGAverageCPUUtilization" } predefined_load_metric_specification { predefined_metric_type = "ASGTotalNetworkIn" } } } } 

Сравнение методов масштабирования

Метод Метрики Скорость реакции Сложность
AWS ASG + Target Tracking CPU, Network, Request Count 1-2 минуты Низкая
Kubernetes HPA CPU, Memory, Custom 30-60 секунд Средняя
KEDA Queue Length, External 10-30 секунд Средняя
Predictive Scaling Исторические тренды Заблаговременно Высокая

Как выбрать правильную метрику?

Метрика — ключ к эффективному масштабированию. CPU запаздывает, Request Rate требует baseline, P95 — самый точный, но сложный. На практике используем комбинацию CPU + Request Rate. Для async-обработчиков — Queue Depth. Согласно Amazon EC2 Auto Scaling поддерживает несколько метрик в одной политике. Стоимость содержания инфраструктуры снижается на 35% при правильно подобранных метриках.

Что делать, если масштабирование не срабатывает вовремя?

Проверьте cooldown (scale-out быстрее scale-in), health check grace period. Иногда метрика не успевает обновиться. Рекомендуем нагрузочный тест с k6: k6 run --vus 1000 --duration 10m script.js.

Процесс работы

  1. Аналитика: изучаем профиль нагрузки, исторические данные, выбираем метрики.
  2. Проектирование: определяем тип масштабирования, инструменты (AWS ASG, K8s HPA, KEDA).
  3. Реализация: пишем IaC (Terraform/Pulumi), настраиваем мониторинг (CloudWatch, Prometheus).
  4. Тестирование: нагрузочное тестирование, проверка времени отклика и downtime.
  5. Деплой: внедрение в продакшен, алерты (SNS, PagerDuty).
  6. Поддержка: мониторинг эффективности, корректировка порогов.

Что входит в работу

  • Архитектурная документация
  • Код инфраструктуры (Terraform/Helm)
  • Мониторинг и алерты
  • Нагрузочный тест-кейс
  • Обучение команды (1 сессия)

Сроки реализации

Компонент Срок
ASG + Target Tracking (AWS) 2-3 дня
HPA + Prometheus Adapter (K8s) 3-5 дней
KEDA для queue-based workloads 2-3 дня
Predictive Scaling 1-2 дня (после 14 дней данных)
Нагрузочное тестирование + тюнинг 2-3 дня

Стоимость рассчитывается индивидуально после аудита нагрузки. Для расчёта точной стоимости и сроков свяжитесь с нами.

Типичные ошибки (нажмите, чтобы развернуть)
  • Неправильные cooldown (flapping)
  • Масштабирование только по CPU (игнорируем memory/network)
  • Отсутствие health check при scale-in (обрыв активных сессий)
  • Слишком широкий диапазон min/max (риск бесконечного масштабирования)

Наш опыт

Более 5 лет занимаемся инфраструктурой высокой нагрузки. Реализовали autoscaling для 20+ проектов — от стартапов до enterprise (e-commerce, fintech). Используем проверенные решения с гарантией SLA. Хотите настроить autoscaling? Получите консультацию — оценим ваш проект и предложим оптимальное решение.