Отзывы об использовании Google App Engine?

Ищете небольшой, быстрый "грязный" проект. Мне нравится, что Google App Engine работает на Python с встроенным Django - дает мне повод попробовать эту платформу... но мой вопрос таков:

Кто-нибудь использовал движок приложения для чего-либо, кроме проблемы с игрушкой? Я вижу неплохие примеры приложений там, поэтому я бы предположил, что это достаточно хорошо для реальной сделки, но хотел получить обратную связь.

Любые другие примечания об успехах/сбоях будут отличными.

Ответ 1

Я попробовал движок приложения для своего небольшого приложения для наблюдения за землетрясением http://quakewatch.appspot.com/

Моя цель состояла в том, чтобы увидеть возможности движка приложения, поэтому вот основные моменты:

  1. он не поставляется по умолчанию с Django, у него есть собственный веб-фреймворк, который pythonic имеет URL-диспетчер, такой как Django, и он использует шаблоны Django Так что если у вас есть Django exp. вам будет легко пользоваться
  2. Вы не можете выполнить какой-либо длительный процесс на сервере, то есть ответ на запрос, который должен быть быстрым, иначе appengine его убьет Так что, если вашему приложению нужно много серверной обработки, приложение - не лучший способ. в противном случае вам придется выполнять обработку на собственном сервере
  3. Мое приложение quakewatch имеет функцию подписки, это означает, что мне приходилось отправлять по электронной почте последние сообщения о землетрясениях по мере их появления, но я не могу запустить фоновый процесс в обработчике приложения для отслеживания новых землетрясений Решением здесь является использование службы третьей части, такой как pingablity.com, которая может подключаться к одной из ваших страниц и которая выполняет подписку по электронной почте. но и здесь вам придется позаботиться о том, чтобы вы не проводили здесь много времени или разбить задачу на несколько частей
  4. Он предоставляет Django-подобные возможности моделирования, но бэкэнд совершенно другой, но для нового проекта это не имеет значения.

Но в целом я думаю, что это отлично подходит для создания приложений, которые не требуют много фоновой обработки.

Редактировать: Теперь очереди задач можно использовать для запуска пакетной обработки или запланированных задач

Редактировать: после работы/создания реального приложения в GAE в течение года, теперь мое мнение таково: если вы не создаете приложение, которое должно масштабироваться до миллионов и миллионов пользователей, не используйте GAE. Поддержка и выполнение тривиальных задач в GAE является головной болью из-за распределенной природы, чтобы избежать ошибок, превышающих крайний срок, подсчитать объекты или выполнить сложные запросы, требуется сложный код, поэтому небольшое сложное приложение должно придерживаться LAMP.

Редактировать: Модели должны быть специально разработаны с учетом всех транзакций, которые вы хотите иметь в будущем, потому что сущности только в одной и той же группе сущностей могут использоваться в транзакции, и это делает процесс обновления двух разных групп кошмаром, например. перевести деньги от пользователя1 к пользователю2 в транзакции невозможно, если они не принадлежат к одной и той же группе лиц, но создание их в одной группе лиц может оказаться не лучшим решением для частых обновлений.... прочитай это http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine

Ответ 2

Я использую GAE для размещения нескольких приложений с высоким трафиком. Как по порядку 50-100 req/sec. Это здорово, я не могу рекомендовать его достаточно.

Мой предыдущий опыт работы с веб-разработкой был с Ruby (Rails/Merb). Обучение Python было легко. Я не связывался с Django или Pylons или какой-либо другой инфраструктурой, просто начал с примеров GAE и создал то, что мне нужно, из базовых библиотек webapp, которые предоставляются.

Если вы привыкли к гибкости SQL, то хранилище данных может привыкнуть. Ничего страшного! Самая большая корректировка отходит от JOIN. Вы должны отказаться от идеи, что нормализация имеет решающее значение.

Бен

Ответ 3

Одной из веских причин, по которым я столкнулся с использованием Google App Engine, является его интеграция с Google Apps для вашего домена. По сути, это позволяет создавать пользовательские управляемые веб-приложения, которые ограничены (контролируемыми) входами вашего домена.

