stringtranslate.com

Google App Engine

Google App Engine (часто называемый аббревиатурой GAE или просто App Engine ) — это платформа облачных вычислений , представляющая собой сервис для разработки и размещения веб-приложений в центрах обработки данных , управляемых Google . Приложения изолированы и запускаются на нескольких серверах. [2] App Engine предлагает автоматическое масштабирование веб-приложений: по мере увеличения количества запросов к приложению App Engine автоматически выделяет больше ресурсов веб-приложению для обработки дополнительных требований. [3]

Google App Engine в первую очередь поддерживает приложения Go , PHP , Java , Python , Node.js , .NET и Ruby , хотя он также может поддерживать другие языки через «настраиваемые среды выполнения». [4] Услуга бесплатна до определенного уровня потребляемых ресурсов и только в стандартных средах; он недоступен в гибких средах. Плата взимается за дополнительное хранилище, пропускную способность или часы экземпляра, необходимые приложению. [5] Впервые он был выпущен в качестве предварительной версии в апреле 2008 года и вышел из предварительной версии в сентябре 2011 года.

Поддерживаемые функции/ограничения

Среды выполнения и фреймворк

Google App Engine в первую очередь поддерживает приложения Go , PHP , Java , Python , Node.js , .NET и Ruby , хотя он также может поддерживать другие языки через «настраиваемые среды выполнения». [4]

Веб-фреймворки Python, работающие на Google App Engine, включают Django , CherryPy , Pyramid , Flask , web2py и webapp2, [6] , а также собственный фреймворк веб-приложений, написанный Google, и несколько других, разработанных специально для платформы, появившейся с момента выпуска. [7] Для создания приложения можно использовать любую среду Python, поддерживающую WSGI с использованием адаптера CGI; фреймворк можно загрузить вместе с разработанным приложением. Также можно загружать сторонние библиотеки, написанные на чистом Python. [8] [9]

Google App Engine поддерживает множество стандартов и платформ Java. В основе этого лежит технология сервлетов 2.5 , использующая веб-сервер Jetty с открытым исходным кодом [10] вместе с сопутствующими технологиями, такими как JSP . JavaServer Faces использует некоторые обходные пути. Новая версия стандарта Java App Engine в бета-версии поддерживает Java8, Servlet 3.1 и Jetty9.

Хотя интегрированная база данных Google Cloud Datastore может быть незнакома программистам, доступ к ней и ее поддержка осуществляются с помощью JPA , JDO и простого низкоуровневого API. [11] Существует несколько альтернативных библиотек и платформ, которые можно использовать для моделирования и сопоставления данных с базой данных, например Objectify, [12] Slim3 [13] и Jello framework . [14]

Spring Framework работает с GAE. Однако модуль Spring Security (если он используется) требует обходных путей. Поддерживается Apache Struts 1, а Struts 2 работает с обходными путями. [15]

Веб -платформу Django и приложения, работающие на ней, можно использовать в App Engine с некоторыми изменениями. Django-nonrel [16] призван позволить Django работать с нереляционными базами данных, и проект включает поддержку App Engine. [17]

Надежность и поддержка

Все оплачиваемые приложения App Engine имеют соглашение об уровне обслуживания в течение 99,95 % времени безотказной работы . [18]

App Engine спроектирован таким образом, что может выдерживать многочисленные сбои в работе центров обработки данных без каких-либо простоев. Устойчивость к простоям подтверждается статистикой, согласно которой в хранилище данных с высокой репликацией в течение года наблюдалось 0% простоев. [19]

Платная поддержка от инженеров Google предлагается в рамках Премьер-аккаунтов. [20]

Массовая загрузка

В SDK версии 1.2.2 добавлена ​​поддержка массовой загрузки данных с использованием Python. [21] Проекты Python с открытым исходным кодом gaebar, [22] approcket, [23] и gawsh [24] также позволяют пользователям загружать и создавать резервные копии данных App Engine. В настоящее время не существует метода массовой загрузки данных из GAE с использованием Java.

Ограничения

Основные различия

Отличия от других хостингов приложений

По сравнению с другими услугами масштабируемого хостинга, такими как Amazon EC2 , App Engine предоставляет больше инфраструктуры, упрощающей написание масштабируемых приложений, но может запускать только ограниченный набор приложений, предназначенных для этой инфраструктуры.

Инфраструктура App Engine устраняет многие проблемы системного администрирования и разработки, связанные с созданием приложений, масштабируемых до сотен запросов в секунду и выше. [27] Google занимается развертыванием кода в кластере, мониторингом, аварийным переключением и запуском экземпляров приложений по мере необходимости.

