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

130

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

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

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

  • 8
    должно быть сообщество вики
Теги:
google-app-engine

11 ответов

61
Лучший ответ

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

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

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

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

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

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

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

  • 6
    Теперь пакетный процесс можно запустить на GAE
  • 2
    Ознакомьтесь с новым Python API очереди задач в документации по App-Engine.
Показать ещё 8 комментариев
37

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

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

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

Бен

22

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

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

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

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

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

  • 0
    Почти идентичный моей ситуации - кроме «реальной работы», но все же кое-что, что мне нужно сделать, и иметь функционал в конце.
  • 0
    Тоже самое. Кроме того, большим плюсом является то, что установка среды разработки совсем несложная (вы программируете в течение минуты). То же самое для развертываний.
12

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

  • 0
    Хороший момент - кажется, что по умолчанию он использует шаблоны Django, но не обязательно все остальное.
7

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

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

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

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

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

6

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

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

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

  • 0
    да, я использовал это. Очень мило на самом деле.
4

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

4

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

4

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

  • 0
    Игра sql перешла с Google App Engine на частный сервер.
3

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

  • 0
    Я начал использовать manage.py для запуска сервера, а также для запуска некоторых модульных тестов. Запуск сервера работает нормально, но поскольку мое приложение работает как приложение Facebook, оно не так уж и полезно (мне нужен хост-сервер, на который ссылается Facebook). Модульное тестирование также работало и даже работало со светильниками. Однако я не смог заставить работать приборы, которые ссылались на другие модели. Я до сих пор не понял, если это проблема с моим прибором или проблема с app-engine-patch.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню