Отзывы об использовании Google App Engine?[закрыто]
-
02-07-2019 - |
Вопрос
Хочу сделать очень маленький, быстрый и грязный побочный проект.Мне нравится тот факт, что Google App Engine работает на Python со встроенным Django — это дает мне повод попробовать эту платформу...но мой вопрос заключается в следующем:
Кто-нибудь использовал движок приложения для чего-то другого, кроме игрушечных задач?Я вижу несколько хороших примеров приложений, поэтому я предполагаю, что это достаточно хорошо для реальной сделки, но хотел бы получить некоторые отзывы.
Любые другие заметки об успехах/неудачах были бы хороши.
Решение
Я попробовал движок приложения для своего небольшого приложения Quake Watch.http://quakewatch.appspot.com/
Моей целью было увидеть возможности движка приложения, поэтому вот основные моменты:
- Он не поставляется по умолчанию с Django, у него есть своя собственная веб -структура, которая, как у Pythonic, есть диспетчер URL, такой как Django, и использует шаблоны Django, поэтому, если у вас есть Django Exp.вы обнаружите, что им легко пользоваться
- Но вы можете использовать любую чистую среду Python, и можно легко добавить django, см.http://code.google.com/appengine/articles/django.htmlgoogle-app-engine-django (http://code.google.com/p/google-app-engine-django/) проект отличный и работает почти так же, как работа над проектом django.
- Вы не можете выполнить какой -либо длительный процесс на сервере, то, что вы делаете, это отвечать на запрос, и что должно быть быстро на собственном сервере
- Мое приложение QuakeWatch имеет функцию подписки, это означает, что мне пришлось отправлять по электронной почте последние Quakes по мере их воспитания, но я не могу запустить фоновый процесс в App Engine для мониторинга новых Quakes Solution здесь - это использовать услуги третьей детали, такую как pingablity.com, который может Подключитесь к одной из вашей страницы и которая выполняет подписку по электронной почте, но здесь также вам придется позаботиться о том, чтобы вы не проводили здесь много времени или разбивайте задачу на несколько частей
- Он предоставляет возможности моделирования, аналогичные Django, но серверная часть совершенно другая, но для нового проекта это не имеет значения.
Но в целом я считаю, что он отлично подходит для создания приложений, не требующих большой фоновой обработки.
Редактировать:Сейчас очереди задач может использоваться для запуска пакетной обработки или запланированных задач
Редактировать:после года работы/создания реального приложения на GAE, теперь я считаю, что, если вы не создаете приложение, которое необходимо масштабировать до миллионов и миллионов пользователей, не используйте GAE.Поддержание и выполнение тривиальных задач в GAE является головной болью из-за распределенного характера: чтобы избежать ошибок превышения срока, подсчета сущностей или выполнения сложных запросов, требуется сложный код, поэтому небольшие сложные приложения должны использовать LAMP.
Редактировать:Модели должны быть специально разработаны с учетом всех транзакций, которые вы хотите проводить в будущем, поскольку в транзакции могут использоваться только сущности из одной и той же группы сущностей, и это превращает процесс обновления двух разных групп в кошмар, например.перевод денег от пользователя 1 к пользователю 2 в транзакции невозможен, если они не находятся в одной группе сущностей, но создание одной группы сущностей может быть не лучшим решением для целей частого обновления....прочитай это http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine
Другие советы
Я использую GAE для размещения нескольких приложений с высоким трафиком.Примерно порядка 50-100 запросов/сек.Это здорово, я не могу не порекомендовать его.
Мой предыдущий опыт веб-разработки был связан с Ruby (Rails/Merb).Изучать Python было легко.Я не возился с Django, Pylons или какой-либо другой платформой, просто начал с примеров GAE и построил то, что мне нужно, из имеющихся базовых библиотек веб-приложений.
Если вы привыкли к гибкости SQL, к хранилищу данных придется привыкнуть.Ничего травматичного!Самая большая корректировка — это отказ от JOIN.Вы должны отказаться от идеи, что нормализация имеет решающее значение.
Бен
Одной из веских причин использования Google App Engine, с которой я столкнулся, является его интеграция со Службами Google для вашего домена.По сути, он позволяет вам создавать собственные управляемые веб-приложения, которые ограничены (контролируемыми) входами в систему вашего домена.
Большая часть моего опыта работы с этим кодом заключалась в создании простого приложения для отслеживания времени и задач.Механизм шаблонов был простым, но в то же время делал многостраничное приложение очень доступным.API входа в систему/пользователя также полезен.Мне удалось без особых проблем создать парадигму общедоступной/частной страницы.(пользователь войдет в систему, чтобы увидеть частные страницы.Анонимному пользователю была показана только общедоступная страница.)
Я как раз приступил к части проекта, связанной с хранилищем данных, когда меня отстранили от «настоящей работы».
Я смог сделать очень многое (это еще не сделано) за очень небольшой промежуток времени.Поскольку я никогда раньше не использовал Python, это было особенно приятно (и потому, что это был новый для меня язык, и потому, что разработка, несмотря на новый язык, все еще шла быстро).Я столкнулся с очень малым количеством вещей, которые заставили меня поверить, что я не смогу выполнить свою задачу.Вместо этого у меня сложилось довольно положительное впечатление о функциональности и возможностях.
Это мой опыт работы с этим.Возможно, это не что иное, как незавершенный игрушечный проект, но это действительно информированное испытание платформы, и я надеюсь, что это поможет.
Идея «App Engine под управлением Django» немного вводит в заблуждение.App Engine заменяет весь уровень модели Django, поэтому будьте готовы потратить некоторое время на привыкание к хранилищу данных App Engine, которое требует другого способа моделирования и мышления о данных.
Я использовал GAE для сборки http://www.muspy.com
Это немного больше, чем игрушечный проект, но и не слишком сложный.Я все еще рассчитываю на решение некоторых вопросов со стороны Google, но в целом разработка веб-сайта доставила мне массу удовольствия.
Если вы не хотите заниматься вопросами хостинга, администрирования серверов и т. д., однозначно могу порекомендовать.Особенно, если вы уже знаете Python и Django.
Я думаю, что App Engine на данный момент очень хорош для небольших проектов.Можно многое сказать о том, что вам никогда не придется беспокоиться о хостинге.API также подталкивает вас к созданию масштабируемых приложений, что является хорошей практикой.
- app-engine-patch является хорошим промежуточным звеном между Django и App Engine, позволяющим использовать приложение для аутентификации и многое другое.
- Google пообещал разработать соглашение об уровне обслуживания и модель ценообразования к концу 2008 года.
- Запросы должны выполняться в течение 10 секунд, подзапросы к веб-сервисам — в течение 5 секунд.Это заставляет вас разрабатывать быстрое и легкое приложение, перекладывая серьезную обработку на другие платформы (например,размещенная служба или экземпляр EC2).
- Скоро появятся новые языки!Хотя Google не говорит, что именно :-).Дальше мои деньги на Java.
На этот вопрос был дан полный ответ.И это хорошо.Но, пожалуй, стоит упомянуть одну вещь.В движке приложений Google есть плагин для eclipse ide, работать с которым одно удовольствие.
Если вы уже занимаетесь разработкой с помощью eclipse, вы будете этому очень рады.
Для развертывания на веб-сайте движка приложений Google все, что мне нужно сделать, это нажать одну маленькую кнопку — с логотипом самолета — супер.
Взгляните на SQL-игра, он очень стабилен и в какой-то момент даже увеличил ограничения на трафик, так что Google его задушил.Я не видел ничего, кроме хороших новостей о App Engine, кроме размещения вашего приложения на серверах, которые полностью контролирует кто-то другой.
Я использовал GAE для создания простого приложения, которое принимает некоторые параметры, форматы и отправляет электронную почту.Это было чрезвычайно просто и быстро.Я также провел несколько тестов производительности хранилища данных GAE и служб кэша памяти (http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ).Это не так быстро.Я считаю, что GAE — это серьезная платформа, которая применяет определенную методологию.Я думаю, что она превратится в по-настоящему масштабируемую платформу, где плохие практики просто не допускаются.
Я использовал GAE для своего сайта с флэш-играми. Бородатые игры.GAE — отличная платформа.Я использовал шаблоны Django, которые намного проще, чем старые времена PHP.Он поставляется с отличной административной панелью и дает действительно хорошие журналы.Хранилище данных отличается от базы данных, такой как MySQL, но с ним гораздо проще работать.Создать сайт было легко и просто, и на сайте есть много полезных советов.
Я использовал GAE и Django для создания приложения Facebook.я использовал http://code.google.com/p/app-engine-patch в качестве отправной точки, поскольку он поддерживает Django 1.1.Я не пытался использовать какие-либо команды Manage.py, поскольку предполагал, что они не сработают, но я даже не вникал в это.Приложение имело три модели, а также использовало pyfacebook, но на этом вся сложность была.Я работаю над гораздо более сложным приложением, о котором начинаю писать в блоге. http://brianyamabe.com.