В то время как другие службы позволяют пользователям устанавливать и настраивать практически любое *NIX-совместимое программное обеспечение, App Engine требует от разработчиков использовать только поддерживаемые языки, API и платформы. Текущие API позволяют хранить и извлекать данные из документоориентированной базы данных Google Cloud Datastore ; выполнение HTTP-запросов; отправка электронной почты; манипулирование изображениями; и кэширование. Google Cloud SQL [28] можно использовать для приложений App Engine, требующих реляционной базы данных, совместимой с MySQL . [29]

Дневные и поминутные квоты ограничивают пропускную способность и использование ЦП, количество обслуживаемых запросов, количество одновременных запросов и вызовов различных API, а отдельные запросы прекращаются, если они занимают более 60 секунд или возвращают более 32 МБ данных. .

Различия между SQL и GQL

Интегрированная в Google App Engine база данных Google Cloud Datastore имеет SQL -подобный синтаксис, называемый « GQL » ( язык запросов Google ). GQL не поддерживает оператор Join . [30] Вместо этого отношения «один-ко-многим» и «многие-ко-многим» можно реализовать с помощью ReferenceProperty(). [31]

Google Firestore является преемником Google Cloud Datastore и заменяет GQL методом запроса на основе документов, который рассматривает хранимые объекты как коллекции документов.

Проблемы переносимости

Разработчики обеспокоены тем, что приложения не будут переносимы из App Engine, и опасаются, что их привязывают к этой технологии. [32] В ответ существует ряд проектов по созданию серверных частей с открытым исходным кодом для различных проприетарных/закрытых API-интерфейсов движка приложений, особенно хранилища данных.AppScale , CapeDwarf и TyphoonAE [33] — лишь некоторые из проектов с открытым исходным кодом.

AppScale автоматически развертывает и масштабирует неизмененные приложения Google App Engine в популярных публичных и частных облачных системах и локальных кластерах. [34] AppScale может запускать приложения Python, Java, PHP и Go в EC2, Google Compute Engine, Softlayer, Azure и других облачных поставщиках.

TyphoonAE [33] может запускать приложения Python App Engine в любом облаке, поддерживающем машины с Linux.

Веб-платформа Web2py предлагает миграцию между базами данных SQL и Google App Engine, однако она не поддерживает некоторые специфичные для App Engine функции, такие как транзакции и пространства имен. [35]

Kubernetes — это система управления заданиями с открытым исходным кодом, изобретенная Google для абстрагирования инфраструктуры, чтобы контейнерные приложения с открытым исходным кодом (например, Docker) могли работать на многих типах инфраструктуры, таких как Amazon Web Services , Microsoft Azure и других. Это один из ответов Google на проблему переносимости.

Серверные части

На Google I/O 2011 компания Google анонсировала серверные части App Engine , которым разрешено работать непрерывно и потреблять больше памяти. [36] [37] С 13 марта 2014 года Backend API устарел в пользу API модулей. [38]

Google Облачный SQL

В октябре 2011 года Google представила базу данных SQL, не требующую обслуживания, которая поддерживает JDBC и DB-API. [39] Этот сервис позволяет создавать, настраивать и использовать реляционные базы данных с приложениями App Engine. Google Cloud SQL поддерживает MySQL 8.0, 5.7 и 5.6. [40]

Квоты использования

Для запуска Google App Engine требуется учетная запись Google, которая может позволить разработчику зарегистрировать до 25 бесплатных приложений и неограниченное количество платных приложений. [41]

Google App Engine определяет квоты использования для бесплатных приложений. Можно запросить расширение этих квот, а авторы приложений могут оплатить дополнительные ресурсы. [42]

Смотрите также

