usepoint
menu

Хостинг: где живут сайты

От выбора хостинга зависит не только доступность сайта, но и его безопасность, скорость работы и возможности для роста. Это фундамент, на котором строится всё остальное. Давайте разберемся, как устроен этот базовый сервис.

hosting

Содержание

ПРЕДЫДУЩАЯ СТАТЬЯDNS: телефонная книга интернета

Мы уже знаем, как данные бегают по сети, как имя (домен) превращается в IP и как TCP/UDP доставляют данные до приложения.

Но сам сайт или сервис где-то должен физически работать:

  • хранить код и данные,
  • принимать запросы пользователей,
  • общаться с другими системами.

Это «где-то» обычно называют хостингом.

Хостинг - это услуга по размещению ваших сервисов на серверах провайдера, с доступом по сети (обычно по интернету).

Здесь мы поговорим именно про виды хостинга. О том, как код попадает на сервера хостера и как обеспечивается его работа под нагрузками - расскажем в отдельной главе.

Что такое сервер

Начнём с термина «сервер», потому что им часто называют всё подряд.

Сервер (как железо) - физический компьютер в стойке дата-центра: с процессором, памятью, дисками, сетевой картой. Обычно мощнее, чем домашний ПК и рассчитан на работу 24/7.

Сервер (как программа) - приложение, которое принимает запросы по сети, обрабатывает их и отправляет ответы.
Например:

  • web-сервер (Nginx, Apache),
  • сервер базы данных,
  • сервер приложений.

В разговоре «сервер лежит» может означать «отвалился физический компьютер/виртуалка» или «упало приложение, которое на нём работает».

Ниже мы говорим в основном про «сервер как железо или виртуалку».

Зачем вообще несколько видов хостинга

Когда вы «берёте хостинг», это всегда комбинация трёх вещей:

  1. Сколько у вас соседей на одном физическом сервере.
  2. Сколько контроля вы получаете внутри (можете ли вы сами ставить ПО, менять настройки ОС и т.п.).
  3. Сколько за вас делает провайдер, а что ложится на вашу команду.

От этого зависят цена, предсказуемость производительности, надёжность и возможности для отказоустойчивости.

Дальше разберём пять распространённых вариантов:

  • Виртуальный (Shared) хостинг;
  • VPS / VDS;
  • Выделенный сервер (Dedicated);
  • Облачный (Cloud);
  • Колокация (colocation).

Виртуальный (Shared) хостинг

Виртуальный (shared) хостинг - это когда на одном сервере провайдера размещено много сайтов разных клиентов, а вам выделяют «аккаунт» и кусочек ресурсов.

Клиент обычно получает логин/пароль к панели управления и возможность загрузить файлы сайта (через веб-интерфейс или FTP), создать базу данных (обычно одну-несколько), привязать домены к сайту и настроить почту.

Вы НЕ управляете сервером целиком, то есть нет прав администратора (root), нельзя ставить произвольные программы и нельзя менять версию операционной системы.

То есть вам дают готовую «песочницу», где можно держать относительно простой сайт.

Проще говоря, в дата-центре стоит один физический сервер (или несколько), на нём запущена одна операционная система и провайдер создаёт много пользовательских аккаунтов внутри этой ОС. Каждому аккаунту - своя папка с файлами, свои базы и свои ограничения по объёму диска, памяти, числу процессов и т.п.

Все аккаунты делят один и тот же процессор, память, диск и сеть.

Плюсы

  • Минимальный порог входа. Всё на уровне «загрузил сайт - он работает». Не нужно быть админом.
  • Низкая цена. Ресурсы одного сервера делят десятки или сотни клиентов.
  • Готовое окружение. Часто уже настроены веб-сервер, поддержка PHP / иногда других языков и базовая защита.

Минусы

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

Как это отражается на производительности и надёжности

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

Когда такой хостинг уместен

Он подойдет для простых лендингов и небольших сайтов, непритязательных проектов без серьёзных требований к времени отклика и доступности. 

VPS / VDS - ваш виртуальный сервер

VPS (Virtual Private Server) / VDS (Virtual Dedicated Server) - это отдельная виртуальная машина на сервере провайдера, со своей операционной системой и полным админ-доступом.

Отличие от shared-хостинга в том, что вам дают не аккаунт в чужой ОС, а целый виртуальный сервер. Вы: выбираете образ ОС (например, Ubuntu, Debian, CentOS), устанавливаете любое серверное ПО и сами настраиваете firewall, пользователей, окружения.

Объясняем новые термины

Виртуальная машина (VM) - программно эмулируемый компьютер. Выглядит как отдельный сервер, но физически это часть ресурсов большого сервера.

Гипервизор - программа, которая стоит на физическом сервере, делит его ресурсы на несколько виртуальных машин и следит, чтобы они не мешали друг другу напрямую.

То есть физический сервер - как многоквартирный дом, а виртуальная машина - как отдельная квартира.

