вторник, 8 апреля 2008 г.

Вкратце о Google App Engine.

Google открыл платформу для создания и запуска server-side приложений на серверах Google. Ключевые моменты:

Готовое окружение для программирования на Python, c некоторыми ограничениями.


Python запускается в sandbox, который не позволяет использовать некоторый функционал, относящийся к OS — осуществлять запись в файловую систему, использовать сокеты, threads, fork, exec, системные вызовы. Учитывая то, что приложение как бы висит в воздухе, такие ограничения объяснимы. В связи с этим некоторые модули заменены на заглушки.
Подозреваю, такая же судьба у модулей, написанных на C. Я пока что не пробовал импортировать такие модули, но без знания архитектуры и набора системных библиотек той машины, на которой будет исполняться код, такие модули бесполезны.
Вместо низкоуровневой работы с сокетами предоставлен модуль для запросов по HTTP. Отдельный модуль для email. Вместо файловой системы — Google BigTable с SQL-like интерфйсом (об этом ниже). Все остальное — обычный Python 2.5. Django — в комплекте :). Методы развертывания — от простого print до WSGI-приложения.

Вместо файловой системы - распределенное хранилище Google BigTable.


От файловой системы остаются только те статические файлы, которые загружены вместе с приложением — их можно читать. Для всего остального — BigTable. API очень смахивает на Django DB/Model API. Язык запросов — GQL — на SQL. Все просто и понятно.

Интеграция с Google Accounts


Позволяет аутентифицировать пользователей, используя механизм, принятый в Google; доступны некоторые данные текущего залогиненного пользователя Google, работающего с приложением. Что это дает? Догадайтесь.

Выводы


В-общем, к многочисленным API Google добавил возможность развертывания практически любых пользовательских приложений на своих серверах. Ограничения касаются только приложений, для которых необходимо низкоуровневое сетевое взаимодействие (за пределами HTTP). Ну или требующих некоторой специфической функциональности, типа обработки изображений, для которой обычно используются модули, реализованные на C.

Немаловажно, что бесплатный пакет — 500 Мб места и 5 млн. хитов в месяц. Цены на то что сверху пока не озвучены, но что-то мне подсказывает, что многие хостеры будут не очень довольны таким оборотом событий. А как все это приятно программистам на Python, об этом вообще речи не идет :)

В-общем, по-моему это — бомба. Не буду пока писать про большое поле возможностей для всякой социальщины вокруг Google Accounts и всяких приложений Google, про то, как это касается Facebook и т.п. - пока не все мысли созрели. Платформа, конечно, заслуживает более подробного обзора, вернусь к этому когда получу там аккаунт и попробую.

Ну а сейчас — дискотекакино по теме.




Постоянные читатели