Google App Engine kullanımıyla ilgili geri bildiriminiz mi var? [kapalı]


125

Çok küçük, hızlı ve kirli bir yan proje yapmak istiyorum. Google App Engine'in Django'nun doğrudan yerleşik olduğu Python'da çalışması hoşuma gidiyor - bu platformu denemek için bana bir bahane veriyor ... ama sorum şu:

Uygulama motorunu oyuncak sorunu dışında bir şey için kullanan oldu mu? Orada bazı iyi örnek uygulamalar görüyorum, bu yüzden bunun gerçek anlaşma için yeterince iyi olduğunu varsayıyorum, ancak biraz geri bildirim almak istedim.

Diğer başarı / başarısızlık notları harika olurdu.


8
topluluk wiki olmalıdır
SilentGhost

Yanıtlar:


63

Küçük deprem saati uygulamam için uygulama motorunu denedim http://quakewatch.appspot.com/

Amacım, uygulama motorunun yeteneklerini görmekti, işte ana noktalar:

  1. Django ile varsayılan olarak gelmez, kendi web çerçevesine sahiptir, ki bu pitoniktir, Django gibi URL dağıtıcısı vardır ve Django şablonlarını kullanır Yani eğer Django exp varsa. kullanımı kolay bulacaksınız
  2. Sunucuda uzun süre çalışan herhangi bir işlemi yürütemezsiniz, yaptığınız şey isteğe yanıt vermek ve hızlı olmalıdır, aksi takdirde appengine onu öldürecektir.Yani uygulamanızın çok sayıda arka uç işlemeye ihtiyacı varsa uygulama motoru en iyi yol değildir, aksi takdirde işlem yapmak zorunda kalacaksınız. kendi sunucunuzda
  3. Quakewatch uygulamamın bir abonelik özelliği var, bu, en son depremleri meydana geldiklerinde e-postayla göndermem gerektiği anlamına geliyor, ancak yeni deprem çözümlerini izlemek için uygulama motorunda bir arka plan işlemi çalıştıramıyorum, burada pingablity.com gibi üçüncü bir servis kullanmak sayfanızdan birine bağlanın ve abonelik e-postasını yürütür, ancak burada da burada çok fazla zaman harcamamaya veya görevi birkaç parçaya bölmediğinize dikkat etmeniz gerekecektir.
  4. Django'ya benzer modelleme yetenekleri sağlar, ancak arka uç tamamen farklıdır, ancak yeni bir proje için önemli olmamalıdır.

Ancak genel olarak, arka planda işlemeye ihtiyaç duymayan uygulamalar oluşturmak için mükemmel olduğunu düşünüyorum.

Düzenleme: Artık görev kuyrukları toplu işlemeyi veya zamanlanmış görevleri çalıştırmak için kullanılabilir

Düzenleme: Bir yıl boyunca GAE'de gerçek bir uygulama çalıştıktan / oluşturduktan sonra, şimdi bana göre, milyonlarca kullanıcıya ölçeklenmesi gereken bir uygulama yapmıyorsanız, GAE'yi kullanmayın. GAE'de önemsiz görevleri sürdürmek ve yapmak, dağıtılmış doğası nedeniyle bir baş ağrısıdır, son teslim tarihinin aşılmasından kaçınmak, varlıkları saymak veya karmaşık sorgular yapmak karmaşık kod gerektirir, bu nedenle küçük karmaşık uygulamalar LAMP'a bağlı kalmalıdır.

Düzenleme: Modeller, gelecekte sahip olmak istediğiniz tüm işlemler dikkate alınarak özel olarak tasarlanmalıdır, çünkü yalnızca aynı varlık grubundaki varlıklar bir işlemde kullanılabilir ve iki farklı grubu güncelleme işlemini bir kabusa dönüştürür, örneğin, kullanıcı1'den kullanıcı2'ye para transferi aynı varlık grubunda olmadıkları sürece işlem yapmak imkansızdır, ancak onları aynı varlık grubu yapmak sık güncelleme amaçları için en iyisi olmayabilir .... bu http://blog.notdot.net/2009/9/Distributed-Transactions- okuyun on-App-Engine


6
Artık toplu işlem
GAE'de

2
Yeni Görev Sırası Python API'sini App-Engine belgelerinde de inceleyin.
Jason Rikard

11
Bu bilgilerin çoğu güncel değil - Django 0.96, 17 Temmuz
ine

3
Djanjo 1.0.x de artık GAE'ye dahil edilmiştir. Django'nun hangi revizyonunu istediğinizi seçebilirsiniz.
Laurent

