Введение в облачный хостинг

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

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

Что такое облако?

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

Другие виды хостинга

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

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

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

Виртуализация

Среда облачного хостинга делится на две основные части:

  • виртуальные серверы, на которых размещаются приложения и веб-сайты;
  • физические хосты, которые управляют виртуальными серверами.

В данном случае виртуализация – это взаимодействие между хостом и виртуальным сервером; такой способ виртуализации имеет высокую гибкость и масштабируемость, что является еще одним преимуществом облачного хостинга.

Виртуальные выделенные серверы

На сегодняшний день наиболее распространенной формой облачного хостинга виртуальные выделенные серверы (англ. virtual private server, или VPS). VPS – это виртуальный сервер, который эмулирует работу физического компьютера с собственной операционной системой. Виртуальные серверы используют выделенные им ресурсы физической машины, а их программное обеспечение полностью изолировано, потому никак не повлияет на «соседние» VPS. Виртуальные серверы развертываются и управляются гипервизором физического хоста. Каждый виртуальный сервер имеет установленную гипервизором операционную систему, которая является основой для установки других программ. В целом же, виртуальный сервер идентичен выделенному физическому серверу, хотя его производительность иногда может быть несколько ниже из-за совместного использования физических ресурсов с другими серверами.

Хосты

Ресурсы виртуального сервера выделяются физическим сервером, на котором он размещен. Хост использует программный слой, называемый гипервизором, для развертывания и управления виртуальными выделенными серверами, а также для предоставления им ресурсов, которые находятся под его контролем. Понятие «гипервизор», как правило, используется для обозначения физических хостов, на которых установлены гипервизоры (и подконтрольные им виртуальные серверы).

Итак, при подключении виртуального выделенного сервера хост отвечает за выделение для этого сервера памяти, процессорных ядер и сетевого подключения. В обязанности гипервизора входит планирование процессов между виртуальными и физическими CPU-ядрами, поскольку одно и то же физическое ядро может использоваться несколькими виртуальными серверами одновременно. Одним из ключевых различий между разными гипервизорами является метод планирования процессов.

Виды гипервизоров

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

KVM (сокращение от Kernel-Based Virtual Machine) – это инфраструктура виртуализации, встроенная в ядро Linux. При активации KVM машина Linux превращается в гипервизор, что позволяет начать размещение виртуальных серверов. При использовании KVM не нужно создавать или эмулировать ядра, которые используются для виртуального хостинга, что значительно упрощает процесс развертывания.

Xen – один из наиболее распространенных гипервизоров на сегодня. В отличие от KVM, Xen использует микроядро, которое предоставляет все необходимые для поддержки виртуальных серверов инструменты без необходимости вносить изменения в ядро хоста. Xen поддерживает два различных метода виртуализации:

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

ESXi – это автономный гипервизор (Тип 1) корпоративного уровня, предоставляемый VMware. Особенность ESXi состоит в том, что он не требует основной операционной системы хоста. Гипервизор ESXi чрезвычайно продуктивен благодаря отсутствию «посредников» между аппаратными средствами и виртуальными серверами. ESXi (как и другие автономные гипервизоры) не нуждается в предварительно установленной на хост операционной системе, так как сам по себе действует как ОС.

Hyper-V – один из наиболее популярных способов виртуализации серверов Windows, доступный в качестве системного сервиса. Hyper-V – общий выбор для разработчиков, работающих в среде Windows. Гипервизор Hyper-V включен в Windows Server 2008 и 2012, а также доступен как автономный сервер (без необходимости устанавливать Windows Server).

Преимущества облачного хостинга

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

Настройка облачного сервера

Как правило, разработчики предпочитают иметь контроль над виртуальной средой, потому часто выбирают VPS. Большинство виртуальных серверов, работающих на Linux, по умолчанию предоставляют доступ к привилегиям root (администратор) или sudo, таким образом давая разработчику возможность устанавливать и изменять любое необходимое программное обеспечение.

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

Масштабируемость

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

Горизонтальное масштабирование (также scaling out) подразумевает добавление новых нод к существующей кластерной системе. Это может быть добавление нескольких веб-серверов для более удобного управления трафиком, внесение новых серверов для уменьшения времени ожидания или добавление новых БД для увеличения скорости передачи данных. Многие новые веб-приложения (такие как CoreOS, Docker и Couchbase) основаны на горизонтальном масштабировании.

Вертикальное масштабирование (или scaling up) – это добавление к серверу новых ресурсов: расширение доступной памяти, выделение процессорных ядер или же любое другое улучшение, повышающее пропускную способность этого сервера. Такое масштабирование, как правило, создает базу для установки дополнительных экземпляров программного обеспечения (например, базы данных).

Разработчики, выбирающие облачный хостинг, могут масштабировать сервер в зависимости от требований приложения: горизонтально – развернув дополнительные ноды VPS, вертикально – обновив существующие серверы. В случае крайней необходимости можно применить оба метода.

Tags: , , , , , , , , , , ,

Добавить комментарий