Вертикальное масштабирование (vertical scaling, scale up) — это подход к увеличению вычислительной мощности, при котором добавляются дополнительные ресурсы в существующий сервер или виртуальную машину. Этот подход отличается от горизонтального масштабирования, где увеличение мощности происходит за счёт добавления новых серверов в кластер.
Вертикальное масштабирование подразумевает увеличение мощности конкретного сервера путём:
- добавления оперативной памяти (RAM),
 - установки более производительных процессоров (CPU),
 - увеличения объёма или скорости дисковой подсистемы (SSD/HDD),
 - установки более мощной сетевой карты,
 - обновления других компонентов сервера.
 
Простой пример: если ваш виртуальный сервер имеет 4 ГБ RAM и 2 ядра CPU, при вертикальном масштабировании вы увеличиваете эти показатели до 8 ГБ RAM и 4 ядер CPU, не меняя количество используемых серверов.
Преимущества вертикального масштабирования
- 
        Простота внедрения
        
Не требует значительных изменений в архитектуре приложения или сложной настройки кластера.
 - 
        Отсутствие дополнительных затрат на лицензирование
        
При обновлении существующего сервера вы обычно сохраняете текущие лицензии на программное обеспечение.
 - 
        Снижение сложности управления
        
Не увеличивается количество физических или виртуальных машин, которыми необходимо управлять.
 - 
        Улучшение производительности без изменения архитектуры
        
Особенно эффективно для приложений, которые не предназначены для распределенной работы.
 
Ограничения вертикального масштабирования
- 
        Физические ограничения
        
Существует предел того, насколько мощным можно сделать один сервер. Например, максимальное количество CPU, которое поддерживает материнская плата, или максимальный объём RAM.
 - 
        Потенциальное время простоя
        
Для физических серверов обновление оборудования обычно требует временного отключения.
 - 
        Стоимость
        
Высокопроизводительное серверное оборудование может быть дорогостоящим, особенно при установке компонентов последнего поколения.
 - 
        Отсутствие отказоустойчивости
        
При наличии только одного мощного сервера, его отказ может привести к полной недоступности сервиса.
 
Когда применять вертикальное масштабирование
Вертикальное масштабирование является оптимальным решением в следующих случаях:
- Для приложений с монолитной архитектурой, которые не предназначены для работы в распределенной среде.
 - При временных пиковых нагрузках, когда требуется быстро увеличить мощность.
 - Для работы с базами данных, особенно если требуется большой объем оперативной памяти.
 - На этапе прототипирования, когда быстрое масштабирование важнее долгосрочной оптимизации.
 - Для небольших проектов с ограниченным бюджетом на инфраструктуру.
 
Практические рекомендации по вертикальному масштабированию
- 
        Анализ узких мест
        
Перед масштабированием определите, какой ресурс ограничивает производительность (CPU, RAM, дисковая подсистема), и сосредоточьтесь на его улучшении.
 - 
        Планирование времени простоя
        
Если вы работаете с физическим сервером, планируйте обновление на время минимальной нагрузки или используйте возможности резервирования.
 - 
        Тестирование после обновления
        
После увеличения мощности проведите тестирование для подтверждения улучшения производительности.
 - 
        Комбинированный подход
        
Рассмотрите возможность сочетания вертикального и горизонтального масштабирования для достижения оптимального баланса между производительностью, отказоустойчивостью и стоимостью.
 
Примеры использования в типичных сценариях
- 
        База данных
        
Вертикальное масштабирование особенно эффективно для баз данных, которые могут использовать дополнительную оперативную память для кэширования и более мощные процессоры для обработки сложных запросов.
 - 
        Веб-сервер для среднего бизнеса
        
Если у вас есть веб-сайт с умеренным трафиком, часто проще и экономичнее увеличить мощность существующего сервера, чем настраивать кластер.
 - 
        Среда разработки и тестирования
        
В среде разработки вертикальное масштабирование обеспечивает гибкость без необходимости управления несколькими серверами.
 
Заключение
С появлением серверов с большим количеством ядер, терабайтами оперативной памяти и высокоскоростными NVMe накопителями, возможности вертикального масштабирования продолжают расширяться. Однако, с ростом популярности микросервисной архитектуры и облачных решений, часто применяется комбинированный подход, сочетающий преимущества вертикального и горизонтального масштабирования.
Наша компания поддерживает собственный склад необходимых компонентов для вертикального масштабирования, включая:
- серверные процессоры последнего поколения,
 - модули оперативной памяти различной ёмкости,
 - высокопроизводительные SSD и NVMe накопители,
 - сетевое оборудование.
 
Это позволяет нам оперативно удовлетворять потребности клиентов в увеличении мощности их инфраструктуры без длительного времени простоя.