Google App Engine
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
| Эта статья или её секция содержит информацию о программном обеспечении, которое в данный момент находится в разработке. Содержимое статьи может значительно измениться в ходе разработки ПО.
|
| Google App Engine | |
| Файл:Appengine.gif | |
| Тип | среда разработки веб-фреймворк |
| Разработчик | |
| ОС | GNU/Linux, GPLv2 |
| Лицензия | не лицензируется |
| Сайт | appspot.com |
Google App Engine — сервис хостинга сайтов и web-приложений на серверах Google с бесплатным именем <имя_сайта>.appspot.com, либо с собственным именем, задействованным [1] с помощью служб Google.
App Engine представлена в апреле 2008, находится в режиме тестирования, доступны как бесплатные аккаунты: [2] «…до 500 MB дискового пространства, 10GB входящего трафика в день, 10GB исходящего трафика в день, 200 миллионов гигациклов CPU в день и 2000 операций отправления электронной почты в день»,[3] так и возможность приобретения дополнительных ресурсов[4].
Приложения, разворачиваемые на базе App Engine, должны быть написаны на Python либо Java. Среда исполнения[5] включает в себя полную реализацию возможностей самого Python, большинство функций стандартной библиотеки языка, ограниченную версию Django, и т. д.
Предлагается набор API для сервисов хранилища, datastore API (en),[6] аккаунтов Google,[7] загрузки данных по URL,[8] электронной почты,[9] и т. д.
Предоставлена возможность использовать планировщик задач cron как для приложений реализованных на Python, так и на Java. Разрешено планирование не более 20-ти заданий.[10][11]
Использование службы аккаунтов Google позволяет быстро начать работу с приложением, нет необходимости проводить отдельную регистрацию учётных данных на каждом сайте. Это также позволяет разработчику не заботиться о реализации ещё одной системы регистрации пользователей специально для своего приложения.
Платформа Google конкурирует с аналогичными сервисами от Amazon (en), которые предоставляют возможности размещать файлы и веб-приложения, используя свою инфраструктуру.
[править] Отличия от традиционной модели хостинга приложений
В отличие от многих обычных размещений приложений на виртуальных машинах, таких как Amazon EC2, платформа App Engine тесно интегрирована с приложениями и накладывает на разработчиков некоторые ограничения. Конкурирующие среды позволяют оперировать множеством программного обеспечения, созданного под *NIX системами, в то время как App Engine требует от разработчика обязательного использования языков программирования Python или Java и сохранения информации в собственном хранилище (Datastore) — подмножестве проприетарной базы данных BigTable (en), являющейся ноу-хау компании Google.
Хотя большинство из разработанных на языке Python приложений возможно запустить без изменений под App Engine (исключая те, которые требуют доступа к низкоуровневым функциям системы или доступа к сети), использование хранилища потребует значительных сил от разработчиков на адаптацию приложений. В отличие от популярных СУБД MySQL и PostgreSQL, хранилище не является реляционной базой данных, в частности не поддерживает схему и не требует нормализации данных. Архитектура платформы поддерживает масштабирование без изменения кода. Реализация поддержки реляционной логики привело бы к значительному замедлению работы. Не реляционный характер хранилища требует от разработчиков ипользования нетрадиционной архитектуры хранения и обрабоки данных. Например, вместо нормализованного хранения данных в двух или нескольких таблицах с последующим объединением в запросе (join), логически связанные данные рекомендуется хранить в одной таблице.
В то же самое время все эти ограничения могут привести к тому, что многим разработчикам придётся прилагать дополнительные усилия для адаптации к новой среде, и они предпочтут выбор альтернативных платформ.
[править] Ограничения
Среда выполнения платформы Google App Engine позволяет разработчику контролировать лишь часть параметров операционной системы, что может представлять проблему для разработки приложений.
Нет доступа на запись в файловую систему сервера. Единственный способ сохранять данные — внутреннее хранилище, нереляционная, высокомасштабируемая база данных. Хранилище отличается от реляционных СУБД MySQL и PostgreSQL, которые используются на большинстве сайтов.
Системы управления сессиями, использующие файловую систему, не будут работать. Google предоставляет альтернативный вариант — Memcache API. Есть возможность организовать авторизацию пользователей через аккаунты Google.
Google широко использует в своих приложениях технологию MapReduce, высокоскоростной интерфейс для параллельных вычислений, проводимых на множестве узлов кластера, её поддержка, вероятно, будет добавлена к возможностям платформы.[12]
[править] Пример самого маленького приложения
Сайт helloworld.appspot.com из одной страницы «index.html» требует[13] загрузки[14] на серверы Google App Engine двух файлов:[15]
- …/helloworld/app.yaml — конфигурационный файл приложения helloworld в его корневом каталоге
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: / static_files: static/index.html upload: static/index.html
- …/helloworld/static/index.html
<html><h1>Hello World !</h1></html>
[править] См. также
[править] Примечания
- ↑ Использование Google App Engine вместе со своим доменом
- ↑ Что такое Google App Engine?.
- ↑ Условия предоставления сервиса Google App Engine
- ↑ Условия и тарифы приобретения дополнительных ресурсов
- ↑ Среда выполнения языка Python
- ↑ Datastore API (работа с хранилищем)
- ↑ Users API (интерфейс авторизации пользователей)
- ↑ URL Fetch API (интерфейс загрузки URL)
- ↑ Mail API (отправка почты)
- ↑ Задачи, запланированные с помощью Cron для Python
- ↑ Задачи, запланированные с помощью Cron для Java
- ↑ Проект MapReduce для AppEngine
- ↑ Настройка приложения. Обработчики статических файлов
- ↑ Публикация приложения
- ↑ Бесплатный хостинг в стиле Google App Engine
[править] Ссылки
- appspot.com — официальный сайт Google App Engine
- Документация — неофициальный сайт на русском языке
- Руководство для начинающих (Hello, World!, авторизация, гостевая книга)
- Форум на Google Groups
- Google App Engine for Java — русскоязычная группа разработки приложений на Java под Google App Engine
- IBM developerWorks
de:Google App Engine en:Google App Engine es:App Engine fr:Google App Engine ja:Google App Engine zh:Google App Engine