Google App Engine

Поделись знанием:
Перейти к: навигация, поиск
Google App Engine
Тип

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

Разработчик

Google

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

GNU/Linux

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

1.9.6 (3 июня 2014)

Лицензия

GPLv2

Сайт

[appengine.google.com ne.google.com]

Google App EngineGoogle App Engine

Google App Engine — служба хостинга сайтов и web-приложений на серверах Google с бесплатным именем [appspot.com <имя_сайта>.appspot.com], либо с собственным именем, задействованным[1] с помощью [www.google.com/a/help/intl/ru/ служб 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 (в экспериментальном режиме), а для хранения информации применять хранилище — подмножество проприетарной базы данных BigTable (en), являющейся ноу-хау компании Google.

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

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

Ограничения

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

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

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

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

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

Пример самого маленького приложения

Сайт [helloworld.appspot.com/ 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>

См. также


Напишите отзыв о статье "Google App Engine"

Примечания

  1. [www.googleappengine.ru/articles/domains.html Использование Google App Engine вместе со своим доменом]
  2. [code.google.com/intl/ru/appengine/docs/whatisgoogleappengine.html Что такое Google App Engine?]. [www.webcitation.org/66ARnM0Em Архивировано из первоисточника 15 марта 2012].
  3. [www.googleappengine.ru/terms.html Условия предоставления сервиса Google App Engine]
  4. [code.google.com/appengine/docs/billing.html Условия и тарифы приобретения дополнительных ресурсов]
  5. [www.googleappengine.ru/docs/python/ Среда выполнения языка Python]
  6. [www.googleappengine.ru/docs/datastore/ Datastore API (работа с хранилищем)]
  7. [www.googleappengine.ru/docs/users/ Users API (интерфейс авторизации пользователей)]
  8. [www.googleappengine.ru/docs/urlfetch/ URL Fetch API (интерфейс загрузки URL)]
  9. [www.googleappengine.ru/docs/mail/ Mail API (отправка почты)]
  10. [code.google.com/intl/ru/appengine/docs/python/config/cron.html Задачи, запланированные с помощью Cron для Python]
  11. [code.google.com/intl/ru/appengine/docs/java/config/cron.html Задачи, запланированные с помощью Cron для Java]
  12. [code.google.com/p/httpmr/ Проект MapReduce для AppEngine]
  13. [code.google.com/p/cloudsql/ Google Cloud SQL Пример приложения]
  14. [www.googleappengine.ru/docs/configuringanapp.html#Static_File_Handlers Настройка приложения. Обработчики статических файлов]
  15. [www.googleappengine.ru/docs/appcfgpy.html Публикация приложения]

Литература

  • Sanderson, Dan (October 26, 2012), [shop.oreilly.com/product/0636920017547.do Programming Google App Engine] (2nd ed.), O'Reilly Media, с. 536, ISBN 978-1449398262, <shop.oreilly.com/product/0636920017547.do> 
  • de Jonge, Adriaan (October 31, 2011), [www.informit.com/store/product.aspx?isbn=0132484781 Essential App Engine: Building High-Performance Java Apps with Google App Engine] (1st ed.), Addison-Wesley Professional, с. 304, ISBN 0-321-74263-X, <www.informit.com/store/product.aspx?isbn=0132484781> 
  • Guermeur, Daniel & Unruh, Amy (November 24, 2010), [www.packtpub.com/google-app-engine-java-and-gwt-application-development/book Google App Engine Java and GWT Application Development] (1st ed.), Packt Publishing, с. 480, ISBN 1-84969-044-8, <www.packtpub.com/google-app-engine-java-and-gwt-application-development/book> 
  • Roche, Kyle & Douglas, Jeff (December 31, 2009), [www.apress.com/9781430225539 Beginning Java Google App Engine] (1st ed.), Apress, с. 375, ISBN 1-4302-2553-X, <www.apress.com/9781430225539> 
  • Sanderson, Dan (November 23, 2009), [oreilly.com/catalog/9780596522735 Programming Google App Engine] (1st ed.), O'Reilly Media, с. 400, ISBN 0-596-52272-X, <oreilly.com/catalog/9780596522735> 
  • Severance, Charles (May 22, 2009), [oreilly.com/catalog/9780596800697 Using Google App Engine] (1st ed.), O'Reilly Media, с. 262, ISBN 0-596-80069-X, <oreilly.com/catalog/9780596800697> 
  • Ciurana, Eugene (February 2, 2009), [www.apress.com/9781430218319 Developing with Google App Engine] (1st ed.), Apress, с. 164, ISBN 1-4302-1831-2, <www.apress.com/9781430218319> 

Ссылки

  • [appengine.google.com/ Google App Engine] (англ.). — Официальный сайт.
  • [groups.google.com/group/google-appengine-ru/ Google App Engine Russian]. — Русскоязычная группа разработки.
  • [groups.google.ru/group/google-appengine-java-russian Google App Engine for Java on Russian]. — Русскоязычная группа разработки.
  • [www.googleappengine.ru/ Google App Engine]. — Сообщество разработчиков.
  • [www.ibm.com/developerworks/ru/ IBM developerWorks]. — Сообщество разработчиков IBM (имеется немало материалов по разработке для платформы GAE).


Отрывок, характеризующий Google App Engine

Князь Андрей, молча, глядя перед собой, слушал речь Пьера. Несколько раз он, не расслышав от шума коляски, переспрашивал у Пьера нерасслышанные слова. По особенному блеску, загоревшемуся в глазах князя Андрея, и по его молчанию Пьер видел, что слова его не напрасны, что князь Андрей не перебьет его и не будет смеяться над его словами.
Они подъехали к разлившейся реке, которую им надо было переезжать на пароме. Пока устанавливали коляску и лошадей, они прошли на паром.
Князь Андрей, облокотившись о перила, молча смотрел вдоль по блестящему от заходящего солнца разливу.
– Ну, что же вы думаете об этом? – спросил Пьер, – что же вы молчите?
– Что я думаю? я слушал тебя. Всё это так, – сказал князь Андрей. – Но ты говоришь: вступи в наше братство, и мы тебе укажем цель жизни и назначение человека, и законы, управляющие миром. Да кто же мы – люди? Отчего же вы всё знаете? Отчего я один не вижу того, что вы видите? Вы видите на земле царство добра и правды, а я его не вижу.
Пьер перебил его. – Верите вы в будущую жизнь? – спросил он.
– В будущую жизнь? – повторил князь Андрей, но Пьер не дал ему времени ответить и принял это повторение за отрицание, тем более, что он знал прежние атеистические убеждения князя Андрея.
– Вы говорите, что не можете видеть царства добра и правды на земле. И я не видал его и его нельзя видеть, ежели смотреть на нашу жизнь как на конец всего. На земле, именно на этой земле (Пьер указал в поле), нет правды – всё ложь и зло; но в мире, во всем мире есть царство правды, и мы теперь дети земли, а вечно дети всего мира. Разве я не чувствую в своей душе, что я составляю часть этого огромного, гармонического целого. Разве я не чувствую, что я в этом огромном бесчисленном количестве существ, в которых проявляется Божество, – высшая сила, как хотите, – что я составляю одно звено, одну ступень от низших существ к высшим. Ежели я вижу, ясно вижу эту лестницу, которая ведет от растения к человеку, то отчего же я предположу, что эта лестница прерывается со мною, а не ведет дальше и дальше. Я чувствую, что я не только не могу исчезнуть, как ничто не исчезает в мире, но что я всегда буду и всегда был. Я чувствую, что кроме меня надо мной живут духи и что в этом мире есть правда.
– Да, это учение Гердера, – сказал князь Андрей, – но не то, душа моя, убедит меня, а жизнь и смерть, вот что убеждает. Убеждает то, что видишь дорогое тебе существо, которое связано с тобой, перед которым ты был виноват и надеялся оправдаться (князь Андрей дрогнул голосом и отвернулся) и вдруг это существо страдает, мучается и перестает быть… Зачем? Не может быть, чтоб не было ответа! И я верю, что он есть…. Вот что убеждает, вот что убедило меня, – сказал князь Андрей.
– Ну да, ну да, – говорил Пьер, – разве не то же самое и я говорю!
– Нет. Я говорю только, что убеждают в необходимости будущей жизни не доводы, а то, когда идешь в жизни рука об руку с человеком, и вдруг человек этот исчезнет там в нигде, и ты сам останавливаешься перед этой пропастью и заглядываешь туда. И, я заглянул…
– Ну так что ж! вы знаете, что есть там и что есть кто то? Там есть – будущая жизнь. Кто то есть – Бог.
Князь Андрей не отвечал. Коляска и лошади уже давно были выведены на другой берег и уже заложены, и уж солнце скрылось до половины, и вечерний мороз покрывал звездами лужи у перевоза, а Пьер и Андрей, к удивлению лакеев, кучеров и перевозчиков, еще стояли на пароме и говорили.
– Ежели есть Бог и есть будущая жизнь, то есть истина, есть добродетель; и высшее счастье человека состоит в том, чтобы стремиться к достижению их. Надо жить, надо любить, надо верить, – говорил Пьер, – что живем не нынче только на этом клочке земли, а жили и будем жить вечно там во всем (он указал на небо). Князь Андрей стоял, облокотившись на перила парома и, слушая Пьера, не спуская глаз, смотрел на красный отблеск солнца по синеющему разливу. Пьер замолк. Было совершенно тихо. Паром давно пристал, и только волны теченья с слабым звуком ударялись о дно парома. Князю Андрею казалось, что это полосканье волн к словам Пьера приговаривало: «правда, верь этому».
Князь Андрей вздохнул, и лучистым, детским, нежным взглядом взглянул в раскрасневшееся восторженное, но всё робкое перед первенствующим другом, лицо Пьера.
– Да, коли бы это так было! – сказал он. – Однако пойдем садиться, – прибавил князь Андрей, и выходя с парома, он поглядел на небо, на которое указал ему Пьер, и в первый раз, после Аустерлица, он увидал то высокое, вечное небо, которое он видел лежа на Аустерлицком поле, и что то давно заснувшее, что то лучшее что было в нем, вдруг радостно и молодо проснулось в его душе. Чувство это исчезло, как скоро князь Андрей вступил опять в привычные условия жизни, но он знал, что это чувство, которое он не умел развить, жило в нем. Свидание с Пьером было для князя Андрея эпохой, с которой началась хотя во внешности и та же самая, но во внутреннем мире его новая жизнь.


Уже смерклось, когда князь Андрей и Пьер подъехали к главному подъезду лысогорского дома. В то время как они подъезжали, князь Андрей с улыбкой обратил внимание Пьера на суматоху, происшедшую у заднего крыльца. Согнутая старушка с котомкой на спине, и невысокий мужчина в черном одеянии и с длинными волосами, увидав въезжавшую коляску, бросились бежать назад в ворота. Две женщины выбежали за ними, и все четверо, оглядываясь на коляску, испуганно вбежали на заднее крыльцо.
– Это Машины божьи люди, – сказал князь Андрей. – Они приняли нас за отца. А это единственно, в чем она не повинуется ему: он велит гонять этих странников, а она принимает их.
– Да что такое божьи люди? – спросил Пьер.
Князь Андрей не успел отвечать ему. Слуги вышли навстречу, и он расспрашивал о том, где был старый князь и скоро ли ждут его.
Старый князь был еще в городе, и его ждали каждую минуту.
Князь Андрей провел Пьера на свою половину, всегда в полной исправности ожидавшую его в доме его отца, и сам пошел в детскую.
– Пойдем к сестре, – сказал князь Андрей, возвратившись к Пьеру; – я еще не видал ее, она теперь прячется и сидит с своими божьими людьми. Поделом ей, она сконфузится, а ты увидишь божьих людей. C'est curieux, ma parole. [Это любопытно, честное слово.]
– Qu'est ce que c'est que [Что такое] божьи люди? – спросил Пьер
– А вот увидишь.
Княжна Марья действительно сконфузилась и покраснела пятнами, когда вошли к ней. В ее уютной комнате с лампадами перед киотами, на диване, за самоваром сидел рядом с ней молодой мальчик с длинным носом и длинными волосами, и в монашеской рясе.
На кресле, подле, сидела сморщенная, худая старушка с кротким выражением детского лица.
– Andre, pourquoi ne pas m'avoir prevenu? [Андрей, почему не предупредили меня?] – сказала она с кротким упреком, становясь перед своими странниками, как наседка перед цыплятами.
– Charmee de vous voir. Je suis tres contente de vous voir, [Очень рада вас видеть. Я так довольна, что вижу вас,] – сказала она Пьеру, в то время, как он целовал ее руку. Она знала его ребенком, и теперь дружба его с Андреем, его несчастие с женой, а главное, его доброе, простое лицо расположили ее к нему. Она смотрела на него своими прекрасными, лучистыми глазами и, казалось, говорила: «я вас очень люблю, но пожалуйста не смейтесь над моими ». Обменявшись первыми фразами приветствия, они сели.
– А, и Иванушка тут, – сказал князь Андрей, указывая улыбкой на молодого странника.
– Andre! – умоляюще сказала княжна Марья.
– Il faut que vous sachiez que c'est une femme, [Знай, что это женщина,] – сказал Андрей Пьеру.
– Andre, au nom de Dieu! [Андрей, ради Бога!] – повторила княжна Марья.