Відгук про використання Google App Engine? [зачинено]


125

Хочеш зробити дуже маленький, швидкий 'брудний' сторонній проект. Мені подобається те, що Google App Engine працює на Python із вбудованим Django - дає мені привід спробувати цю платформу ... але моє запитання таке:

Хтось використовував механізм додатків для чогось іншого, крім проблеми з іграшками? Я бачу кілька хороших прикладних програм там, тому я вважаю, що це досить добре для реальної угоди, але хотів отримати зворотній зв'язок.

Будь-які інші замітки про успіх / невдачу були б чудовими.


8
повинні бути вікі спільноти
SilentGhost

Відповіді:


63

Я спробував движок додатків для моєї невеликої програми для перегляду землетрусів http://quakewatch.appspot.com/

Моєю метою було побачити можливості двигуна додатків, ось ось основні моменти:

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

Але в цілому я вважаю, що це чудово для створення додатків, які не потребують великої обробки фону.

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

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

Редагувати: Моделі повинні бути спеціально розроблені з урахуванням усіх транзакцій, які ви хочете мати в майбутньому, оскільки лише транзакції в одній групі об'єктів можуть бути використані в транзакції, і це робить процес оновлення двох різних груп кошмаром, наприклад, переказ грошей від user1 до user2 транзакція неможлива, якщо вони не є однією сутньою групою, але зробити їх однаковою групою об'єктів може бути не найкращим для частого оновлення .... читайте цей http://blog.notdot.net/2009/9/Distributed-Transaction- через додаток-движок


6
Тепер пакетний процес можна запустити на GAE
Anurag Uniyal

2
Ознайомтесь і з новим API завдань Python черги завдань у документах App-Engine.
Джейсон Рікард

11
Значна частина цієї інформації застаріла - Django 0,96 тепер вбудований в GAE станом на 17 липня 2009 р.
вн

3
Djanjo 1.0.x також включений до GAE зараз. Ви можете вибрати, яку редакцію Джанго ви хочете.
Лоран

5
Ще одне оновлення, Django 1.1 тепер доступний для GAE, а також попередніх версій.
SingleNegationElimination

36

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

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

Якщо ви звикли до гнучкості SQL, сховище даних може дещо звикнути. Нічого занадто травматичного! Найбільше коригування - це відхід від приєднання. Ви повинні прокласти ідею, що нормалізація має вирішальне значення.

Бен


23

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

Більшість мого досвіду роботи з цим кодом було створення простого додатка для відстеження часу / завдань. Двигун шаблонів був простим і в той же час зробив багатосторінковий додаток дуже доступним. Аналогічно корисна і інформація про вхід / усвідомлення користувачів. Мені вдалося створити парадигму для публічної сторінки / приватної сторінки без особливих проблем. (користувач увійде в систему, щоб побачити приватні сторінки. Анонімному користувачеві було показано лише загальнодоступну сторінку.)

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

Мені вдалося досягти багато чого (досі це ще не зроблено) за дуже мало часу. Оскільки я ніколи раніше не використовував Python, це було особливо приємно (і тому, що це нова мова для мене, а також тому, що розвиток все ще був швидким, незважаючи на нову мову). Я наткнувся на дуже мало, що змусило мене повірити, що я не зможу виконати своє завдання. Натомість у мене досить позитивне враження щодо функціональності та особливостей.

Такий мій досвід з цим. Можливо, це не більше ніж незавершений іграшковий проект, але він все ж являє собою усвідомлене випробування платформи, і я сподіваюся, що це допоможе.


Майже ідентична моїй ситуації - осторонь від "справжньої роботи", але все-таки щось, що мені потрібно зробити і мати функціонал наприкінці.
agartzke

Те ж саме. Також великим плюсом є те, що установка середовища розробки є оснащеною (ви кодуєте протягом хвилини). Те ж саме для розгортань.
Jilles

12

Ідея "App Engine, що працює на Django" трохи вводить в оману. App Engine замінює весь шар моделі Django, тому будьте готові витратити деякий час на звикання до магазину даних App Engine, який вимагає іншого способу моделювання та мислення даних.


Хороший момент - здається, що він за замовчуванням приймає шаблони Джанго, але не обов'язково решту.
agartzke

7

Я використовував GAE для створення http://www.muspy.com

Це трохи більше, ніж проект іграшок, але не надто складний. Я все ще залежу від кількох питань, якими потрібно вирішувати Google, але загальний розвиток веб-сайту був приємним досвідом.

Якщо ви не хочете займатися питаннями хостингу, адміністрацією сервера тощо, я, безумовно, можу порекомендувати це. Особливо, якщо ви вже знаєте Python та Django.


7

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

  • patch-engine-patch - це хороший рівень між Django та App Engine, що дозволяє використовувати додаток auth та інше.
  • Компанія Google пообіцяла домовленості про домовленості за угодою та ціноутворення до кінця 2008 року.
  • Запити повинні завершитися за 10 секунд, а підзапити на веб-сервіси, які потрібно виконати за 5 секунд. Це змушує вас розробити швидку, легку програму, яка не завантажує серйозну обробку на інші платформи (наприклад, розміщена служба або екземпляр EC2).
  • Більше мов найближчим часом! Google не скаже, що хоч :-). Мої гроші на Java далі.

станом на лютий 2009 року багато з перерахованих вище обмежень були зняті.
хуайет

3
Якщо хтось може відредагувати цю відповідь, було б непогано задуматися про те, що Java - це справді наступна мова.
JasonSmith

1
@jhs Ваш коментар робить це чудово!
вдень

І мова Go підтримується і зараз!
Дава

6

На це питання відповіли повністю. Що добре. Але, мабуть, варто згадати одне. У двигуні програми Google є плагін для ідеї затемнення, з якою радіти працювати.

Якщо ви вже робите свій розвиток із затемненням, ви будете дуже щасливі з цього приводу.

Щоб розгорнути на веб-сайті двигуна програми Google, все, що мені потрібно зробити, це натиснути одну маленьку кнопку - з логотипом літака - супер.


4

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


Гра sql перейшла з Google App Engine на приватний сервер.
systempuntoout

4

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


4

Я використовував GAE для свого веб-сайту для ігор, « Бородаті ігри» . GAE - чудова платформа. Я використовував шаблони Django, які набагато простіше, ніж колишні PHP. Він оснащений чудовою панеллю адміністрування та дає вам справді хороші журнали. Магазин даних відрізняється від бази даних, як MySQL, але з цим набагато простіше працювати. Створення сайту було простим та простим, і на них є багато корисних порад.


3

Я використовував GAE і Django для створення програми Facebook. Я використовував http://code.google.com/p/app-engine-patch в якості вихідного пункту, оскільки він має підтримку Django 1.1. Я не намагався використовувати будь-яку команду Manag.py, тому що я припускав, що вони не працюватимуть, але я навіть не вивчав це. У додатку було три моделі, а також використовували pyfacebook, але це була ступінь складності. Я зараз будую набагато складніший додаток, про який я починаю вести блог на http://brianyamabe.com .


Я почав використовувати Manag.py для запуску сервера, а також для запуску одиничних тестів. Запуск сервера працює чудово, але оскільки моя програма працює як додаток Facebook, це не все так корисно (мені потрібен розміщений сервер, на який посилається Facebook). Тестування блоків також працювало, і воно навіть працювало із світильниками. Однак мені не вдалося отримати світильники, які посилалися на інші моделі для роботи. Я досі не зрозумів, чи це проблема з моїм кріпленням або проблема з патчем-движком додатків.
byamabe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.