Umpan balik tentang penggunaan Mesin Aplikasi Google? [Tutup]

125

Mencari untuk melakukan proyek sampingan yang sangat kecil, cepat dan kotor. Saya menyukai kenyataan bahwa Google App Engine berjalan pada Python dengan Django terintegrasi - memberi saya alasan untuk mencoba platform itu ... tapi pertanyaan saya adalah ini:

Adakah yang menggunakan engine aplikasi untuk hal lain selain masalah mainan? Saya melihat beberapa contoh aplikasi yang bagus di luar sana, jadi saya akan menganggap ini cukup baik untuk real deal, tetapi ingin mendapatkan umpan balik.

Catatan keberhasilan / kegagalan lainnya akan bagus.

agartzke
sumber
8
harus menjadi komunitas wiki
SilentGhost

Jawaban:

63

Saya telah mencoba mesin aplikasi untuk aplikasi menonton gempa kecil saya http://quakewatch.appspot.com/

Tujuan saya adalah untuk melihat kemampuan engine aplikasi, jadi inilah poin utamanya:

  1. itu tidak datang secara default dengan Django, ia memiliki kerangka kerja web sendiri yang pythonic memiliki URL dispatcher seperti Django dan menggunakan template Django Jadi jika Anda memiliki Django exp. Anda akan merasa mudah menggunakannya
  2. Anda tidak dapat menjalankan proses yang berjalan lama di server, apa yang Anda lakukan adalah membalas permintaan dan mana yang harus cepat, jika tidak, appengine akan membunuhnya. Jadi, jika aplikasi Anda membutuhkan banyak perangkat pemrosesan backend, itu bukan cara terbaik, jika tidak, Anda harus melakukan pemrosesan. di server Anda sendiri
  3. Aplikasi quakewatch saya memiliki fitur berlangganan, artinya saya harus mengirim email gempa terbaru saat mereka terjadi, tetapi saya tidak dapat menjalankan proses latar belakang di app engine untuk memantau solusi gempa baru di sini adalah dengan menggunakan layanan bagian ketiga seperti pingablity.com yang dapat terhubung ke salah satu halaman Anda dan yang mengeksekusi emailer berlangganan tetapi di sini juga Anda harus berhati-hati bahwa Anda tidak menghabiskan banyak waktu di sini atau membagi tugas menjadi beberapa bagian
  4. Ini memberikan Django seperti kemampuan pemodelan tetapi backend sama sekali berbeda tetapi untuk proyek baru itu tidak masalah.

Tapi secara keseluruhan saya pikir ini sangat baik untuk membuat aplikasi yang tidak membutuhkan banyak pemrosesan latar belakang.

Sunting: Sekarang antrian tugas dapat digunakan untuk menjalankan pemrosesan batch atau tugas terjadwal

Sunting: setelah bekerja / membuat aplikasi nyata pada GAE selama satu tahun, sekarang pendapat saya adalah bahwa kecuali Anda membuat aplikasi yang perlu untuk skala jutaan dan jutaan pengguna, jangan gunakan GAE. Mempertahankan dan melakukan tugas-tugas sepele di GAE adalah sakit kepala karena sifat terdistribusi, untuk menghindari tenggat waktu melebihi kesalahan, menghitung entitas atau melakukan permintaan kompleks memerlukan kode kompleks, sehingga aplikasi kecil yang kompleks harus menempel pada LAMP.

Sunting: Model harus dirancang khusus mempertimbangkan semua transaksi yang ingin Anda miliki di masa depan, karena entitas hanya dalam kelompok entitas yang sama dapat digunakan dalam transaksi dan itu membuat proses memperbarui dua kelompok yang berbeda menjadi mimpi buruk misalnya mentransfer uang dari pengguna1 ke pengguna2 dalam transaksi tidak mungkin kecuali mereka berada dalam grup entitas yang sama, tetapi menjadikannya grup entitas yang sama mungkin bukan yang terbaik untuk tujuan pembaruan yang sering dilakukan .... baca http://blog.notdot.net/2009/9/Distributed-Transactions- di-App-Engine

Anurag Uniyal
sumber
6
Sekarang proses batch dapat dijalankan pada GAE
Anurag Uniyal
2
Lihat API Antrian Tugas Antrian baru juga di dokumen App-Engine.
Jason Rikard
11
Banyak dari informasi ini sudah usang - Django 0.96 sekarang dibangun di GAE pada 17 Juli 2009.
ine
3
Djanjo 1.0.x juga termasuk dalam GAE sekarang. Anda dapat memilih revisi Django yang Anda inginkan.
Laurent
5
Hanya pembaruan lainnya, Django 1.1 sekarang tersedia dengan GAE dan juga versi sebelumnya.
SingleNegationElimination
36