Что под капотом

На физическом сервере запущен гипервизор. Внутри гипервизора создаётся несколько виртуальных машин. Каждая виртуальная машина получает свою долю CPU, свою часть оперативной памяти, свой диск (логически) и свою сетевую карту (логически).

Вы видите только свою виртуальную машину, как будто это отдельный сервер.

Плюсы

  • Гораздо больше контроля. Вы можете ставить свои версии ПО, настраивать окружение под свой стек и поднимать несколько сервисов.
  • Предсказуемость (при приличном провайдере). Вам выделена определённая квота ресурсов, и она более стабильна, чем на shared-хостинге.
  • Баланс цена/возможности. Это часто оптимальный вариант для малого и среднего бизнеса.

Минусы

  • Администрирование на вашей стороне. Нужен человек, который обновляет систему, закрывает ненужные порты, настраивает резервное копирование и следит за безопасностью.
  • Риски overselling’а. Если провайдер «перепродал» один физический сервер слишком многим клиентам, возможны просадки производительности (но это уже вопрос качества провайдера).

Влияние на производительность и надёжность

  • По производительности намного лучше shared-хостинга. Можно подбирать тарифы по ресурсам (больше CPU, больше памяти). При росте нагрузки - перейти на более мощный тариф или добавить ещё один VPS.
  • По надёжности VPS - всё равно «один экземпляр» приложения на одной виртуалке, но вы уже можете сами строить схемы: несколько VPS в разных дата-центрах, один VPS под базу, другой под фронт и API и балансировку между ними (если провайдер позволяет).

Когда это уместно

Почти для всех серьёзных проектов, которые уже «выросли» из shared-хостинга, для сервисов с кастомным окружением или для тех, кто начал движения к более сложной архитектуре: микросервисы, очереди сообщений и т.п.

Выделенный сервер (Dedicated) - целое железо под вас

Выделенный сервер (Dedicated) - это физический сервер в дата-центре, который целиком выделен под одного клиента.

