Google App Engine
| Google App Engine | |
|---|---|
| Тип | среда разработки веб-фреймворк |
| Разработчик | |
| Написана на | Python |
| Операционная система | GNU/Linux |
| Последняя версия | 1.9.6 (3 июня2014) |
| Лицензия | GPLv2 |
| Сайт | appengine.google.com |
Google App Engine — службахостинга сайтов иweb-приложений на серверахGoogle с бесплатным именем<имя_сайта>.appspot.com либо ссобственным именем, задействованным с помощьюслужб Google.
App Engine представлена в апреле2008, доступны как бесплатныеучётные записи[1]: «…до 1 Гб дискового пространства, 10 Гб входящего трафика в день, 10 Гб исходящего трафика в день, 200 миллионов гигациклов CPU в день и 2000 операций отправления электронной почты в день»[2], так и возможность приобретения дополнительных ресурсов[3].
Приложения, разворачиваемые на базе App Engine, должны быть написаны наPython,Java,Node.JS,.NET,Ruby,Go либоPHP (последние два до сих пор имеют статус «экспериментальных» инструментов, хотя Google и заявлял о намерениях расширить список поддерживаемых языков программирования и сред, а саму службу сделать не зависящей от какого-либо языка программирования).
Среда исполнения Python[4] включает в себя полную реализациювозможностей самого Python, большинство функций стандартнойбиблиотеки языка Python, ограниченную версиюDjango, и т. д.
Предлагается набор API для служб хранилища, datastore API (BigTable)[5] аккаунтов Google,[6], загрузки данных по URL[7],электронной почты[8] и т. д.
Предоставлена возможность использовать планировщик задачcron как для приложений, реализованных наPython, так и наJava; разрешено планирование не более 20 заданий[9][10].
Использование службы учётных записей Google позволяет быстро начать работу с приложением, нет необходимости проводить отдельную регистрацию учётных данных на каждом сайте. Это также позволяет разработчику не заботиться о реализации ещё одной системы регистрации пользователей специально для своего приложения.
Платформа Google конкурирует с аналогичными сервисами отAmazon (Amazon EC2), которые предоставляют возможности размещать файлы и веб-приложения, используя свою инфраструктуру.
Отличия от традиционной модели хостинга приложений
[править |править код]В отличие от многих обычных размещений приложений на виртуальных машинах, таких какAmazon EC2, платформа App Engine тесно интегрирована с приложениями и накладывает на разработчиков некоторые ограничения. Среды параллельной обработки позволяют применять многое из программного обеспечения, созданного для Unix-подобных систем, в то время как App Engine требует от разработчика использовать один из языков программирования: Python, Java, Go (с мая 2011) или PHP (в экспериментальном режиме), а для хранения информации применять хранилище — подмножество проприетарной базы данныхBigTable (en), являющейсяноу-хау компанииGoogle.
Хотя многие из разработанных на языкеPython приложений возможно запустить без изменений для App Engine (исключая те, которые требуют доступа к низкоуровневым функциям системы или доступа к сети), использование хранилища потребует значительных сил от разработчиков на адаптацию приложений. В отличие от популярных СУБДMySQL иPostgreSQL, хранилище не является реляционной базой данных, не требуетсхемы инормализации данных. Архитектура платформы поддерживает масштабирование без изменения кода. Реализация поддержки реляционной логики привела бы к значительному замедлению работы[11][12]. Нереляционный характер хранилища требует от разработчиков использования нетрадиционной архитектуры хранения и обработки данных.
В то же самое время все эти ограничения могут[источник не указан 3795 дней] привести к тому, что многим разработчикам придётся прилагать дополнительные усилия для адаптации к новой среде, и они предпочтут выбор альтернативных платформ.
Ограничения
[править |править код]Среда выполнения платформы Google App Engine позволяет разработчику контролировать лишь часть параметров операционной системы, что может представлять затруднение для разработки приложений.
Нет доступа на запись в файловую систему сервера. Единственный способ сохранять данные — внутреннее хранилище, нереляционная высокомасштабируемая база данных. Хранилище отличается от реляционных СУБДMySQL иPostgreSQL, которые используются на большинстве сайтов.
Системы управления сессиями, использующие файловую систему, не будут работать. Google предоставляет альтернативный вариант —Memcached API. Есть возможность организовать авторизацию пользователей через аккаунты Google.
Google широко использует в своих приложениях технологиюMapReduce, и её поддержка, вероятно, будет добавлена к возможностям платформы.[13]
App Engine имеет поддержку SQL с Google Cloud SQL[14].
Пример самого маленького приложения
[править |править код]Сайтhelloworld.appspot.com из одной страницы «index.html»требует[15]загрузки[16]на серверы Google App Engine двух файлов:
- …/helloworld/app.yaml — конфигурационный файл приложенияhelloworld в его корневом каталоге
application: helloworldversion: 1runtime: pythonapi_version: 1handlers:- url: / static_files: static/index.html upload: static/index.html
- …/helloworld/static/index.html
<html><h1>Hello World!</h1></html>
См. также
[править |править код]Примечания
[править |править код]- ↑Что такое Google App Engine? Архивировано изоригинала 14 марта 2012 года.
- ↑Условия предоставления сервиса Google App EngineАрхивная копия от 24 сентября 2008 наWayback MachineАрхивировано 24 сентября 2008 года.
- ↑Условия и тарифы приобретения дополнительных ресурсов . Дата обращения: 3 октября 2009. Архивировано 19 сентября 2009 года.
- ↑Среда выполнения языка PythonАрхивная копия от 25 сентября 2008 наWayback MachineАрхивировано 25 сентября 2008 года.
- ↑Datastore API (работа с хранилищем)Архивная копия от 21 сентября 2008 наWayback MachineАрхивировано 21 сентября 2008 года.
- ↑Users API (интерфейс авторизации пользователей)Архивная копия от 21 сентября 2008 наWayback MachineАрхивировано 21 сентября 2008 года.
- ↑URL Fetch API (интерфейс загрузки URL)Архивная копия от 21 сентября 2008 наWayback MachineАрхивировано 21 сентября 2008 года.
- ↑Mail API (отправка почты)Архивная копия от 21 сентября 2008 наWayback MachineАрхивировано 21 сентября 2008 года.
- ↑Задачи, запланированные с помощью Cron для PythonАрхивировано 12 апреля 2009 года.
- ↑Задачи, запланированные с помощью Cron для JavaАрхивировано 3 января 2010 года.
- ↑Google App Engine alluring, will be hard to escapeАрхивная копия от 16 августа 2018 наWayback Machine
- ↑Google’s growing cloud just got a NoSQL databaseАрхивная копия от 16 августа 2018 наWayback Machine
- ↑Проект MapReduce для AppEngine . Дата обращения: 3 октября 2009. Архивировано 31 марта 2010 года.
- ↑Google Cloud SQL Пример приложения . Дата обращения: 5 марта 2012. Архивировано 5 марта 2012 года.
- ↑Настройка приложения. Обработчики статических файловАрхивная копия от 5 октября 2008 наWayback MachineАрхивировано 5 октября 2008 года.
- ↑Публикация приложенияАрхивная копия от 24 сентября 2008 наWayback MachineАрхивировано 24 сентября 2008 года.
Литература
[править |править код]- Sanderson, Dan (26 октября 2012),Programming Google App Engine (2nd ed.),O'Reilly Media, p. 536,ISBN 978-1449398262
- de Jonge, Adriaan (31 октября 2011),Essential App Engine: Building High-Performance Java Apps with Google App Engine (1st ed.),Addison-Wesley Professional, p. 304,ISBN 0-321-74263-X
- Guermeur, Daniel; Unruh, Amy (24 ноября 2010),Google App Engine Java and GWT Application Development (1st ed.),Packt Publishing, p. 480,ISBN 1-84969-044-8
- Roche, Kyle; Douglas, Jeff (31 декабря 2009),Beginning Java Google App Engine (1st ed.),Apress, p. 375,ISBN 1-4302-2553-X
- Sanderson, Dan (23 ноября 2009),Programming Google App Engine (1st ed.),O'Reilly Media, p. 400,ISBN 0-596-52272-X
- Severance, Charles (22 мая 2009),Using Google App Engine (1st ed.),O'Reilly Media, p. 262,ISBN 0-596-80069-X
- Ciurana, Eugene (2 февраля 2009),Developing with Google App Engine (1st ed.),Apress, p. 164,ISBN 1-4302-1831-2
Ссылки
[править |править код]- Google App Engine (англ.). — Официальный сайт.
- Google App Engine Russian. — Русскоязычнаягруппа разработки.
- Google App Engine for Java on Russian. — Русскоязычная группа разработки.
- Google App Engine. — Сообщество разработчиков.
- IBM developerWorks. —Сообщество разработчиков IBM (имеется немало материалов по разработке для платформы GAE).
- Страницы, использующие устаревший тег source
- Википедия:Cite web (заменить webcitation-архив: deadlink yes)
- Википедия:Cite web (не указан язык)
- ПРО:ИТ:Статьи по алфавиту
- ПРО:ИТ:Последняя правка: в прошлом году
- Википедия:Статьи без источников (не распределённые по типам)
- Википедия:Нет источников с октября 2015
- Википедия:Статьи с утверждениями без источников более 14 дней