Saya menggunakan GAE untuk meng-host beberapa aplikasi lalu lintas tinggi. Seperti pada urutan 50-100 req / detik. Sangat bagus, saya tidak bisa merekomendasikannya cukup.

Pengalaman saya sebelumnya dengan pengembangan web adalah dengan Ruby (Rails / Merb). Mempelajari Python itu mudah. Saya tidak main-main dengan Django atau Pylons atau kerangka kerja lainnya, baru mulai dari contoh GAE dan membangun apa yang saya butuhkan dari pustaka webapp dasar yang disediakan.

Jika Anda terbiasa dengan fleksibilitas SQL, datastore dapat membiasakan diri. Tidak ada yang terlalu traumatis! Penyesuaian terbesar adalah menjauh dari GABUNGAN. Anda harus menghilangkan gagasan bahwa normalisasi itu penting.

Ben

mainsocial
sumber
23

Salah satu alasan kuat yang saya temui untuk menggunakan Google App Engine adalah integrasinya dengan Google Apps untuk domain Anda. Pada dasarnya itu memungkinkan Anda untuk membuat aplikasi web yang dikelola dan disesuaikan, yang dibatasi untuk login (terkontrol) domain Anda.

Sebagian besar pengalaman saya dengan kode ini adalah membangun aplikasi pelacakan waktu / tugas sederhana. Mesin template sederhana dan belum membuat aplikasi multi-halaman sangat mudah didekati. Api kesadaran pengguna / login juga berguna. Saya dapat membuat paradigma halaman publik / halaman pribadi tanpa terlalu banyak masalah. (pengguna akan masuk untuk melihat halaman pribadi. Pengguna anonim hanya ditunjukkan halaman publik.)

Saya baru saja masuk ke bagian datastore proyek ketika saya ditarik untuk "pekerjaan nyata".

Saya bisa menyelesaikan banyak hal (masih belum selesai) dalam waktu yang sangat sedikit. Karena saya belum pernah menggunakan Python sebelumnya, ini sangat menyenangkan (baik karena itu adalah bahasa baru bagi saya, dan juga karena perkembangannya masih cepat meskipun bahasa baru). Saya bertemu dengan sangat sedikit yang membuat saya percaya bahwa saya tidak akan dapat menyelesaikan tugas saya. Sebaliknya saya memiliki kesan yang cukup positif tentang fungsi dan fitur.

Itulah pengalaman saya dengannya. Mungkin itu tidak mewakili lebih dari proyek mainan yang belum selesai, tetapi itu memang mewakili uji coba platform informasi, dan saya harap itu membantu.

el2iot2
sumber
Hampir identik dengan situasi saya - selain dari "pekerjaan nyata" tetapi masih sesuatu yang harus saya lakukan dan memiliki fungsional pada akhirnya.
agartzke
Sama disini. Juga, plus besar adalah bahwa instalasi lingkungan pengembangan sangat mudah (Anda membuat kode dalam satu menit). Hal yang sama untuk penerapan.
Jilles
12

Gagasan "App Engine menjalankan Django" agak menyesatkan. App Engine menggantikan seluruh lapisan model Django jadi bersiaplah untuk meluangkan waktu untuk menyesuaikan diri dengan datastore App Engine yang membutuhkan cara pemodelan dan pemikiran data yang berbeda.

sutee
sumber
Poin bagus - tampaknya secara default mengambil templating Django, tetapi belum tentu sisanya.
agartzke
7

Saya menggunakan GAE untuk membangun http://www.muspy.com

Ini sedikit lebih dari proyek mainan tetapi tidak terlalu rumit. Saya masih bergantung pada beberapa masalah yang harus ditangani oleh Google, tetapi mengembangkan situs web secara keseluruhan adalah pengalaman yang menyenangkan.

Jika Anda tidak ingin berurusan dengan masalah hosting, administrasi server, dll, saya pasti dapat merekomendasikannya. Apalagi jika Anda sudah tahu Python dan Django.

Alexander Kojevnikov
sumber
7

