Google App Engine – сервис хостинга сайтов и веб-приложений на серверах Google с бесплатным именем <имя_сайта>.appspot.com, либо с собственным именем, задействованным с помощью служб Google.
Google App Engine представлена в апреле 2008, доступны как бесплатные аккаунты: «…до 1 Гб дискового пространства, 10 Гб входящего трафика в день, 10 Гб исходящего трафика в день, 200 миллионов гигациклов CPU в день и 2000 операций отправления электронной почты в день», так и возможность приобретения дополнительных ресурсов.
Приложения, разворачиваемые на базе Google App Engine, должны быть написаны на Python, Java, Go либо PHP. Последние два до сих пор имеют статус «экспериментальных» инструментов, хотя Google и заявлял о намерениях расширить список поддерживаемых языков программирования и сред, а сам сервис сделать независящим от какого-либо языка программирования. Среда исполнения Python включает в себя полную реализацию возможностей самого Python, большинство функций стандартной библиотеки языка, ограниченную версию Django, и т. д..
Предлагается набор API для сервисов хранилища, datastore API (BigTable), аккаунтов Google, загрузки данных по URL, электронной почты и т. д..
Предоставлена возможность использовать планировщик задач cron как для приложений реализованных на Python, так и на Java. Разрешено планирование не более 20-ти заданий.
Использование службы аккаунтов Google позволяет быстро начать работу с приложением, нет необходимости проводить отдельную регистрацию учётных данных на каждом сайте. Это также позволяет разработчику не заботиться о реализации ещё одной системы регистрации пользователей специально для своего приложения.
Платформа Google конкурирует с аналогичными сервисами от Amazon, которые предоставляют возможности размещать файлы и веб-приложения, используя свою инфраструктуру.
В отличие от многих обычных размещений приложений на виртуальных машинах, таких как Amazon EC2, платформа Google App Engine тесно интегрирована с приложениями и накладывает на разработчиков некоторые ограничения. Среды параллельной обработки позволяют применять многое из программного обеспечения, созданного для UNIX-подобных систем, в то время как Google App Engine требует от разработчика использовать один из языков программирования: Python, Java, Go (с мая 2011) или PHP (в экспериментальном режиме), а для хранения информации применять хранилище (Datastore) – подмножество проприетарной базы данных BigTable, являющейся ноу-хау компании Google.
Хотя многие из разработанных на языке Python приложений возможно запустить без изменений для Google App Engine (исключая те, которые требуют доступа к низкоуровневым функциям системы или доступа к сети), использование хранилища потребует значительных сил от разработчиков на адаптацию приложений. В отличие от популярных СУБД MySQL и PostgreSQL, хранилище не является реляционной базой данных, не требует схемы и нормализации данных. Архитектура платформы поддерживает масштабирование без изменения кода. Реализация поддержки реляционной логики привела бы к значительному замедлению работы. Нереляционный характер хранилища требует от разработчиков использования нетрадиционной архитектуры хранения и обработки данных.
В то же самое время все эти ограничения могут привести к тому, что многим разработчикам придётся прилагать дополнительные усилия для адаптации к новой среде, и они предпочтут выбор альтернативных платформ.
Ограничения Google App Engine
Единственный способ сохранять данные – внутреннее хранилище, нереляционная, высокомасштабируемая база данных. Хранилище отличается от реляционных СУБД MySQL и PostgreSQL, которые используются на большинстве сайтов.
Google предоставляет альтернативный вариант – Memcache API. Есть возможность организовать авторизацию пользователей через аккаунты Google.
Ссылки
Скачать Google App Engine для PHP
Скачать Google App Engine для Python