Рекомендации

  1. ^ «Представляем Google App Engine + наш новый блог» . Блог Google App Engine . 7 апреля 2008 года . Проверено 3 декабря 2019 г.
  2. ^ «Среда выполнения Python — Google App Engine — Google Code» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  3. ^ Сандерсон, Дэн (2009). Программирование Google App Engine: создание и запуск масштабируемых веб-приложений в инфраструктуре Google. О'Рейли Медиа . ISBN 978-0-596-52272-8.
  4. ^ ab «Документация Google App Engine | Документация App Engine». Гугл облако . Проверено 3 декабря 2019 г.
  5. ^ «Квоты — Google App Engine — Google Code» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  6. ^ «Добро пожаловать в webapp2! — документация по webapp2 v2.5.1» . Webapp-improved.appspot.com . Проверено 14 февраля 2012 г.
  7. ^ «AppEngineFrameworks — Tipfy — Всемогущая маленькая платформа для Google App Engine — Хостинг проектов Google» . Проверено 14 февраля 2012 г.
  8. ^ «Что такое Google App Engine? - Google App Engine - Код Google» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  9. ^ «Обзор веб-приложения — Google App Engine — Google Code» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  10. ^ «Google выбрал Jetty для App Engine» . Infoq.com. 13 июля 2012 года . Проверено 17 июля 2012 г.
  11. ^ «Низкоуровневый API хранилища данных Google App Engine» .
  12. ^ «Библиотека Objectify». Гитхаб . 4 декабря 2022 г.
  13. ^ «Фреймворк Slim3» .
  14. ^ "Jello Framework" .
  15. ^ "WillItPlayInJava - googleappengine - Перечисляет уровень совместимости различных технологий Java и App Engine - Google App Engine - Хостинг проектов Google" . Проверено 14 февраля 2012 г.
  16. ^ «Django-nonrel — поддержка NoSQL для Django» . Все кнопки нажаты. 4 февраля 2010 года . Проверено 17 июля 2012 г.
  17. ^ «djangoappengine — серверные части Django App Engine (БД, электронная почта и т. д.)» . Все кнопки нажаты. 30 сентября 2011 года . Проверено 17 июля 2012 г.
  18. ^ «Соглашение об уровне обслуживания App Engine — Google App Engine — Код Google» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  19. ^ «Блог Google App Engine: С Днем Рождения, хранилище данных High Replication: 1 год, 100 000 приложений, 0% простоев» . Googleappengine.blogspot.com. 5 января 2012 года . Проверено 14 февраля 2012 г.
  20. ^ «Учетные записи Premier — Google App Engine — Google Code» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  21. ^ «Загрузка и выгрузка данных — Google App Engine — Google Code» . 22 февраля 1999 года . Проверено 14 февраля 2012 г.
  22. ^ Арал. «арал/гаебар». Гитхаб . Проверено 14 февраля 2012 г.
  23. ^ «approcket — Живая синхронизация между AppEngine и MySQL — Хостинг проектов Google» . Проверено 14 февраля 2012 г.
  24. ^ "gawsh - Помощники веб-служб Google Apps - Хостинг проектов Google" . Проверено 14 февраля 2012 г.
  25. ^ «gae-filestore — Простая виртуальная файловая система в хранилище данных Google App Engine — Хостинг проектов Google» . Проверено 14 февраля 2012 г.
  26. ^ «Белый список классов JRE — Google App Engine — Разработчики Google» . 22 февраля 1999 года . Проверено 14 июня 2013 г.
  27. ^ «Среда выполнения Python — Google App Engine» . 10 ноября 2009 года . Проверено 10 ноября 2009 г.
  28. ^ «Базы данных Google Cloud SQL — Cloud SQL — облачная платформа Google» . Облачная платформа Google .
  29. ^ «Использование Google Cloud SQL — стандартной среды App Engine для Java — Google Cloud Platform» . Облачная платформа Google .
  30. ^ Разработчики Google (7 апреля 2008 г.). «Campfire One: Представляем Google App Engine (часть 3)» – через YouTube. {{cite web}}: |last=имеет общее имя ( справка )
  31. ^ «Моделирование отношений между сущностями — Google App Engine — Разработчики Google» . 26 июня 2012 года . Проверено 17 июля 2012 г.
  32. Галлахер, Шон (9 апреля 2008 г.). «Анализ: Google App Engine заманчив, от него будет трудно уйти». Арс Техника . Проверено 17 июля 2012 г.
  33. ^ ab "typhoonae - Typhoon App Engine - Хостинг проектов Google" . Проверено 17 июля 2012 г.
  34. ^ AppScale запускается как эквивалент Google App Engine для резервного копирования с открытым исходным кодом. TechCrunch (24 июня 2013 г.). Проверено 18 сентября 2013 г.
  35. ^ [1] Архивировано 20 февраля 2010 г. в Wayback Machine .
  36. ^ Google I/O 2011: Серверные части App Engine на YouTube
  37. ^ «Обзор API-интерфейсов Backends Python — стандартная среда App Engine для Python — Google Cloud Platform» . Облачная платформа Google .
  38. ^ «Обзор API-интерфейсов Backends Python — стандартная среда App Engine для Python — Google Cloud Platform» . Облачная платформа Google .
  39. ^ «Google Cloud SQL: ваша база данных в облаке - официальный блог Google Code» . 6 октября 2011 г.
  40. ^ «Функции Cloud SQL — Документация по Cloud SQL — Google Cloud Platform» . Облачная платформа Google .
  41. ^ «Общие вопросы по Google App Engine» . Разработчики Google . Проверено 18 июня 2015 г.
  42. ^ «Понимание квот приложений с помощью Google App Engine» . Проверено 16 апреля 2010 г.

Библиография

Внешние ссылки