Saya pikir App Engine cukup keren untuk proyek-proyek kecil pada saat ini. Ada banyak yang bisa dikatakan untuk tidak perlu khawatir tentang hosting. API juga mendorong Anda ke arah pembangunan aplikasi yang dapat diskalakan, yang merupakan praktik yang baik.

  • app-engine-patch adalah lapisan yang baik antara Django dan App Engine, memungkinkan penggunaan aplikasi auth dan banyak lagi.
  • Google telah menjanjikan model SLA dan penetapan harga pada akhir 2008.
  • Permintaan harus selesai dalam 10 detik, sub-permintaan ke layanan web harus diselesaikan dalam 5 detik. Ini memaksa Anda untuk merancang aplikasi yang cepat, ringan, pemrosesan serius yang tidak dimuat ke platform lain (mis. Layanan yang dihosting atau instance EC2).
  • Lebih banyak bahasa akan segera hadir! Google tidak akan mengatakan yang mana :-). Uang saya di Jawa berikutnya.
sore
sumber
per Februari 2009 banyak dari pembatasan di atas telah berkurang.
husayt
3
Jika seseorang dapat mengedit jawaban ini, akan lebih baik untuk mencerminkan bahwa Java memang bahasa berikutnya yang tersedia.
JasonSmith
1
@ jhs Komentar Anda sangat bagus!
Sore
Dan bahasa Go juga didukung sekarang!
davewasthere
6

Pertanyaan ini telah dijawab sepenuhnya. Yang mana yang bagus. Tapi satu hal yang mungkin perlu disebutkan. Mesin aplikasi google memiliki plugin untuk ide gerhana yang menyenangkan untuk bekerja dengannya.

Jika Anda sudah melakukan pengembangan Anda dengan gerhana Anda akan sangat senang tentang itu.

Untuk menggunakan situs web mesin aplikasi google, yang perlu saya lakukan adalah mengklik satu tombol kecil - dengan logo pesawat - super.

berturut-turut
sumber
4

Lihatlah permainan sql , ini sangat stabil dan benar-benar mendorong batas lalu lintas di satu titik sehingga semakin diperketat oleh Google. Saya telah melihat berita baik tentang App Engine, selain hosting aplikasi Anda di server orang lain sepenuhnya mengendalikan.

Joe Skora
sumber
sql game telah dipindahkan dari Google App Engine ke server pribadi.
systempuntoout
4

Saya menggunakan GAE untuk membangun aplikasi sederhana yang menerima beberapa parameter, format, dan mengirim email. Itu sangat sederhana dan cepat. Saya juga membuat beberapa tolok ukur kinerja pada GAE datastore dan layanan memcache ( http://dbaspects.blogspot.com/2010/01/memcache-vs-datastore-on-google-app.html ). Tidak secepat itu. Pendapat saya adalah bahwa GAE adalah platform serius yang menerapkan metodologi tertentu. Saya pikir itu akan berkembang ke platform yang benar-benar dapat diskalakan, di mana praktik buruk tidak diizinkan.

David Gruzman
sumber
4

Saya menggunakan GAE untuk situs game flash saya, Bearded Games . GAE adalah platform yang hebat. Saya menggunakan template Django yang jauh lebih mudah daripada PHP dulu. Muncul dengan panel admin yang hebat, dan memberi Anda log yang sangat bagus. Datastore berbeda dari database seperti MySQL, tetapi jauh lebih mudah untuk digunakan. Membangun situs itu mudah dan langsung dan mereka memiliki banyak saran bermanfaat di situs.

Josh Patton
sumber
3

Saya menggunakan GAE dan Django untuk membangun aplikasi Facebook. Saya menggunakan http://code.google.com/p/app-engine-patch sebagai titik awal saya karena memiliki dukungan Django 1.1. Saya tidak mencoba menggunakan perintah manage.py karena saya berasumsi mereka tidak akan berfungsi, tetapi saya bahkan tidak memeriksanya. Aplikasi ini memiliki tiga model dan juga menggunakan pyfacebook, tetapi itu adalah tingkat kerumitannya. Saya sedang dalam proses membangun aplikasi yang jauh lebih rumit yang saya mulai blog tentang di http://brianyamabe.com .

byamabe
sumber
Saya mulai menggunakan manage.py untuk menjalankan server dan juga untuk menjalankan beberapa tes unit. Menjalankan server berfungsi dengan baik, tetapi karena aplikasi saya berjalan sebagai aplikasi Facebook, itu tidak terlalu berguna (saya membutuhkan server yang dihosting yang dirujuk oleh Facebook). Pengujian unit juga berhasil dan bahkan bekerja dengan fixture. Namun, saya tidak bisa mendapatkan perlengkapan yang mereferensikan model lain untuk bekerja. Saya masih belum menemukan apakah itu masalah dengan fixture saya atau masalah dengan app-engine-patch.
byamabe