Google App Engine

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Google App Engine
Appengine.gif
Gaeru.png
Тип

среда разработки
веб-фреймворк

Разработчик

Google

Операционная система

GNU/Linux

Последняя версия

1.9.6 (3 июня 2014)

Лицензия

GPLv2

Сайт

appspot.com

Google App Engine — сервис хостинга сайтов и web-приложений на серверах Google с бесплатным именем <имя_сайта>.appspot.com, либо с собственным именем, задействованным[1] с помощью служб Google.

App Engine представлена в апреле 2008, доступны как бесплатные аккаунты:[2] «…до 1 Гб дискового пространства, 10 Гб входящего трафика в день, 10 Гб исходящего трафика в день, 200 миллионов гигациклов CPU в день и 2000 операций отправления электронной почты в день»,[3] так и возможность приобретения дополнительных ресурсов[4].

Приложения, разворачиваемые на базе App Engine, должны быть написаны на Python, Java, Go либо PHP. Последние два до сих пор имеют статус «экспериментальных» инструментов, хотя Google и заявлял о намерениях расширить список поддерживаемых языков программирования и сред, а сам сервис сделать независящим от какого-либо языка программирования. Среда исполнения Python[5] включает в себя полную реализацию возможностей самого Python, большинство функций стандартной библиотеки языка, ограниченную версию Django, и т. д.

Предлагается набор API для сервисов хранилища, datastore API (BigTable),[6] аккаунтов Google,[7] загрузки данных по URL,[8] электронной почты[9] и т. д.

Предоставлена возможность использовать планировщик задач cron как для приложений реализованных на Python, так и на Java. Разрешено планирование не более 20-ти заданий.[10][11]

Использование службы аккаунтов Google позволяет быстро начать работу с приложением, нет необходимости проводить отдельную регистрацию учётных данных на каждом сайте. Это также позволяет разработчику не заботиться о реализации ещё одной системы регистрации пользователей специально для своего приложения.

Платформа Google конкурирует с аналогичными сервисами от Amazon, которые предоставляют возможности размещать файлы и веб-приложения, используя свою инфраструктуру.

Отличия от традиционной модели хостинга приложений[править | править вики-текст]

В отличие от многих обычных размещений приложений на виртуальных машинах, таких как Amazon EC2, платформа App Engine тесно интегрирована с приложениями и накладывает на разработчиков некоторые ограничения. Среды параллельной обработки позволяют применять многое из программного обеспечения, созданного для Unix-подобных систем, в то время как App Engine требует от разработчика использовать один из языков программирования: Python, Java, Go (с мая 2011) или PHP (в экспериментальном режиме), а для хранения информации применять хранилище (Datastore) — подмножество проприетарной базы данных BigTable (en), являющейся ноу-хау компании Google.

Хотя многие из разработанных на языке Python приложений возможно запустить без изменений для App Engine (исключая те, которые требуют доступа к низкоуровневым функциям системы или доступа к сети), использование хранилища потребует значительных сил от разработчиков на адаптацию приложений. В отличие от популярных СУБД MySQL и PostgreSQL, хранилище не является реляционной базой данных, не требует схемы и нормализации данных. Архитектура платформы поддерживает масштабирование без изменения кода. Реализация поддержки реляционной логики привела бы к значительному замедлению работы[источник не указан 345 дней]. Нереляционный характер хранилища требует от разработчиков использования нетрадиционной архитектуры хранения и обработки данных.

В то же самое время все эти ограничения могут привести к тому, что многим разработчикам придётся прилагать дополнительные усилия для адаптации к новой среде, и они предпочтут выбор альтернативных платформ.

Ограничения[править | править вики-текст]

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

Нет доступа на запись в файловую систему сервера. Единственный способ сохранять данные — внутреннее хранилище, нереляционная, высокомасштабируемая база данных. Хранилище отличается от реляционных СУБД MySQL и PostgreSQL, которые используются на большинстве сайтов.

Системы управления сессиями, использующие файловую систему, не будут работать. Google предоставляет альтернативный вариант — Memcache API. Есть возможность организовать авторизацию пользователей через аккаунты Google.

Google широко использует в своих приложениях технологию MapReduce, и её поддержка, вероятно, будет добавлена к возможностям платформы.[12]

App Engine имеет поддержку SQL с Google Cloud SQL [13].

Пример самого маленького приложения[править | править вики-текст]

Сайт helloworld.appspot.com из одной страницы «index.html» требует[14] загрузки[15] на серверы Google App Engine двух файлов:

  • …/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>

См. также[править | править вики-текст]


Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]