Каковы практические правила при попытке решить, стоит ли разрабатывать на платформе Google App Engine - PullRequest
3 голосов
/ 01 февраля 2011

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

Существует также аналогичная негативная история в этой теме от 1 года назад, заключающая, что GAE не был готов к коммерческой производственной платформе: GAE как производственная платформа . Есть также другие темы 2009 года, в которых говорится об ограничениях выбора данных (1000 строк), которые с тех пор были отменены.

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

Основываясь на этом кратком описании, стоит ли мне вообще начинать с GAE? В целом, по каким эмпирическим правилам следует попытаться решить, подходит ли разработка GAE для рассматриваемой проблемы? Кроме того, каковы хорошие примеры приложений в производстве, которые используют GAE. Похоже, что GAE App Gallery больше не существует, но я определенно буду признателен за любые примеры приложений Web 2.0, запущенных на движке приложений.

Ответы [ 3 ]

4 голосов
/ 01 февраля 2011

В вашем конкретном случае я бы дважды проверил следующие факторы:

a. Является ли математический анализ длительным процессом с интенсивным использованием ЦП?

GAE не предназначен для длительных вычислительных заданий с интенсивным использованием процессора;это привело бы к высокой стоимости биллинга и заставило бы вас разработать приложение, чтобы избежать некоторых ограничений GAE (максимум 10 минут на одно задание, ограниченная программная память, квота ЦП и т. д.).

b. Планируете ли вы извлекать внешние данные с помощью основного API (Twitter, Yahoo, Facebook)?

Ваше приложение использует тот же пул IP-адресов с другими приложениями;если API, который вы хотите использовать, не разрешает аутентифицированный запрос, ваше приложение будет испытывать икоты, вызванные ошибками регулирования / ограничения квоты.Я столкнулся с этой проблемой здесь .

1 голос
/ 01 февраля 2011

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

  • RAM: я точно не могу вспомнить, но GAE накладывает жесткий лимит в 200 МБ.
  • Хранилище данных: здесь достаточно места., но он медленнее по сравнению с локальной кэшированной файловой системой.
  • Memcache: быстрее, чем хранилище данных, но не так быстро, как кешированный диск.И что еще хуже, это кеш, поэтому нет гарантии, что он не будет уничтожен.
  • Внешние источники: сюда входят обращения к внешним веб-страницам.Большая гибкость, но очень медленная.

В общем, я бы, возможно, посмотрел на другие варианты, если вы делаете тяжелый ввод-вывод для набора данных среднего размера (> 20 МБ и ~ <2 ГБ),Это, вероятно, не проблема для 90% веб-приложений, хотя вы должны знать о них. </p>

За исключением всех негативов, работа над GAE - это радостный опыт.Вы тратите больше времени на программирование и меньше времени на настройку.И это действительно дешево.

1 голос
/ 01 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...