Большая часть моего опыта работы с этим кодом заключалась в создании простого приложения отслеживания времени/задач. Механизм шаблонов был прост и все же сделал многостраничное приложение очень доступным. Подобным же образом полезная информация о пользователе/​​пользователе api. Я смог сделать парадигму открытой страницы/частной страницы без лишних проблем. (пользователь должен войти в систему, чтобы просмотреть личные страницы. Анонимному пользователю была показана только открытая страница.)

Я просто попадал в часть хранилища данных, когда меня оттащили за "настоящую работу".

Мне удалось выполнить многое (это еще не сделано) за очень короткое время. Поскольку я никогда раньше не использовал Python, это было особенно приятно (и потому, что это был новый язык для меня, а также потому, что разработка была еще быстрой, несмотря на новый язык). Я столкнулся с очень маленьким, что заставило меня поверить, что я не смогу выполнить свою задачу. Вместо этого у меня есть довольно положительное впечатление о функциональности и возможностях.

Это мой опыт. Возможно, это не больше, чем незавершенный игрушечный проект, но он представляет собой обоснованное испытание платформы, и я надеюсь, что это поможет.

Ответ 4

Идея "App Engine running Django" немного вводит в заблуждение. App Engine заменяет весь слой модели Django, поэтому будьте готовы потратить некоторое время на акклиматизацию с помощью хранилища данных App Engine, который требует другого способа моделирования и анализа данных.

Ответ 5

Я использовал GAE для сборки http://www.muspy.com

Это немного больше, чем игрушечный проект, но не слишком сложный. Я по-прежнему полагаюсь на несколько вопросов, которые должны быть рассмотрены Google, но общее развитие веб-сайта было приятным.

Если вы не хотите заниматься вопросами хостинга, администрированием сервера и т.д., я могу определенно рекомендовать его. Особенно, если вы уже знаете Python и Django.

Ответ 6

Я думаю, что App Engine довольно круто для небольших проектов на данный момент. Там много можно сказать, чтобы не беспокоиться о хостинге. API также подталкивает вас к созданию масштабируемых приложений, что является хорошей практикой.

  • app-engine-patch - хороший уровень между Django и App Engine, позволяющий использовать приложение auth и многое другое.
  • Google пообещала модель SLA и ценообразования к концу 2008 года.
  • Запросы должны заполняться через 10 секунд, суб-запросы на веб-службы, необходимые для завершения через 5 секунд. Это заставляет вас разрабатывать быстрое, легкое приложение, выгружать серьезную обработку на другие платформы (например, размещенная служба или экземпляр EC2).
  • Скоро появятся новые языки! Google не скажет, что:-). Теперь мои деньги на Java.

Ответ 7

На этот вопрос был дан полный ответ. И это хорошо. Но, наверное, стоит упомянуть одно. У движка google есть плагин для идеала eclipse, с которым приятно работать.

Если вы уже делаете свое развитие с помощью eclipse, вы будете так счастливы в этом.

Чтобы развернуть на веб-сайте движка Google все, что мне нужно сделать, это нажать одну маленькую кнопку - с логотипом самолета - супер.

Ответ 8

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

Ответ 9

Я использовал GAE для создания простого приложения, которое принимает некоторые параметры, форматирует и отправляет электронную почту. Это было очень просто и быстро. Я также сделал некоторые тесты производительности в службах хранилища данных и службы memcache (http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html). Это не так быстро. Мое мнение таково, что GAE - серьезная платформа, обеспечивающая определенную методологию. Я думаю, что он будет развиваться до действительно масштабируемой платформы, где плохие практики просто не разрешены.

Ответ 10

Я использовал GAE для своего сайта для флеш-игр, Бородатые игры. GAE - отличная платформа. Я использовал шаблоны Django, которые намного проще, чем старые времена PHP. Он поставляется с большой панелью администратора и дает вам действительно хорошие журналы. Хранилище данных отличается от базы данных, например MySQL, но с ней гораздо проще работать. Создание сайта было простым и понятным, и у них есть много полезных советов на сайте.

Ответ 11

Я использовал GAE и Django для создания приложения Facebook. Я использовал http://code.google.com/p/app-engine-patch в качестве отправной точки, так как он поддерживает Django 1.1. Я не пытался использовать какие-либо команды manage.py, потому что предположил, что они не сработают, но я даже не заглянул в него. Приложение имело три модели, а также использовало pyfacebook, но это была сложность. Я занимаюсь созданием гораздо более сложного приложения, о котором я начинаю писать в блоге http://brianyamabe.com.