Pull to refresh

Google App Engine: достоинства и недостатки

Reading time3 min
Views3.8K
Google App Engine: достоинства и недостатки
Изучив информацию в интернете о Google App Engine, хотел бы высказать собственное мнение по поводу громких споров вокруг этого продукта, а также предоставить общий перечень его ограничений на основе изученных публикаций по данной теме.

Профессиональный разработчик подбирает инструмент под задачу и решает ее средствами, которые есть в наличии.

Это касается как выбора языка Python, так и платформы в целом. Я лично являюсь Python и Django разработчиком уже больше года и могу судить об их преимуществах и недостатках. Python и Django показали себя в качестве отличных средств для создания web-приложений. Использовать их или нет — дело каждого. По моему мнению, Google подобрал и предоставил достаточно средств для полноценной web-разработки. Почему выбран именно Python, я думаю, понятно всем — корпорация имеет широкий опыт работы с данным языком. А также не следует забывать, что Guido van Rossum — член команды разработчиков.

Встретилась публикация, в которой решение от Google сравнивают с хостингом на «ваш любимый язык + MySQL». Сомневаюсь, что Google вдруг решил переквалифицироваться в хостинговую компанию среднего пошиба. Google App Engine — это не free-хостинг для вашего любимого блога, это масштабируемая среда для высоко-нагруженных приложений, которые работают с большими наборами данных. Именно в такой ситуации она будет вам полезна, хотя вы и можете ее использовать, как угодно. Нужно понимать, как позиционируется продукт и как правильно необходимо его использовать. Приведу в пример вопрос о произвольных запросах. Для каждого вашего запроса среда требует создания индекса. Делает она это абсолютно верно (и часто автоматически). Хотя это и ограничивает возможности «поиграть» с данными, но реальное приложение всегда работает с лимитированным перечнем запросов к базе. Оно всегда производит одни и те же запросы, только с разными параметрами. Оптимизация под именно ваши запросы — это правильное решение и это очень хорошо, что сама среда подталкивает вас к этому. Таким образом, данная технология требует понимания своего предназначения.

Перечень действительных ограничений:
  – объем статичных файлов лимитирован 1 MB. App Engine не поддерживает частичные запросы контента.
  – невозможно использовать comet-технологии (server push).
  – приложение не идентифицируется уникально по ip-адресу. Затруднительно для взаимодействия с внешними сервисами. Приложение может страдать от плохих соседей на этом же сервисе.
  – нет поддержки SSL. Отсутствие уникального IP-адреса затрудняет авторизацию, но порт 443 открыт для запросов. Вы можете полагаться на сервисы Google для доверяемых логинов.

Перечень решаемых ограничений:
  – нет возможности использовать cron jobs. Решается выносом на вне и вызовом специальных URL-ов вашего приложения.
  – нет обработки изображений. Не работает Python Imaging Library, поскольку часть библиотеки написано на C. Пишите собственный процессинг изображений на чистом python.
  – завязка на Google Accounts. Каждый раз при логине в ваше приложение, пользователи будут знать о вашем выборе Google App Engine. Не вижу в этом особых проблем. Позитивный момент — лучшее рекламное позиционирование в AdSence.
  – медленное сканирование таблиц. BigTable — это не MySQL. Читаем документацию — меняем мышление. Если ваши запросы выполняются медленно, значит, скорее всего, вы используете инструмент не верно. Посмотрите примеры, продумайте архитектуру еще раз.
  – нужно постоянное взаимодействие с хостом. Есть только один способ запустить код со всеми особенностями среды — это загрузить его на сервер. Это создает неудобства, поскольку вы не можете «поднять» проект локально.

Кросс-пост с сайта: www.pleso.net/ru/publications/2008/04/17/google-app-engine, автор — scater

Интернет-источники:
community.livejournal.com/evan_tech/248465.html
www.niallkennedy.com/blog/2008/04/google-app-engine.html
www.tomstechblog.com/post/2008/04/Google-App-Engine-Free-and-still-barely-worth-it.aspx
Tags:
Hubs:
+29
Comments61

Articles

Change theme settings