PHP код теперь можно запускать под Google App Engine

Апрель 15, 2009

Недавний анонс поддержки Java в App Engine от Google породил целую волну экспериментов с реализацией возможности запуска кода под другие языки – Clojure, Beanshell, Groovy, Javascript, Ruby, Scala, Scheme и другие (если они имеют соответствующие JVM-реализации).

Напомню, что проект или приложение, размещенное на Google App Engine, может хоститься бесплатно, если оно вписывается в стандартную квоту, которая в принципе достаточна для сайтов с 5 млн хитов в месяц. В AppEngine для хранения данных используется специальный интерфейс к собственной высокомасштабируемой платформе BigTable, которая кардинально отличается от СУБД на основе SQL.

Так как подавляющее большинство web-разработчиков в своей работе использует язык PHP, им будет интересно узнать, что теперь и их приложения возможно запустить под App Engine. Для этого используется JVM-движок Quercus, который прозрачно выполняет перекомпиляцию в Java-байткод. Примечательно, что по тестам многих разработчиков скорость выполнения такого PHP кода гораздо выше работы стандартного движка без использования дополнительных механизмов ускорения.

Остается вопрос: как правильно работать из PHP с фирменными API от Google: Datastore, Mail, Users и прочими? Если есть желание провести эксперименты, присоединяйтесь к русскоязычной группе проекта


Новости GoGrid

Август 25, 2008

Новые возможности:

  • GoGrid представила поддержку операционной системы Windows Server 2008. Как сообщает Microsoft, их новая ОС обеспечивает более лучшую производительность и безопасность по сравнении с Windows Server 2003. В дополнении, она еще лучше работает с PHP, чем ее предшественница, что не может не порадовать PHP разработчиков, практикующих развертывание сайтов на технологии WIMP. Вы также можете использовать доступные новые образы серверов, для тестирования и планирования перехода на Windows Server 2008 без покупки дополнительного железа или инвестиций в программное обеспечение. Используя GoGrid можно арендовать сервер на пару часов, например, чтобы подготовиться к сдаче экзаментов по новой операционной системе.
  • Биллинговый порог в $100. Если вы используете тарифный план Pay-As-You-Go, то деньги не будут списываться до тех пор, пока не набежит общая сумма за оказанные услуги, превышающая $100. Эта возможность была введена в ответ на просьбы клиентов, которым было неудобно видеть на своих счетах многочисленные транзакции. Не забудьте, что при переходе на предоплаченные тарифные планы можно сэкономить до 50%.
  • Кнопка Stop. Была временно убрана с панели управления, в связи с тем, что большинство клиентов ошибочно считало, что останов сервера приведет к прекращению начисления за использование ресурсов. GoGrid планирует доработать эту функциональность и предоставить такую необходимую возможность.

Исправлены ошибки:

  • Работа с SSL через балансировщики нагрузки
  • Удаление ключей интерфейса API

Бесплатный хостинг в стиле Google App Engine

Август 6, 2008

Оригинал статьи – http://blog.appenginefan.com/2008/04/free-webhosting-google-app-engine-style.html

Недавно я обсуждал проблему, как можно выжать больше возможностей из тех 10 приложений, которые допускается создать во время тестового периода. Что делать, если стоит совершенно противоположная задача? Что если зарегистрирован хороший идентификатор приложения и нет никаких идей, как правильно его использовать? Почему бы не запустить на нем свой персональный сайт со статичным содержимым? Тем более, что это все бесплатно :-)

Самое маленькое приложение

Следующий файл app.yaml является полноценным приложением под App Engine. Достаточно поместить все файлы в каталог «static» и сайт будет работать:

application: mysite
version: 1
runtime: python
api_version: 1

handlers:
- url: /(.*)
static_files: static/\1
upload: static/(.*)

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

Другими словами, в простом случае мы можем перевести наш персональный сайт на платформу App Engine, выполнив некоторые действия по настройке файла конфигурации. Но подождите, это еще не все:

Настройка шаблонов

Большинство разработчиков платформы App Engine в первые дни открытия попросили компанию Google включить в движок реализацию языка PHP. Безусловно для этого имеются множество причин, но я сомневаюсь что большинство типичных задач, для которых используется PHP, не покрываются возможностями шаблонов Django. Если, к примеру, вы используете PHP только для того, чтобы дублировать в каждой странице сайта одну и ту же навигационную панель, то App Engine это для вас.

Посмотрите на сайт Training Wheels. Он является примером того, как с помощью файла app.yaml можно реализовать обработку страниц с более сложной структурой:

  • запросы к файлам, которые не заканчиваются строками «django» и «djhtml» обрабатываются как статический контент
  • запросы же к файлам с расширениями «django/djhtml» обрабатываются с помощью шаблонной системы Django

В других словах вы можете использовать богатейшие возможности шаблонов Django, без написания единой строчки кода на языке Python. Для дополнительной информации – обратитесь к разделу Downloads рассматриваемого выше сайта.

Обработка больших файлов

На сегодняшний момент, существуют ограничения на размер одного файла, размещаемого на платформе App Engine. Тем не менее, независимо от размера файла может иметь смысл разместить большие файлы в другом месте, к примеру на Google Sites. Причина, почему это стоит сделать: квота. К примеру, если вы выложите для загрузки большой файл (типа большого pdf документа), его могут скачивать много раз за день. Что можно сделать, чтобы не закончилась квота? Достаточно создать раздел «file bin» на Google Sites, загрузить в него большие файлы, которые также будут размещаться там без взимания платы. Для примера смотрите раздел Downloads вышеприведенного сайта.

В завершении

Таким образом, если вы еще не придумали какое прорывное приложение можно создать на платформе, есть смысл начать с миграции на нее вашего персонального сайта. Это не только позволит сэкономить несколько баксов в год, а также получить дополнительные возможности по созданию динамического контента на Google App Engine, когда они вам понадобятся.