Google App Engine
Эта статья или её секция содержит информацию о программном обеспечении, которое в данный момент находится в разработке. Содержимое статьи может значительно измениться в ходе разработки ПО.
|
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
ar:محرك تطبيقات جوجل de:Google App Engine en:Google App Engine es:App Engine fr:Google App Engine ja:Google App Engine zh:Google App Engine
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....