5
Bir başka güncelleme, Django 1.1 artık GAE'nin yanı sıra eski sürümlerle de kullanılabilir.
SingleNegationElimination

36

Birkaç yüksek trafikli uygulamayı barındırmak için GAE kullanıyorum. 50-100 req / sn düzeninde olduğu gibi. Harika, yeterince tavsiye edemem.

Web geliştirme ile ilgili önceki deneyimim Ruby (Rails / Merb) ile oldu. Python öğrenmek kolaydı. Django veya Pylons veya başka herhangi bir çerçeveyle uğraşmadım, GAE örneklerinden başladım ve sağlanan temel web uygulaması kitaplıklarından ihtiyacım olanı oluşturdum.

SQL'in esnekliğine alışkınsanız, veri deposunun alışması biraz zaman alabilir. Çok travmatik bir şey yok! En büyük ayar, JOIN'lerden uzaklaşmaktır. Normalleştirmenin çok önemli olduğu fikrinden vazgeçmelisiniz.

Ben


23

Google App Engine'i kullanmak için karşılaştığım ikna edici nedenlerden biri, etki alanınız için Google Apps ile entegrasyonudur. Esasen, etki alanınızın (kontrollü) oturum açma bilgileriyle sınırlı özel, yönetilen web uygulamaları oluşturmanıza olanak tanır.

Bu kodla ilgili deneyimimin çoğu, basit bir zaman / görev izleme uygulaması oluşturmaktı. Şablon motoru basitti ve yine de çok sayfalı bir uygulamayı oldukça ulaşılabilir hale getirdi. Oturum açma / kullanıcı farkındalığı API'si de benzer şekilde kullanışlıdır. Çok fazla sorun olmadan genel bir sayfa / özel sayfa paradigması oluşturabildim. (bir kullanıcı özel sayfaları görmek için oturum açar. İsimsiz bir kullanıcıya sadece genel sayfa gösterilir.)

"Gerçek iş" için çekildiğimde projenin veri deposu kısmına yeni giriyordum.

Çok kısa sürede çok şey başarabildim (henüz yapılmadı). Daha önce hiç Python kullanmadığım için bu özellikle hoştu (hem benim için yeni bir dil olduğu için hem de yeni dile rağmen geliştirme hala hızlı olduğu için). Görevimi yerine getiremeyeceğime inanmamı sağlayan çok az şeyle karşılaştım. Bunun yerine, işlevsellik ve özellikler hakkında oldukça olumlu bir izlenimim var.

Bu benim onunla ilgili deneyimim. Belki de bitmemiş bir oyuncak projesinden fazlasını temsil etmiyor, ancak platformun bilinçli bir denemesini temsil ediyor ve umarım bu yardımcı olur.


Durumumla neredeyse aynı - "gerçek iş" dışında ama yine de yapmam gereken ve sonunda işlevsel hale getirmem gereken bir şey.
agartzke

Burada aynı. Ayrıca, büyük artı, geliştirme ortamı kurulumunun bir çırpıda olmasıdır (bir dakika içinde kodluyorsunuz). Dağıtımlar için de aynı şey.
Jilles

12

"Django çalıştıran App Engine" fikri biraz yanıltıcıdır. App Engine, Django model katmanının tamamının yerini aldığından, veriler hakkında farklı bir modelleme ve düşünme yöntemi gerektiren App Engine'in veri deposuna alışmak için biraz zaman harcamaya hazır olun.


İyi bir nokta - öyle görünüyor ki varsayılan olarak Django'nun şablonunu alıyor, ama geri kalanını değil.
agartzke

7

Ben sürüme Gae kullanılan http://www.muspy.com

Bir oyuncak projesinden biraz daha fazlası ama aşırı karmaşık da değil. Hala Google tarafından ele alınacak birkaç soruna güveniyorum, ancak genel olarak web sitesini geliştirmek keyifli bir deneyim oldu.

Hosting sorunları, sunucu yönetimi vb. İle uğraşmak istemiyorsanız kesinlikle tavsiye edebilirim. Özellikle Python ve Django'yu zaten biliyorsanız.


7

