
ПРЕДЫДУЩАЯ СТАТЬЯ: DNS: телефонная книга интернета
Мы уже знаем, как данные бегают по сети, как имя (домен) превращается в IP и как TCP/UDP доставляют данные до приложения.
Но сам сайт или сервис где-то должен физически работать:
Это «где-то» обычно называют хостингом.
Хостинг - это услуга по размещению ваших сервисов на серверах провайдера, с доступом по сети (обычно по интернету).
Здесь мы поговорим именно про виды хостинга. О том, как код попадает на сервера хостера и как обеспечивается его работа под нагрузками - расскажем в отдельной главе.
Начнём с термина «сервер», потому что им часто называют всё подряд.
Сервер (как железо) - физический компьютер в стойке дата-центра: с процессором, памятью, дисками, сетевой картой. Обычно мощнее, чем домашний ПК и рассчитан на работу 24/7.
Сервер (как программа) - приложение, которое принимает запросы по сети, обрабатывает их и отправляет ответы.
Например:
В разговоре «сервер лежит» может означать «отвалился физический компьютер/виртуалка» или «упало приложение, которое на нём работает».
Ниже мы говорим в основном про «сервер как железо или виртуалку».
Когда вы «берёте хостинг», это всегда комбинация трёх вещей:
От этого зависят цена, предсказуемость производительности, надёжность и возможности для отказоустойчивости.
Дальше разберём пять распространённых вариантов:
Виртуальный (shared) хостинг - это когда на одном сервере провайдера размещено много сайтов разных клиентов, а вам выделяют «аккаунт» и кусочек ресурсов.
Клиент обычно получает логин/пароль к панели управления и возможность загрузить файлы сайта (через веб-интерфейс или FTP), создать базу данных (обычно одну-несколько), привязать домены к сайту и настроить почту.
Вы НЕ управляете сервером целиком, то есть нет прав администратора (root), нельзя ставить произвольные программы и нельзя менять версию операционной системы.
То есть вам дают готовую «песочницу», где можно держать относительно простой сайт.
Проще говоря, в дата-центре стоит один физический сервер (или несколько), на нём запущена одна операционная система и провайдер создаёт много пользовательских аккаунтов внутри этой ОС. Каждому аккаунту - своя папка с файлами, свои базы и свои ограничения по объёму диска, памяти, числу процессов и т.п.
Все аккаунты делят один и тот же процессор, память, диск и сеть.
Плюсы
Минусы
Как это отражается на производительности и надёжности
Когда такой хостинг уместен
Он подойдет для простых лендингов и небольших сайтов, непритязательных проектов без серьёзных требований к времени отклика и доступности.
VPS (Virtual Private Server) / VDS (Virtual Dedicated Server) - это отдельная виртуальная машина на сервере провайдера, со своей операционной системой и полным админ-доступом.
Отличие от shared-хостинга в том, что вам дают не аккаунт в чужой ОС, а целый виртуальный сервер. Вы: выбираете образ ОС (например, Ubuntu, Debian, CentOS), устанавливаете любое серверное ПО и сами настраиваете firewall, пользователей, окружения.
Объясняем новые термины
Виртуальная машина (VM) - программно эмулируемый компьютер. Выглядит как отдельный сервер, но физически это часть ресурсов большого сервера.
Гипервизор - программа, которая стоит на физическом сервере, делит его ресурсы на несколько виртуальных машин и следит, чтобы они не мешали друг другу напрямую.
То есть физический сервер - как многоквартирный дом, а виртуальная машина - как отдельная квартира.
Что под капотом
На физическом сервере запущен гипервизор. Внутри гипервизора создаётся несколько виртуальных машин. Каждая виртуальная машина получает свою долю CPU, свою часть оперативной памяти, свой диск (логически) и свою сетевую карту (логически).
Вы видите только свою виртуальную машину, как будто это отдельный сервер.
Плюсы
Минусы
Влияние на производительность и надёжность
Когда это уместно
Почти для всех серьёзных проектов, которые уже «выросли» из shared-хостинга, для сервисов с кастомным окружением или для тех, кто начал движения к более сложной архитектуре: микросервисы, очереди сообщений и т.п.
Выделенный сервер (Dedicated) - это физический сервер в дата-центре, который целиком выделен под одного клиента.
Все ресурсы (процессоры, оперативная память, диски, принадлежат только вам - никаких соседних VPS и shared-площадок на этом железе нет (или они есть, но ваши, если вы сами так решили).
Что под капотом
Тут всё максимально прямолинейно - это настоящий физический сервер, стоящий в стойке. Провайдер подключает его к электропитанию, к сети и к системе охлаждения. Вы получаете доступ к управлению (обычно удалённая консоль), возможность установить любую разрешённую ОС и полные права внутри.
Вы можете даже поверх него сами запускать гипервизор и создавать свои виртуальные машины - но это уже ваш выбор.
Плюсы
Минусы
Влияние на производительность и надёжность
Когда это оправдано
Когда у вашего сервиса высокие нагрузки и строгие требования к производительности, при специфических нагрузках (обработка видео, ML, большие БД).
Термин «облако» может звучать туманно, хотя идея довольно простая.
Если сильно упростить, то облачный хостинг (IaaS) - это те же виртуальные серверы, но в инфраструктуре крупного провайдера,
где всё можно создавать, удалять и настраивать программно, через API.
IaaS (Infrastructure as a Service) - модель, в которой вы арендуете виртуальные серверы (инстансы), диски и сопутствующие сервисы (балансировщики, VPN, firewall, хранилища и т.п.).
С точки зрения «сервер как железо или виртуалка» это то же самое, что VPS, просто в более гибкой упаковке.
Что под капотом
У облачного провайдера есть много физических серверов в дата-центрах. На этих серверах установлено специальное ПО, которое разделяет физические машины на множество виртуальных серверов (виртуализация) и управляет всеми этими виртуальными серверами как единым «стадом» (оркестрация).
Когда вы в облаке создаёте себе «сервер» (его часто называют инстанс), на самом деле провайдер просто запускает для вас новый виртуальный сервер в этой системе, выделяет ему часть ресурсов физической инфраструктуры (процессор, память, диск, сеть) и привязывает его к вашей учётной записи.
Плюсы
Минусы
Влияние на производительность и надёжность
Последний тип - колокация. Про него часто забывают, но для полноты картины важно упомянуть.
Колокация - это когда вы покупаете или уже имеете свой физический сервер и размещаете его в дата-центре провайдера, арендуя место, питание и подключение к сети.
То есть железо - полностью ваше (вы его купили), а дата-центр даёт стойку (или юниты в стойке), электричество, каналы связи и занимается физической безопасностью (охрана, доступ и т.п.).
С точки зрения хостинга вместо аренды сервера вы арендуете инфраструктуру вокруг своего сервера.
Что под капотом
Ваши серверы физически привозятся и монтируются в стойку дата-центра.
Провайдер подключает их к своим коммутационным шкафам (сеть), к своим системам питания и предоставляет доступ (обычно по заявкам или по карточкам).
Остальное - целиком на вашей стороне.
Плюсы
Минусы
Влияние на производительность и надёжность
Производительность зависит только от купленного вами железа. Вы можете собрать очень мощные конфигурации.
Надёжность зависит от того, насколько грамотно вы сами построите резервы, дублирование, кластеры и бэкапы. Дата-центр отвечает только за «дом» (свет, интернет, климат), но не за ваши «квартиры» внутри.
Чтобы не запутаться, удобно держать в голове несколько опорных вопросов:
Если держать эту рамку в голове, маркетинговые названия тарифов перестают пугать, и становится понятно, что вы фактически арендуете - кусочек общего пирога, виртуальную «квартиру» или целый дом.