Было бы замечательно, если бы у вас и ваших клиентов всегда было под рукой нужное оборудование, с правильной версией вашей любимой среды и мощью, необходимой для работы всех ваших приложений. Конечно, здесь, в реальном мире, это правда только иногда. Вот почему у каждого разработчика должны быть некоторые варианты управляемого хостинга, но какой из них вы можете использовать для поддержки своих приложений? В этой статье мы рассмотрим некоторые из лучших дружественных для разработчиков веб-хостов для вашего следующего проекта.
Кандидаты
Мы сравнили шесть хостинг-провайдеров, которые, как известно, относительно дружелюбны к разработчикам В произвольном порядке мы рассмотрели планы таких компаний, как A Small Orange, DreamHost, Hosting Rails, Media Temple, RailsPlayground и WebFaction.
Мы рассмотрели все обычные подозреваемые при оценке хостов: дисковое пространство, ежемесячная стоимость, срок контракта и так далее. При выборе хостов для исследования мы старались придерживаться тех, которые подходят разработчикам: низкие ограничения ресурсов, плохая или отсутствующая поддержка упрощенных панелей администрирования и ограниченный контроль — вот некоторые из признаков, которые побудили нас исключить план из исследования.
Почти у всех планов в финальной линейке были достаточно щедрые лимиты ресурсов, так что вам никогда не пришлось бы о них беспокоиться; множество баз данных, пользователей, доменов и почтовых ящиков, с единственными ограничениями, касающимися дискового пространства и пропускной способности. На этом этапе масштабирования использование ЦП / ОЗУ является большей проблемой, так как большинство этих хостов имеют какую-то политику для такого использования.
Другим важным фактором была языковая поддержка: мы ожидали, что все эти хосты будут поддерживать PHP, Python и Ruby, по крайней мере, с поддержкой Perl. Для развертывания приложений, отличных от PHP, поддержка FastCGI была абсолютным минимумом, при этом желательно наличие mod_python и Passenger (mod_rails).
Наконец, мы попробовали несколько реальных тестов, запустив программное обеспечение на этих веб-хостах. Мы начали с предустановочной проверки Joomla , которая проверяет некоторые разумные значения для директив конфигурации PHP, а затем установили некоторые базовые приложения PHP и Django, используя любые методы установки, которые предоставляет хост.
Мы выложили каждый план и функцию в удобную таблицу, но, конечно, хорошее сравнение должно идти глубже — давайте обсудим каждое предложение более подробно.
Маленький оранжевый: маленький
Мы решили взглянуть на план Small Orange Small — хотя даже план Tiny вполне годится для небольшого приложения, план Small — лучшее сравнение с другими планами в нашей линейке.
В A Small Orange контрольной панелью является cPanel 11, которая на первый взгляд имеет множество вариантов практически для всех возможных задач — настройка электронной почты, администрирование MySQL и многое другое. Однако использование универсального решения панели управления делает некоторые проблемы неясными: например, чтобы разрешить доступ к оболочке с помощью SSH в A Small Orange, необходимо запросить его при регистрации или подать запрос на поддержку через совершенно отдельную систему. Тем не менее, система cPanel по-прежнему включает в себя область для настройки доступа SSH.
MySQL был интересным вопросом здесь, и действительно на всех хостах cPanel, которые мы рассмотрели — сервер БД всегда работал на той же машине, что и веб-сервер. Два других хоста cPanel в этом обзоре также имели эту проблему, которая может быть лишь незначительной проблемой при тестировании программного обеспечения, но может повлиять на вашу способность масштабировать развернутое приложение без переключения серверов.
Одной из областей, где сиял A Orange, было внедрение PHP; не было никаких проблем с проверкой предустановки Joomla, за display_errors
директивы display_errors
( ON
вместо рекомендованного OFF
Joomla). Это было довольно распространенным явлением среди опрошенных хостов, но значение ON
для display_errors
является небольшой проблемой, если оно отключено для каждого приложения.
Производительность PHP кажется превосходной. Чтобы проверить производительность PHP, мы использовали WordPress для преобразования XML-файла, содержащего более 500 сообщений с комментариями. Сервер Small Orange быстро выполнил импорт XML, и все сообщения были импортированы в течение одной или двух минут. Мы провели аналогичный тест на Media Temple, и сервер продолжал работать через десять минут!
Хотя официальной поддержки Django нет, инструкции, найденные в вики A Small Orange, были достаточно подробными, чтобы начать развертывание FastCGI. Однако подход FastCGI был довольно длительным и оставлял мало места для оптимизации и настройки; обслуживание статических файлов в отдельном домене могло бы быть более простым, чем это было, и система cPanel предложила небольшую помощь.
DreamHost
DreamHost предлагает только один план, цена которого варьируется в зависимости от того, сколько времени вы выбрали для предоплаты, и какие дополнительные услуги вы приобретаете.
В этом исследовании DreamHost работает с большей пользовательской базой, чем большинство хостов, и разработал серию собственных систем, основанных на настраиваемой панели управления. На панели вы найдете набор параметров быстрого доступа для обычных подозреваемых: управление базами данных, доменами, пользователями и т. Д., А также детальный контроль над почтой, несколько систем отчетности и утилиты для все, от crontabs до списков рассылки и хранилищ Subversion. Также доступен широкий выбор вариантов установки в один клик, включая последнюю версию Joomla.
Предварительная проверка Joomla работала просто отлично, только с одной небольшой проблемой — опять же, display_errors ON
. Однако можно использовать собственную конфигурацию PHP в сервисе DreamHost; см. DreamHost вики для деталей. Развертывание CakePHP работало как положено из коробки, без проблем.
DreamHost не имеет официальной поддержки Django, поэтому общим решением является запуск Django под FastCGI. Мы развернули стандартное приложение для блога Django в сервисе DreamHost, следуя длинным инструкциям на вики-странице Django, без каких-либо серьезных проблем. Обслуживание мультимедийных файлов в отдельном домене было относительно простым благодаря гибкому управлению доменами DreamHost.
Для Rails DreamHost имеет очень хорошую настройку Phusion Passenger (mod_rails), которую вы можете настроить самостоятельно без помощи системного администратора. Вы можете включить его для каждого домена, и это отличный вариант для развертывания приложений Rails.
HostingRails: начинающий
Мы тестируем план HostingRails для начинающих , с чрезвычайно крошечной ценой всего $ 43,08 в год.
HostingRails рекламирует себя как Rails-ориентированный провайдер, но на самом деле это очень хороший универсал с довольно простым предложением. Их серверы работают под управлением cPanel 10 и загружены более чем достаточным количеством модулей Apache, гемов Ruby и расширений PHP. Управление сервером — это простое дело; Детали вашей оболочки указаны в приветственном письме, и все ваши домены работают более или менее из коробки.
Запуск проверки предустановки Joomla привел к той же ошибке, что и RailsPlayground — веб-сервер не смог записать в свой файл конфигурации, пока он не стал общедоступным. Аналогично, папки tmp и tmp / cache в CakePHP должны были стать доступными для всеобщего сведения, прежде чем Cake сможет записывать свои базы данных, кэши и другие временные данные. Joomla также отметил, что display_errors
был ON
. В целом, однако, опыт PHP был вполне удовлетворительным, без каких-либо серьезных проблем. Перезапись URL также работала из коробки.
Однако наш тест на Django был другим. Сначала вики-руководство указало нам установить собственную копию Python в наш домашний каталог, предполагая, что установленной версии Python (2.4.3 на нашем сервере) было недостаточно для последней версии Django. После компиляции Python нам пришлось установить модуль Python MySQL DB, чтобы установить MySQL-соединения из адаптера базы данных Django. Несколько быстрых изменений указали на систему при нашей пользовательской установке Python; Затем нам пришлось скопировать файл django-admin.py и указать его на наш собственный Python. Наконец, мы настроили динамическую конфигурацию FastCGI.
Хотя развертывание Django могло бы быть намного лучше, функциональность Host_Rails mod_rails значительно опережает пакет, как мы и ожидали! Инструкции по развертыванию Rails на вики-сайте HostingRails были чрезвычайно простыми и относительно быстрыми, хотя для этого требуется ручное вмешательство специалиста службы поддержки.
Медиа Храм: (gs) Грид Сервис
(Gs) Grid Service, предложенный Media Temple, был выдающимся в этом исследовании, и не только ценой — хотя он стоит 240 долларов в год, но он не совсем подходит для запасного испытательного стенда. Инфраструктура кластера серверов Media Temple позиционируется как чрезвычайно надежная система для размещения сайтов, которые могут столкнуться с неожиданным всплеском трафика; то есть, испытывают короткие периоды значительно превышающей среднюю нагрузку, такую как показ на Slashdot или Digg.
Решение по развертыванию Media Temple Django и Rails, называемое Containers, было основным моментом в этом обзоре. Начиная с 20 долларов в месяц, контейнер — это, по сути, мини-виртуальный частный сервер для вашей установки Django, Rails или MySQL. Контейнер Django, например, выделяет определенный объем оперативной памяти для ваших приложений Django и обеспечивает простое управление вашей версией Django и установленными яйцами для каждого контейнера. (Контейнер — это, по сути, сервер lighttpd перед потоками FastCGI, все предварительно настроены.)
Панель управления Media Temple чрезвычайно хорошо разработана и предлагает разумный уровень контроля над системами. В частности, панель предлагает значительную документацию и даже поставляется с руководством, в котором указаны имена пользователей, домены доступа и другие подробности обслуживания. Хотя самой панели не хватает того же уровня контроля, что и в других рассмотренных предложениях, она чрезвычайно удобна для развертывания. На момент написания этой статьи только опции Drupal, WordPress и Zen Cart были доступны для установки одним щелчком мыши.
Стоит упомянуть базу знаний Media Temple , удивительный ресурс с непревзойденной глубиной среди руководств веб-хостинга. Он даже включает видеоуроки, подходящие для конечных пользователей, такие как настройка программы электронной почты.
Результат установки Joomla был идентичен результату на DreamHost; все необходимые настройки выполнены, и мы снова обнаружили, что display_errors
были установлены в ON
. Наше развертывание CakePHP прошло без проблем, но именно система Django / Rails Container делает это предложение достойным каждого доллара: у нас было наше примерное приложение Django, открытое для бизнеса за считанные минуты, в отличие от лучшей части часа для A Small Orange и DreamHost. Один контейнер отлично справлялся с несколькими приложениями, а элементы управления на уровне приложений были чрезвычайно удобны для развертывания.
RailsPlayground
RailsPlayground предлагает довольно стандартный набор управляемых, VPS и выделенных хостинговых услуг — мы выбрали Developer Hosting Level One. Серверы относительно стандартизированы, работают под управлением cPanel 10, и компания хорошо известна в кругах Rails и Django за то, что она предлагает менее болезненное развертывание FastCGI, чем обычно. Интересно, что RailsPlayground предлагает решение для самостоятельного развертывания lighttpd с FastCGI для статического процесса, для которого группа поддержки выделяет выделенный порт.
Настройка cPanel была почти идентична настройке A Small Orange и будет полезна всем, кто имеет опыт работы с предыдущей версией cPanel; Для остальных из нас при первом входе была полезна коллекция вступительных видеороликов. Интересно, что в cPanel есть раздел для установки пакетов PEAR , который может быть полезен для работы с приложениями, которые в них нуждаются, особенно с проектами с открытым исходным кодом.
При тестировании развертывания Joomla и CakePHP нам пришлось вручную сделать папки, доступные для записи для веб-сервера; без этого Joomla не смогла обновить свой собственный файл конфигурации, и CakePHP также жаловался на недостаточный контроль над своей временной папкой. К счастью, SSH работал «из коробки» с деталями доступа в одном из пяти электронных писем, которые вы получите от RailsPlayground при запуске вашей учетной записи. Пару chmods позже, и мы были готовы к работе. Еще раз, Joomla обнаружил, что настройка display_errors
была ON
, но в остальном Joomla и CakePHP работали нормально, включая переписывание URL для Cake.
Развертывание Django было быстрым на RailsPlayground — меньше, чем подход Media Temple, но, тем не менее, относительно простым. Обслуживание файлов через отдельный домен не было проблемой, и на сервере, с которым мы работали, была установлена последняя стабильная версия Django с готовым к работе django-admin.py. В вики RailsPlayground есть полезное руководство по развертыванию Django и Rails, объясняющее каждый шаг.
WebFaction: Shared 1 Plan
Последнее и, возможно, не в последнюю очередь — мы протестировали план Shared 1 WebFaction , предложение, которое, возможно, является самым уникальным в этом обзоре.
WebFaction, ранее известная как python-hosting.com, специализируется на развертывании веб-приложений с потрясающими результатами. Панель управления является довольно простым делом, пользовательская система, которая выполняет свою работу — хорошо, пока мы не рассмотрим домены и приложения. У WebFaction есть уникальный подход к установщикам в один клик, создавая приложения в папке ~ / webapps, где доступно все, от Rails до Drupal и Django. После создания приложения веб-сайт можно настроить для подключения одного или нескольких приложений по определенным URL-адресам.
Мы начали создавать сайт «Static / CGI / PHP», и у нас была готова проверка предустановки Joomla в течение минуты. Единственное предупреждение от установщика было нашим старым другом, display_errors
— ON
вместо OFF
— со всем остальным готовым к работе. Однако наша установка CakePHP выявила некоторые неожиданные проблемы: из-за управляемой перезаписи URL WebFaction для каждого приложения мы не смогли заставить mod_rewrite использовать собственные красивые URL Cake. Все остальное, однако, работало нормально.
Однако в нашем развертывании Django панель управления действительно сияла; процесс был настолько прост, что не нужно было входить через SSH, чтобы запустить и запустить первый шаблон проекта. Было доступно и рекомендовано большое разнообразие версий Django (на момент написания, 0.96.3, 1.0, 1.0.2 и транка), а несколько предыдущих выпусков отмечены как «INSECURE». WebFaction даже предлагает выбор между mod_python и mod_wsgi; мы попробовали подход WSGI для этого обзора. После создания магистрального приложения Django мы могли сразу загрузить URL и были готовы к работе.
Развертывание было примерно таким же, как в Media Temple, и менее чем за 10 долларов в месяц (в зависимости от предоплаты), это, безусловно, отличный вариант для разработки Django. Если вы заинтересованы в таких фреймворках, как CherryPy , Pylons , Turbogears или что-то еще, что вы можете запустить в mod_python, посмотрите планы WebFaction; Официальная поддержка для всего этого включена из коробки.
Вердикт
В этом обзоре мы рассмотрели несколько отличных вариантов управляемого хостинга, и какой из них вы выбираете сами и что вам нужно. Вот наши выборы для общих сценариев.
Без проблем Rails / Django Deployment
Чтобы развернуть приложение Rails или Django с минимальными усилиями, трудно пройти мимо Media Temple. Их платформа Grid Server может быть более гибкой, но система Container делает развертывание вашего приложения быстрым и при этом совместимым с существующим контролем версий.
Второе место: система развертывания Django и Rails от WebFaction невероятна, обладает чуть большей гибкостью, чем опция Media Temple, и по более приемлемой цене. Определенно стоит посмотреть.
PHP Deployment Server
Маленький Апельсин выигрывает эту раздачу. Панель администрирования cPanel 11 имеет более чем достаточно параметров, чтобы держать PHP под контролем, а серверы достаточно мощны для того, чтобы вы на них не рассчитывали.
Второе место: RailsPlayground: просто необходимое количество энергии для запуска ваших приложений и поддержка достаточного количества сред, не поддерживающих PHP, для изучения. Просто следите за этими правами доступа к файлам!
Общий тестовый стенд для веб-разработки
Для этого нам понадобится WebFaction со множеством опций для беспроблемной проверки приложений PHP, Django и Rails. Специально разработанная архитектура дает вам возможность испытывать приложения в соответствии с вашими пожеланиями.
Второе место: маленький апельсин. Благодаря достаточной гибкости, относительно современным библиотекам и приложениям и стабильной среде вы сможете избежать проблем с развертыванием.