App Engine'in bu noktada küçük projeler için oldukça iyi olduğunu düşünüyorum. Barındırma konusunda asla endişelenmenize gerek kalmadan söylenecek çok şey var. API ayrıca sizi ölçeklenebilir uygulamalar oluşturma yönünde iter ki bu iyi bir uygulamadır.

  • app-engine-patch , Django ve App Engine arasında, kimlik doğrulama uygulamasının kullanımını ve daha fazlasını sağlayan iyi bir katmandır.
  • Google, 2008 yılı sonuna kadar bir HDS ve fiyatlandırma modeli vaat etti.
  • İsteklerin 10 saniyede, web hizmetlerine yönelik alt isteklerin 5 saniyede tamamlanması gerekir. Bu, sizi hızlı, hafif bir uygulama tasarlamaya, ciddi işlemleri diğer platformlara yüklemeye zorlar (örneğin, barındırılan bir hizmet veya bir EC2 bulut sunucusu).
  • Yakında daha fazla dil geliyor! Google hangisi olduğunu söylemeyecek :-). Sırada param Java'da.

Şubat 2009 itibarıyla yukarıdaki sınırlamaların çoğu hafifletildi.
husayt

3
Biri bu cevabı düzenleyebilirse, Java'nın gerçekten de mevcut bir sonraki dil olduğunu yansıtmak güzel olurdu.
JasonSmith

1
@jhs Yorumunuz bunu çok güzel yapıyor!
öğleden sonra

Ve artık Go dili de destekleniyor!
davewasthere

6

Bu soru tamamen cevaplandı. Hangisi iyi. Ama belki bir şeyden bahsetmeye değer. Google uygulama motorunun, birlikte çalışmaktan zevk alan tutulma ideası için bir eklentisi vardır.

Zaten gelişiminizi tutulma ile yapıyorsanız, bundan çok mutlu olacaksınız.

Google uygulama motorunun web sitesinde dağıtmak için tek yapmam gereken küçük bir düğmeye tıklamak - uçak logolu - süper.


4

Sql oyununa bir göz atın , çok kararlı ve aslında bir noktada trafik sınırlarını zorladı, böylece Google tarafından kısıtlanıyordu. Uygulamanızı başka birinin tamamen kontrol ettiği sunucularda barındırmak dışında, App Engine hakkında iyi haberlerden başka bir şey görmedim.


sql game, Google App Engine'den özel bir sunucuya taşındı.
systempuntoout

4

GAE'yi bazı parametreleri, formatları kabul eden ve e-posta gönderen basit bir uygulama oluşturmak için kullandım. Son derece basit ve hızlıydı. Ayrıca GAE veri deposu ve memcache hizmetlerinde ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ) bazı performans karşılaştırmaları yaptım . O kadar hızlı değil. Benim fikrim GAE'nin belirli metodolojiyi uygulayan ciddi bir platform olduğu yönünde. Kötü uygulamalara izin verilmeyen, gerçekten ölçeklenebilir bir platforma dönüşeceğini düşünüyorum.


4

GAE'yi flash oyun sitem Bearded Games için kullandım . GAE harika bir platformdur. PHP'nin eski günlerinden çok daha kolay olan Django şablonlarını kullandım. Harika bir yönetici paneliyle birlikte gelir ve size gerçekten iyi günlükler verir. Veri deposu, MySQL gibi bir veritabanından farklıdır, ancak çalışmak çok daha kolaydır. Siteyi oluşturmak kolay ve anlaşılırdı ve sitede pek çok yararlı tavsiye var.


3

Bir Facebook uygulaması oluşturmak için GAE ve Django kullandım. Django 1.1 desteğine sahip olduğu için başlangıç noktam olarak http://code.google.com/p/app-engine-patch kullandım . Manage.py komutlarının hiçbirini kullanmaya çalışmadım çünkü işe yaramayacaklarını varsaydım, ama ona bakmadım bile. Uygulamanın üç modeli vardı ve ayrıca pyfacebook kullanıyordu, ancak karmaşıklığın kapsamı buydu. Http://brianyamabe.com adresinde blog yazmaya başladığım çok daha karmaşık bir uygulama oluşturma sürecindeyim .


Manage.py'yi sunucuyu çalıştırmak ve ayrıca bazı birim testlerini çalıştırmak için kullanmaya başladım. Sunucuyu çalıştırmak iyi çalışıyor, ancak uygulamam bir Facebook uygulaması olarak çalıştığı için bu pek kullanışlı değil (Facebook'un referans verdiği barındırılan bir sunucuya ihtiyacım var). Birim testi de işe yaradı ve hatta armatürlerle çalıştı. Ancak, çalışmak için diğer modellere atıfta bulunan fikstürleri bulamadım. Fikstürümle ilgili bir sorun mu yoksa app-engine-patch ile ilgili bir sorun mu olduğunu hala anlayamadım.
byamabe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.