Цикл “Хостинг сайтов”. Часть 1. Введение в хостинг
Введение
Данное руководство создано для начинающих веб-разработчиков, которые желают изучить возможности, которые существую сегодня для размещения веб-приложений и сайтов в интернете.
Рассматриваются типы хостинга, их плюсы и минусы, типовые варианты использования.
Руководство описывает самые распространенные типы хостинга и демонстрирует их практическое использование на примере некоторых публичных сервисов.
Часть 1. Введение в хостинг
Для размещения сайтов в интернете (хостинг) существует несколько возможностей:
- Использование собственной инфраструктуры: собственного сервера и подключения к интернету;
- Использование shared-хостинга: тип хостинга, который отличается низкими затратами на владение и вместе с тем предлагает использовать инфраструктуру компании поставщика хостинга (хостеров);
- Использование нового типа хостинга «WebMatrix»-хостинг, который отличается низкими затратами и простотой размещения веб-приложений;
- Использование тарифных планов на базе виртуальных машин хостера: отличается умеренными ценами при полном доступе к системе виртуальной машины;
- Использование выделенных серверов: размещение собственного сервера или аренда сервера на площадке в дата-центре хостера;
- Использование облачных технологий: размещение веб-приложений в облачных сервисах, что позволяет избавиться от потребности обслуживать инфраструктуру или даже ОС и вместе с тем получить автоматическое масштабирование сервиса и гибкое управление потребляемыми ресурсами.
В этой главе мы кратко рассмотрим перечисленные типы хостинга и их особенности.
Использование собственной инфраструктуры
Существует техническая возможность использовать собственные ресурсы для размещения сайтов в сети интернет. Вы можете подключить обыкновенный компьютер или сервер к выделенной линии сети интернет, получить выделенный IP адрес, зарегистрировать доменное имя для сайта.
Имея все это, вы можете развернуть на сервере (даже у себя дома) веб-сервер IIS и запустить на нем свое веб-приложение. С первого взгляда может показаться, что этот подход очень дешев и его будет достаточно для осуществления работы вашего сайта.
Однако у такого способа существует несколько негативных качеств, которые могут отрицательно сказаться на всей вашей работе. Во-первых, в случае собственного размещения веб-сервера вы принимаете на себя все риски и ответственность за работу оборудования. Как правило, поставщики интернета пользователям не гарантируют стабильной работы сети, сравнимой с дата-центрами. Порой рядовые пользователи интернета сталкиваются с «техническими работами» или «неисправностями на линии» своего провайдера и вынуждены ждать от получаса до нескольких суток, когда же им «починят» интернет. Это может быть терпимо, когда речь идет о вашем домашнем интернете, но в случае, когда вы запускаете свое веб-приложение или онлайн-сервис, например, магазин, такие перебои в работе недопустимы. Пользователи не станут вникать в ваши проблемы с провайдером и уйдут с вашего сайта на сайты конкурентных сервисов.
Кроме потенциальных проблем с интернетом следует учитывать другие инфраструктурные проблемы, которые не могут быть решены «дома» или в офисе – это бесперебойное и альтернативное питание на случай перебоев с электроэнергией.
Схожая проблема касается самого сервера и/или программного обеспечения. Сможете ли вы обеспечить безотказную и долговременную работу компонентов своего сервера? Сможете ли вы в короткие сроки менять оборудование и осуществлять ремонт? Хватит ли у вас времени на управление сервером, осуществления административных задач? Все эти вопросы крайне важны, когда вы размещаете публичный сервис в интернете не просто ради забавы и для себя одного, но для зарабатывания денег и для массы посетителей.
Другая важная проблема – это резервное копирование данных, которое важно организовать и выполнять на периодической основе. Для правильной организации безотказного сервиса, бесперебойной работы и резервного копирования данных потребуются большие познания в ИТ-инфраструктуре, которых может не быть у одного или группы разработчиков.
В связи с описанными проблемами, большинство интернет-сайтов не используют какую-то собственную инфраструктуру, но используют специальные площадки и сервисы центров обработки данных – дата-центров. Обычно, компания, которая организует работу дата-центра предлагает арендовать свои мощности другим компаниям (хостерам), которые в свою очередь организуют безотказный хостинг для конечных пользователей. Далее будут описаны типы такого хостинга.
Shared-хостинг
Shared-хостинг (далее шаред) – это простейший и самый дешевый вариант хостинга. Дешевизна услуги достигается тем, что на одном сервере хостер размещает несколько проектов своих клиентов (даже несколько десятков). При этом доступ к операционной системе, файлам и параметрам сервера и своего сайта осуществляется пользователем через специальную панель администрирования (рисунок 1.1).
Рис. 1.1 Панель управления Plesk компании Parallels
У шаред-хостинга есть как свои преимущества, так и недостатки. Большим преимуществом шаред-хостинга является его низкая стоимость. Так стоимость некоторых тарифов шаред-хостинга может стоить всего несколько сотен рублей в месяц. При этом пользователю предлагается полный набор услуг: сервер приложений, доступ к серверу БД, поддержка email и другие.
Однако существенными минусами шаред-хостинга являются ограниченный доступ к системе и низкая производительность размещенных сайтов. Ограничения доступа к системе, которые определяются возможностями панели администрирования шаред-хостинга, могут не иметь для вас значения, если у вас небольшой и простой проект. Однако порой важно иметь доступ к системе через удаленный доступ для тонкой конфигурации. Шаред-хостинг не предлагает такой услуги.
С другой стороны, из-за того, что фактически на одном сервере хостер будет размещать несколько сервисов разных пользователей, вы можете столкнуться с тем, что ваш сайт будет медленно работать и отдавать страницы с задержкой. Это связано с ограниченными ресурсами, которые обычно предлагаются на шаред-хостинге. Так же это может быть связано напрямую с «соседними» приложениями, которые могут непосредственно влиять на работу вашего приложения, потребляя основную массу ресурсов в своей работе.
Использование шаред-хостинга оправдано в процессе изучение веб-технологий или при размещении небольшого сайта, у которого не планируется большая аудитория. Например, вы вполне можете разместить на дешевом шаред-хостинге свой блог, который будут посещать ваши друзья и это будет хорошим и дешевым решением.
При использовании шаред-хостинга, несмотря на его дешевизну и специальную панель администрирования, вам, скорее всего, придется осуществлять самостоятельное копирование файлов и следить за обновлением и поддержанием файлов в актуальном виде. Вам придется работать с панелью управления и в случае обновления или создания базы данных. Это может быть утомительно для любого разработчика. Однако в настоящее время появился новый тип хостинга, который предлагает преимущества шаред-хостинга по цене, но в тоже время имеет значительно более простой путь публикации и обновления веб-приложения. Этот хостинг называется WebMatrix-хостинг и будет рассмотрен далее.
WebMatrix-хостинг
WebMatrix-хостинг носит свое название по имени продукта Microsoft WebMatrix, который представляет собой бесплатную интегрированную среду разработки. WebMatrix предлагает богатые возможности редактирования кода, работы с БД, анализа сайтов на проблемы и ошибки и автоматическую публикацию сайтов на серверы (рисунок 1.2).
Рис. 1.2. Стартовое окно WebMatrix
Возможность WebMatrix автоматически публиковать файловую структуру и сами файлы сайтов на сервер повлияла на хостеров так, что они стали предлагать услугу, поддерживающую такой упрощенный сценарий развертывания данных на сервере. Кроме того, WebMatrix предлагает возможность автоматической публикации базы данных на сервер, что еще больше упрощает жизнь, как пользователям, так и хостерам.
В дополнение ко всем плюсам WebMatrix обладает еще одной важной способностью. С помощью этого средства разработчик получает доступ к десяткам готовых шаблонов популярных веб-приложений. Среди них: DotNetNuke, Drupal, Orchard CMS, Joomla, Umbraco, WordPress, BlogEngine.NET и масса других (рисунок 1.3).
Рис. 1.3. Галерея приложений в WebMatrixs
Подробности работы с WebMatrix будут рассмотрены в одной из следующих глав. Здесь же мы рассмотрим то, как работает хостинг на базе WebMatrix и какие преимущества он имеет.
Хостинг на базе WebMatrix работает очень просто. Пользователь регистрируется на сайте и получает набор настроек (обычно в виде специального xml-файла), с помощью которых он может автоматически публиковать сайты на сервер. Настройки вносятся в среду WebMatrix, после чего сайт пользователя, загруженный в среде, готов к публикации с помощью нажатия всего одной кнопки (рисунок 1.4).
Рис. 1.4. Ввод данных WebMatrix-хостинга в среду разработки
Преимущество WebMatrix-хостинга очевидно – это крайняя простота использования для конечного пользователя, которому больше не нужно использовать панели администрирования для загрузки файлов и баз данных на сервер. Кроме того, другим положительным качеством является сама среда разработки, которая предлагает множество функций и инструментов для полноценной разработки веб-приложений с доступом к готовым шаблонам популярных приложений.
В связи с упрощенным доступом пользователей к WebMatrix-хостингу такие тарифы не только не дороже, но часто предлагаются дешевле, чем обычный шаред-хостинг. Цена может составлять всего десятки рублей в месяц, при этом качество услуги будет таким же, как и у шаред-хостинга, а удобство – значительно выше.
Виртуальные сервера
С появлением технологий виртуализации, то есть запуска нескольких операционных систем в рамках одного компьютера, виртуальные сервера прочно заняли нишу в среде хостинга.
С одной стороны виртуальные сервера легко управляются хостером, могут быть запущены на одном сервере и позволяют ему предлагать широкий спектр разных тарифов и операционных системы на выбор. С другой стороны, пользователь получает полноценный сервер с полным доступом к ОС и возможностью удаленного доступа к системе (рисунок 1.5).
Рис. 1.5. Работа с сервером через удаленный доступ
Обычно виртуальные сервера у хостеров стоят дороже, чем шаред-хостинг. Связано это прежде всего с тем, что виртуальной операционной системе требуется больше ресурсов, чем приложению настроенному на шаред-хостинге. Вместе с тем, платя больше, пользователь и получает больше: больше ресурсов, больше возможностей, тонкую настройку системы, установку приложений по желанию.
В зависимости от мощности виртуальной машины, которую предлагает хостер, цена за ее использование будет меняться. Цены на виртуальный хостинг постоянно уменьшаются. На момент написания этой статьи, самый дешевый хостинг стоил уже менее 800-1000 рублей в месяц. Вместе с тем производительные виртуальные машины с многими ядрами и большим количеством оперативной памяти могут стоить тысячи и даже более 10 000 рублей.
Выделенные сервера
Выделенный (dedicated) сервер – это реальный сервер, который арендуется или размещается (colocation) на площадке у хостера. Выделенные сервера отличаются от виртуальных прежде всего производительностью и возможностью модификации аппаратного обеспечения.
Некоторые случаи требуют, чтобы сервис работал не на виртуальной операционной системе и машине, но на реальном аппаратном обеспечении. В таких случаях, аренда или размещение реального сервера в дата-центре будет правильным решением.
Как правило, аренда сервера дороже размещения своего собственного сервера на площадке. Цены и первого и второго решения колеблются в районе от нескольких тысяч рублей, до более 10 000 рублей в месяц. В любом случае, пользователь, арендующий или размещающий выделенный сервер в дата-центре, получает все положительные стороны присущие дата-центрам: надежное электропитание, стабильный и скоростной интернет, администрирование оборудования и так далее.
Облачные сервисы
В настоящее время все большее развитие получает новый класс размещения веб-приложений – облачные сервисы.
Облачные сервисы называются так из-за того, что некоторая часть компонентов системы скрыта от вас и находится как бы «в облаке», так что при работе с сервисом вы его потребляете, но не имеете представления о том, как и на чем он работает.
Облачные сервисы подразделяются на виды, из которых можно выделить три самых важных:
- Infrastructure as a Service (IaaS) – облачный сервис который предлагает воспользоваться инфраструктурой поставщика, без потребности вникать как эта инфраструктура работает и на чем построена. Вы приобретаете конкретные ресурсы за конкретную стоимость;
- Software as a Service (SaaS) – облачные сервисы, которые предлагают услугу пользователю, которая ранее обычно была построена на базе собственных средств. Например, SaaS-сервисом можно считать почтовый сервис Hotmail, который предлагает решение заменяющее инфраструктуру почтового сервера на предприятии;
- Platform as a Service (PaaS) – облачный сервис, который предлагает базовую платформу для запуска приложений. Такой сервис позволяет полностью абстрагироваться от понятия инфраструктуры и оперировать только понятиями ресурсов и требуемой производительности. Кроме того, PaaS предлагает возможность запускать приложения без необходимости конфигурирования и настройки окружения. По сути, в PaaS приложения вообще не знают о том, на какой ОС они запущены. Вместо этого платформа предлагает приложению все, что ему нужно для успешного запуска, в том числе возможность гибкого масштабирования и обеспечение доступа к хранилищам данных.
Наиболее интересной для веб-разработчика являются облачные сервисы PaaS, поскольку они позволяют вообще не думать о слое операционной системы и окружения, в котором работают приложения. Вместо этого разработчик может сконцентрироваться на функционале приложения, и, опубликовав его в облако PaaS, ожидать автоматического масштабирования и регулирования потребления ресурсов.
Облачные сервисы позволяют экономить на затратах, так как предлагают платить только за потребляемые ресурсы и не платить за простой. При этом у разработчика всегда в запасе есть практически неограниченные возможности масштабирования. Так, начав с маленького экземпляра в облаке, разработчик и его сервис могут постепенно разрастись в десятки больших экземпляров без каких либо затрат на обновление оборудование и исследование инфраструктуры предприятия. Разработчик просто говорит облаку, что ему нужно больше ресурсов и облако предоставляет ему все, что требуется.
Облачные сервисы могут требовать от разработчика смены образа мышления при разработке ПО. В случае использования облака, разработчик будет платить за потребляемые ресурсы, поэтому хорошо и правильно написанное приложение будет «тратить» меньше денег, чем то, которое написано без учета требований облачного сервиса.
Сегодня наиболее продвинутой и технологически мощной PaaS платформой является платформа Windows Azure. В этом облаке могут работать приложения, написанные на разных языках программирования и использующих разные инструменты. Поддерживаются и Java и PHP и Ruby и, конечно, ASP.NET-приложения.
Платформа Windows Azure предлагает встроенные сервисы обеспечения авторизации и аутентификации, кеширования, масштабирования нагрузки, отказоустойчивости и многое другое. Облачная реляционная база данных SQL Azure позволяет использовать на платформе Windows Azure реляционные базы данных, знакомые разработчикам.
Кроме того, разработчикам под Windows Azure предлагается обширная поддержка в виде инструментов, обучающих и справочных материалов, видео-курсов и примеров исходного кода.
Заключение
В этой главе были рассмотрены популярные виды хостинга, которые предлагает сегодняшний рынок. Мы рассмотрели вариант хостинга на собственной инфраструктуре, шаред-хостинг, виртуальный хостинг, возможности размещения или аренды выделенных серверов. В конце мы познакомились с понятием облачных сервисов.
Мы узнали плюсы и минусы разных вариантов размещения веб-приложений. В следующих главах мы познакомимся с типами хостинга ближе.