Отзывы об использовании Google App Engine?
Ищете небольшой, быстрый "грязный" проект. Мне нравится, что Google App Engine работает на Python с встроенным Django - дает мне повод попробовать эту платформу... но мой вопрос таков:
Кто-нибудь использовал движок приложения для чего-либо, кроме проблемы с игрушкой? Я вижу неплохие примеры приложений там, поэтому я бы предположил, что это достаточно хорошо для реальной сделки, но хотел получить обратную связь.
Любые другие примечания об успехах/сбоях будут отличными.
Ответы
Ответ 1
Я попробовал движок приложения для своего небольшого приложения для наблюдения за землетрясением
http://quakewatch.appspot.com/
Моя цель состояла в том, чтобы увидеть возможности движка приложения, поэтому вот основные моменты:
- он не поставляется по умолчанию с Django, у него есть собственный веб-фреймворк, который pythonic имеет URL-диспетчер, такой как Django, и он использует шаблоны Django
Так что если у вас есть Django exp. вам будет легко пользоваться
- Вы не можете выполнить какой-либо длительный процесс на сервере, то есть ответ на запрос, который должен быть быстрым, иначе appengine его убьет
Так что, если вашему приложению нужно много серверной обработки, приложение - не лучший способ.
в противном случае вам придется выполнять обработку на собственном сервере
- Мое приложение quakewatch имеет функцию подписки, это означает, что мне приходилось отправлять по электронной почте последние сообщения о землетрясениях по мере их появления, но я не могу запустить фоновый процесс в обработчике приложения для отслеживания новых землетрясений
Решением здесь является использование службы третьей части, такой как pingablity.com, которая может подключаться к одной из ваших страниц и которая выполняет подписку по электронной почте.
но и здесь вам придется позаботиться о том, чтобы вы не проводили здесь много времени
или разбить задачу на несколько частей
- Он предоставляет 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.