Все ресурсы (процессоры, оперативная память, диски, принадлежат только вам - никаких соседних VPS и shared-площадок на этом железе нет (или они есть, но ваши, если вы сами так решили).

Что под капотом

Тут всё максимально прямолинейно - это настоящий физический сервер, стоящий в стойке. Провайдер подключает его к электропитанию, к сети и к системе охлаждения. Вы получаете доступ к управлению (обычно удалённая консоль), возможность установить любую разрешённую ОС и полные права внутри.

Вы можете даже поверх него сами запускать гипервизор и создавать свои виртуальные машины - но это уже ваш выбор.

Плюсы

  • Предсказуемая производительность. Никто, кроме ваших сервисов, не ест CPU и диск. Очень важно для высоконагруженных систем.
  • Максимальный контроль над железом. Можно подобрать конфигурацию под конкретные задачи (много ядер CPU, много памяти, быстрые NVMe-диски, специальные GPU).
  • Нет «шумных соседей». Никаких чужих проектов на этом сервере нет.

Минусы

  • Цена выше, чем у VPS. Вы платите за целое железо, даже если сейчас используете только половину ресурсов.
  • Масштабирование требует усилий. Чтобы добавить мощности, часто нужно  взять ещё один сервер, настроить кластер и перенести часть нагрузки.
  • Вся ответственность внутри - ваша. Провайдер меняет «сгоревшие» диски, следит за электричеством и интернетом. Но ОС, настройки, обновления, безопасность - полностью ваша зона.

Влияние на производительность и надёжность

  • Производительность - максимум того, что может дать выбранное железо. Вы сами решаете, как распределить нагрузку между процессами, сервисами и т.п.
  • Надёжность - один сервер - всегда одна точка отказа, но выделенные сервера часто комбинируют в кластеры и в пары «основной + резервный».

Когда это оправдано

Когда у вашего сервиса высокие нагрузки и строгие требования к производительности, при специфических нагрузках (обработка видео, ML, большие БД).

Облачный хостинг (Cloud / IaaS)

Термин «облако» может звучать туманно, хотя идея довольно простая.

Если сильно упростить, то облачный хостинг (IaaS) - это те же виртуальные серверы, но в инфраструктуре крупного провайдера,
где всё можно создавать, удалять и настраивать программно, через API.

IaaS (Infrastructure as a Service) - модель, в которой вы арендуете виртуальные серверы (инстансы), диски и сопутствующие сервисы (балансировщики, VPN, firewall, хранилища и т.п.).

С точки зрения «сервер как железо или виртуалка» это то же самое, что VPS, просто в более гибкой упаковке.

Что под капотом

У облачного провайдера есть много физических серверов в дата-центрах. На этих серверах установлено специальное ПО, которое разделяет физические машины на множество виртуальных серверов (виртуализация) и управляет всеми этими виртуальными серверами как единым «стадом» (оркестрация).

Когда вы в облаке создаёте себе «сервер» (его часто называют инстанс), на самом деле провайдер просто запускает для вас новый виртуальный сервер в этой системе, выделяет ему часть ресурсов физической инфраструктуры (процессор, память, диск, сеть) и привязывает его к вашей учётной записи.

Плюсы

  • Гибкость и скорость. Можно за минуты поднять новый сервер, стенд для тестов или дополнительные инстансы под нагрузку.
  • Инструменты для надёжности. Легче делать - несколько инстансов в разных зонах, автоматический перезапуск упавших машин и отказоустойчивые БД (через managed-сервисы).
  • Хорошо ложится на автоматизацию. Легко использовать подход «инфраструктура как код»: вся инфраструктура описывается в файлах и разворачивается автоматически.

Минусы

  • Стоимость. За удобство и дополнительные сервисы часто приходится платить больше, чем за «голый» VPS или выделенный сервер.
  • Привязка к провайдеру. Чем глубже вы используете специфические сервисы одного облака, тем труднее переехать на другое.
  • ОС и приложения всё равно ваша забота. Облако не избавляет от необходимости обновлять серверы, следить за безопасностью и проектировать архитектуру.

Влияние на производительность и надёжность

  • Производительность по единичному инстансу - примерно как у хорошего VPS. Главное преимущество - способность горизонтально масштабироваться (добавлять/убирать инстансы под балансировщиком).
  • Что касается надёжности, то тут легче строить отказоустойчивость (несколько инстансов в разных зонах, репликации, автоматические перезапуски), но если у вас один инстанс в одном регионе, он всё равно одна точка отказа, несмотря на слово «облако».

Колокация (Colocation)

Последний тип - колокация. Про него часто забывают, но для полноты картины важно упомянуть.

Колокация - это когда вы покупаете или уже имеете свой физический сервер и размещаете его в дата-центре провайдера, арендуя место, питание и подключение к сети.

То есть железо - полностью ваше (вы его купили), а дата-центр даёт стойку (или юниты в стойке), электричество, каналы связи и занимается физической безопасностью (охрана, доступ и т.п.).

С точки зрения хостинга вместо аренды сервера вы арендуете инфраструктуру вокруг своего сервера.

Что под капотом

Ваши серверы физически привозятся и монтируются в стойку дата-центра.

Провайдер подключает их к своим коммутационным шкафам (сеть), к своим системам питания и предоставляет доступ (обычно по заявкам или по карточкам).

Остальное - целиком на вашей стороне.

Плюсы

  • Полный контроль над железом. Вы сами выбираете модель сервера, диски, RAID-контроллеры, дополнительные карты, например GPU.
  • Понятная модель владения. Вы платите за место и инфраструктуру, а не за аренду каждой машины. Иногда это выгодно на больших масштабах и при специфичных требованиях.
  • Без «соседей клиента» на одном железе. Всё железо - ваше. Если кто-то и «шумит» на сервере, то это ваши же процессы.

Минусы

  • Высокий порог входа. Нужно купить железо, понять, как его обслуживать и иметь специалистов для замены дисков, настройки, диагностики.
  • Все риски по железу - на вас. Если сервер ломается, нужно вызывать инженеров, менять компоненты, иметь запасные части.
  • Меньшая гибкость. Масштабирование - это закупка нового железа, логистика и так далее. Это не «кликнуть в панели, чтобы добавить ещё один инстанс».

Влияние на производительность и надёжность

Производительность зависит только от купленного вами железа. Вы можете собрать очень мощные конфигурации.

Надёжность зависит от того, насколько грамотно вы сами построите резервы, дублирование, кластеры и бэкапы. Дата-центр отвечает только за «дом» (свет, интернет, климат), но не за ваши «квартиры» внутри.

Итог: как выбрать тип хостинга

Чтобы не запутаться, удобно держать в голове несколько опорных вопросов:

  1. Что мне реально дают?
    • кусочек общего сервера (Shared),
    • виртуальный сервер (VPS / Cloud),
    • целый физический сервер (Dedicated / Colocation).
  2. Кто управляет сервером внутри?
    • провайдер (Shared),
    • вы (VPS, Dedicated, Cloud, Colocation).
  3. С кем я делю физические ресурсы?
    • с десятками/сотнями чужих сайтов (Shared),
    • с несколькими виртуальными машинами других клиентов (VPS/Cloud),
    • ни с кем (Dedicated, Colocation).
  4. Какие у меня цели по производительности и надёжности?
    • простой сайт без жёстких требований - Shared;
    • серьёзный сервис с кастомным окружением - обычно VPS или Cloud;
    • высокие нагрузки и особые требования - Dedicated или Colocation.

Если держать эту рамку в голове, маркетинговые названия тарифов перестают пугать, и становится понятно, что вы фактически арендуете - кусочек общего пирога, виртуальную «квартиру» или целый дом.