Что такое скейлинг приложений

«Что такое скейлинг приложений» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Скейлинг — это способность приложения обрабатывать растущую нагрузку. Бывает двух типов:

Вертикальный — увеличение мощности сервера (CPU, RAM). Просто, но имеет физические ограничения.
Пример: запуск сервиса на более мощном инстансе AWS.

Горизонтальный — добавление новых серверов. Сложнее, но безгранично. Требует балансировки нагрузки и синхронизации состояния.

// Пример горизонтального скейлинга с балансировкой
func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Response from instance: %s", os.Getenv("INSTANCE_ID"))
    })
    http.ListenAndServe(":8080", nil)
}

Ключевые технологии: Kubernetes, Docker Swarm, Nginx для балансировки, Redis для shared state.