Облачный сервис хостинга веб-приложений
Google App Engine (также называемый GAE или App Engine ) — это облачная вычислительная платформа, используемая в качестве сервиса для разработки и размещения веб-приложений . Приложения изолированы и работают на нескольких серверах, управляемых Google. [2] GAE поддерживает автоматическое масштабирование веб-приложений, выделяя больше ресурсов веб-приложению по мере увеличения количества запросов. [3] Он был выпущен в качестве предварительной версии в апреле 2008 года и официально запущен в сентябре 2011 года.
App Engine поддерживает приложения, написанные на Go , PHP , Java , Python , Node.js , .NET и Ruby , а поддержка других языков возможна за дополнительную плату. [4] Бесплатная версия сервиса предлагает стандартную среду с ограниченными ресурсами. Плата взимается за дополнительное хранилище, пропускную способность или часы экземпляра. [5]
Функции
Google App Engine в первую очередь поддерживает приложения Go , PHP , Java , Python , Node.js , .NET и Ruby , хотя он также может поддерживать другие языки через «пользовательские среды выполнения». [4]
Веб-фреймворки Python, работающие на Google App Engine, включают Django , CherryPy , Pyramid , Flask и web2py, а также написанный Google фреймворк веб-приложений и несколько других, разработанных специально для платформы, которая была создана после выпуска. [6] Любой фреймворк Python, поддерживающий WSGI с использованием адаптера CGI, может быть использован для создания приложения, и фреймворк может быть загружен вместе с разработанным приложением. Также могут быть загружены сторонние библиотеки, написанные на Python. [7] [8]
В SDK версии 1.2.2 добавлена поддержка массовой загрузки данных с использованием Python. [9]
Интегрированная база данных Google Cloud Datastore App Engine имеет синтаксис, похожий на SQL , называемый « GQL » ( язык запросов Google ). GQL не поддерживает оператор join . [10] Вместо этого отношения «один ко многим» и «многие ко многим» могут быть реализованы с помощью ReferenceProperty()
. [11]
Google Cloud Firestore является преемником Google Cloud Datastore и заменяет GQL на метод запроса на основе документов, который обрабатывает хранимые объекты как коллекции документов. Firestore был запущен в октябре 2017 года. [12]
Бэкэнды
На Google I/O 2011 компания Google анонсировала App Engine Backends , которые могли работать непрерывно и потреблять больше памяти. [13] [14] Backend API был упразднен 13 марта 2014 года в пользу Modules API. [15]
Google Облако SQL
В октябре 2011 года Google представила предварительную версию базы данных SQL с нулевым обслуживанием, которая поддерживает JDBC и DB-API. [16] Эта служба позволяет создавать, настраивать и использовать реляционные базы данных с приложениями App Engine. Google Cloud SQL поддерживает MySQL 8.0, 5.7 и 5.6. [17]
Ограничения
- Разработчики имеют доступ только для чтения к файловой системе App Engine. Приложения могут использовать только виртуальные файловые системы.
- App Engine может выполнять только код, вызванный из HTTP-запроса (запланированные фоновые задачи допускают самостоятельный вызов HTTP-запросов).
- Пользователи могут загружать произвольные модули Python, но только если они являются чистым Python. Модули C и Pyrex не поддерживаются.
- Приложения Java могут использовать только подмножество (белый список классов JRE) классов из стандартной редакции JRE. [18] Это ограничение не существует в среде выполнения App Engine Standard Java8.
- Процесс, запущенный на сервере для ответа на запрос, не может длиться более 60 секунд (начиная с версии 1.4.0 это ограничение больше не распространяется на фоновые задания).
- Не поддерживает закрепленные сеансы (т. н. привязку сеансов), поддерживаются только реплицированные сеансы, включая ограничение объема сериализуемых данных и времени сериализации сеанса.
Хостинг приложений
В то время как другие сервисы позволяют пользователям устанавливать и настраивать практически любое совместимое с *NIX программное обеспечение, App Engine требует от разработчиков использовать только поддерживаемые им языки, API и фреймворки. Текущие API позволяют хранить и извлекать данные из ориентированной на документы базы данных Google Cloud Datastore , выполнять HTTP-запросы, отправлять электронную почту, манипулировать изображениями и кэшировать. Google Cloud SQL [19] можно использовать для приложений App Engine, требующих реляционного MySQL- совместимого бэкэнда базы данных. [20]
Дневные и минутные квоты накладывают ограничения на полосу пропускания и использование ЦП, количество обслуживаемых запросов, количество одновременных запросов и вызовов различных API. Отдельные запросы прекращаются, если они занимают более 60 секунд или возвращают более 32 МБ данных.
Проблемы переносимости
Разработчики беспокоятся, что приложения не будут переносимы из App Engine, и опасаются быть запертыми в технологии. [21] В ответ на это существует ряд проектов по созданию бэкэндов с открытым исходным кодом для различных проприетарных/закрытых API-интерфейсов App Engine, особенно хранилища данных.
AppScale автоматически развертывает и масштабирует немодифицированные приложения Google App Engine в популярных публичных и частных облачных системах и локальных кластерах. [22] Он может запускать приложения Python, Java, PHP и Go на EC2, Google Compute Engine, Azure и других поставщиках облачных услуг.
Веб -фреймворк Web2py предлагает миграцию между базами данных SQL и Google App Engine, однако он не поддерживает несколько специфичных для App Engine функций, таких как транзакции и пространства имен. [23]
Kubernetes — это система управления заданиями с открытым исходным кодом, созданная Google для абстрагирования инфраструктуры, чтобы контейнерные приложения с открытым исходным кодом (например, Docker) могли работать во многих типах инфраструктур, таких как Amazon Web Services , Microsoft Azure и другие.
Квоты использования
Для начала работы Google App Engine требуется учетная запись Google, а учетная запись может позволить разработчику зарегистрировать до 25 бесплатных приложений и неограниченное количество платных приложений. [24]
Google App Engine определяет квоты использования для бесплатных приложений. Расширения этих квот могут быть запрошены, и авторы приложений могут платить за дополнительные ресурсы. [25]
Смотрите также
Ссылки
- ^ «Представляем Google App Engine + наш новый блог». Блог Google App Engine . 7 апреля 2008 г. Получено 3 декабря 2019 г.
- ^ "Python Runtime Environment - Google App Engine - Google Code". 22 февраля 1999 г. Получено 14 февраля 2012 г.
- ^ Сандерсон, Дэн (2009). Программирование Google App Engine: создание и запуск масштабируемых веб-приложений на инфраструктуре Google. O'Reilly Media . ISBN 978-0-596-52272-8.
- ^ ab "Документация Google App Engine | Документация App Engine". Google Cloud . Получено 3 декабря 2019 г. .
- ^ "Квоты - Google App Engine - Google Code". 22 февраля 1999 г. Получено 14 февраля 2012 г.
- ^ "AppEngineFrameworks - tipfy - Всемогущий маленький фреймворк для Google App Engine - Google Project Hosting" . Получено 14 февраля 2012 г.
- ^ "Что такое Google App Engine? - Google App Engine - Google Code". 22 февраля 1999 г. Получено 14 февраля 2012 г.
- ^ "Обзор веб-приложений - Google App Engine - Google Code". 22 февраля 1999 г. Получено 14 февраля 2012 г.
- ^ "Загрузка и скачивание данных - Google App Engine - Google Code". 22 февраля 1999 г. Получено 14 февраля 2012 г.
- ↑ Google Developers (7 апреля 2008 г.). «Campfire One: Знакомство с Google App Engine (часть 3)» – через YouTube.
- ^ "Моделирование отношений сущностей — Google App Engine — Google Developers". 26 июня 2012 г. Получено 17 июля 2012 г.
- ^ "Google запускает Cloud Firestore, новую базу данных документов для разработчиков приложений". TechCrunch . 3 октября 2017 г. Получено 16 июля 2018 г.
- ^ Google I/O 2011: Бэкэнды App Engine на YouTube
- ^ "Обзор API бэкэндов Python - Стандартная среда App Engine для Python - Google Cloud Platform". Google Cloud Platform .
- ^ "Обзор API бэкэндов Python - Стандартная среда App Engine для Python - Google Cloud Platform". Google Cloud Platform .
- ^ "Google Cloud SQL: ваша база данных в облаке - Официальный блог Google Code". 6 октября 2011 г.
- ^ "Возможности Cloud SQL - Документация Cloud SQL - Google Cloud Platform". Google Cloud Platform .
- ^ "The JRE Class White List - Google App Engine - Google Developers". 22 февраля 1999 г. Получено 14 июня 2013 г.
- ^ "Базы данных Google Cloud SQL - Cloud SQL - Google Cloud Platform". Google Cloud Platform .
- ^ "Использование стандартной среды Google Cloud SQL - App Engine для Java - Google Cloud Platform". Google Cloud Platform .
- ^ Галлахер, Шон (9 апреля 2008 г.). «Анализ: Google App Engine заманчив, от него будет трудно убежать». Ars Technica . Получено 17 июля 2012 г.
- ^ AppScale запускается как резервное копирование с открытым исходным кодом, эквивалентное Google App Engine. TechCrunch (24 июня 2013 г.). Получено 18 сентября 2013 г.
- ^ [1] Архивировано 20 февраля 2010 г. на Wayback Machine.
- ^ "Общие вопросы Google App Engine". Разработчики Google . Получено 18 июня 2015 г.
- ^ "Понимание квот приложений с помощью Google App Engine" . Получено 16 апреля 2010 г.
Библиография
- Сандерсон, Дэн (26 октября 2012 г.), Программирование Google App Engine (2-е изд.), O'Reilly Media , стр. 536, ISBN 978-1449398262
- де Йонге, Адриан (31 октября 2011 г.), Essential App Engine: создание высокопроизводительных приложений Java с помощью Google App Engine (1-е изд.), Addison-Wesley Professional , стр. 304, ISBN 978-0-321-74263-6
- Гермер, Дэниел; Унру, Эми (24 ноября 2010 г.), Разработка приложений Google App Engine Java и GWT (1-е изд.), Packt Publishing , стр. 480, ISBN 978-1-84969-044-7
- Рош, Кайл; Дуглас, Джефф (31 декабря 2009 г.), Начало работы с Java Google App Engine (1-е изд.), Apress , стр. 375, ISBN 978-1-4302-2553-9
- Сандерсон, Дэн (23 ноября 2009 г.), Программирование Google App Engine (1-е изд.), O'Reilly Media , стр. 400, ISBN 978-0-596-52272-8
- Северанс, Чарльз (22 мая 2009 г.), Использование Google App Engine (1-е изд.), O'Reilly Media , стр. 262, ISBN 978-0-596-80069-7
- Ciurana, Eugene (2 февраля 2009 г.), Разработка с помощью Google App Engine (1-е изд.), Apress , стр. 164, ISBN 978-1-4302-1831-9
Внешние ссылки
- Официальная маркетинговая страница
- Официальный сайт
- Официальный блог облачной платформы Google
- Заметки о выпуске
- Google App Engine — Запускайте свои веб-приложения на инфраструктуре Google — технический доклад инженера Google Гвидо ван Россума в Стэнфордском университете . (онлайн-архив видео)
- Преимущества внедрения Google App Engine Архивировано 2 февраля 2017 г. на Wayback Machine
- Использование внешней базы данных с Google App Engine Архивировано 6 августа 2017 г. на Wayback Machine
- Поддерживаемые Java-фреймворки и библиотеки
- Книга Web2py — электронная документация — рецепт развертывания Google App Engine
- Примеры проектов Google Cloud SQL
- Google Cloud поддерживает node.js
- Appmd: пример проекта разработки Python. App Engine/django/Google Closure/Endpoints/Material design