eWeek Labs: сервис на базе Linux, Apache, MySQL и PHP предоставляет многуровневое кеширование, балансировку нагрузки, масштабирование базы данных и контроль версий кода в условиях облака Amazon Web Services.

Облачный сервис PHP Fog предлагается в виде “платформа-как-сервис” [PaaS, Platform-as-a-Service] и, как следует из названия, нацелен на PHP-приложения. Наряду с некоторыми другими новыми сервисами PHP Fog заполняет пустующую нишу на рынке PaaS, в то время как хорошо известные сервисы PaaS нацелены на другие языки — в основном Java, Ruby и Python.

Публично доступный с мая, этот сервис предлагает многоуровневое кеширование, балансировку нагрузки, масштабирование базы данных и контроль версий кода. В качестве базовой инфраструктуры выбран веб-сервис Amazon Web Services.

Развертывая несколько экземпляров Amazon EC2 (Elastic Compute Cloud), пользователь сервиса получает возможность обслуживания клиентов PHP-приложений с балансировкой нагрузки. Но масштабирование не автоматическое: с помощью веб-консоли PHP Fog пользователи должны вручную уменьшать или увеличивать количество активных серверов.

Каждый подписчик облачных услуг получает свой набор экземпляров EC2 с сервисом баз данных на основе масштабируемых экземпляров MySQL, работающих в многоарендном режиме [multitenant]. Для тех, кто предпочитает выделенные экземпляры MySQL, сервис PHP Fog поддерживает изолированные экземпляры Amazon Relational Database Service.

Разработчики взаимодействуют с сервисом PHP Fog с помощью Git — распределенной системы контроля версий. Во время тестов я установил ключ SSH (Secure Shell) для использования с сервисом. Я использовал его для аутентификации в PHP Fog и последующей загрузки-выгрузки PHP-кода с помощью Git.

Сервис включает некоторое количество шаблонов “быстрого старта” для применения с популярными приложениями и объектными структурами. Эти шаблоны дают разработчикам возможность быстрого запуска WordPress, SugarCRM, Mediawiki, Jumla и Drupal, CakePHP, Zend Framework и др.

Первый тариф “Silver Cloud” предлагает микроэкземпляры серверов EC2 и может быть использован для хостинга до десяти отдельных приложений за 29 долл. в месяц (за один сервер). Покупатель может увеличивать и затем уменьшать количество серверов, оплата производится за то количество дней, когда дополнительные серверы были активны.

Два дополнительных тарифа — золотой и платиновый. “Золотой” предлагает малые экземпляры серверов EC2 с одновременной поддержкой тридцати приложений за 79 долл. в месяц (за сервер). “Платиновый” тариф предлагает большие экземпляры серверов EC2 для поддержки 125 приложений и стоит 249 долл. в месяц (за сервер).

Есть и бесплатный тариф “Shared Cloud” с поддержкой одного приложения, не масштабируемый и с обязательством выбрать другой тариф через шесть месяцев. Тем не менее тариф заслуживает внимания тех, кто желает протестировать сервис.

Тестирование PHP Fog

Я испытывал PHP Fog как потенциальную площадку для нашего блога Labs, который в настоящее время работает на WordPress и сервере Amazon EC2. Мы рассматриваем возможности перехода с Amazon на PaaS, чтобы в некотором смысле избавиться от рутины системного администрирования, и сервис PHP Fog выглядит вполне подходящим для этого.

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

Из консоли администратора этого экземпляра WordPress я мог обновиться до последнего релиза WordPress (3.1.4) и установить дополнения. Но изменения файлов, выполненные в приложении, не синхронизировались с репозитарием приложения в Git. Поскольку PHP Fog предлагает использование одного из двух методов модификации, я выбрал вместо Git свою рабочую станцию для скачивания-закачивания, хранения и модификации файлов.

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

Наряду с доступом к каталогам и файлам приложений с помощью Git сервис PHP Fog предоставляет пользователям доступ к базе данных MySQL с помощью веб-консоли phpMyAdmin, популярного инструмента администрирования.

Благодаря партнерству с New Relic, PHP Fog предоставляет статистику и диагностическую информацию как услугу “приложение как сервис”. Для каждого приложения, которое я создал в своем облаке, мне был обеспечен доступ к панели мониторинга.

Сервис PHP Fog нуждается в улучшении поддержки URL. Я могу ассоциировать приложение либо с адресом на одном из моих доменов, либо с адресом на *.phpfogapp.com — но не на обоих сразу. Другие сервисы, такие как Google App Engine, предоставляют доступ с обоих адресов — appspot.com или собственного домена.

В случае с моим блогом можно указать адрес labs.eweek.com как предпочитаемый для приложения PHP Fog, выбрать сервер DNS и остаться без доступа к приложению на время обновления информации в DNS. В случае же “простого” хостинга Amazon EC2 наш сайт доступен прямо по IP-адресу во время обновления DNS.

Более того, на данный момент шифрование с помощью SSL (Secure Sockets Layer) доступно только для адресов *.phpfogapp.com, но не для собственных доменов. Руководители PHP Fog говорят, что компания работает над решением этой проблемы.