ความคิดเห็นเกี่ยวกับการใช้ Google App Engine? [ปิด]


125

กำลังทำโครงการเล็ก ๆ น้อย ๆ ที่สกปรกอย่างรวดเร็ว ฉันชอบความจริงที่ว่า Google App Engine ทำงานบน Python ที่มี Django ในตัว - ทำให้ฉันมีข้ออ้างในการลองใช้แพลตฟอร์มนั้น ... แต่คำถามของฉันคือ:

มีใครใช้แอพเอนจินสำหรับสิ่งอื่นที่ไม่ใช่ปัญหาของเล่นหรือไม่? ฉันเห็นแอปตัวอย่างที่ดีอยู่แล้วดังนั้นฉันคิดว่านี่ดีพอสำหรับดีลจริง แต่ก็อยากได้ความคิดเห็น

บันทึกความสำเร็จ / ความล้มเหลวอื่น ๆ จะดีมาก


8
ควรเป็นวิกิชุมชน
SilentGhost

คำตอบ:


63

ฉันได้ลองใช้แอพเอนจินสำหรับแอพพลิเคชั่นนาฬิกาสั่นสะเทือนขนาดเล็กของฉัน http://quakewatch.appspot.com/

จุดประสงค์ของฉันคือเพื่อดูความสามารถของแอพเอนจินดังนั้นนี่คือประเด็นหลัก:

  1. มันไม่ได้มาตามค่าเริ่มต้นกับ Django แต่ก็มีเว็บเฟรมเวิร์กของตัวเองซึ่ง pythonic มีตัวเลือก URL เช่น Django และใช้เทมเพลต Django ดังนั้นหากคุณมี Django exp คุณจะพบว่ามันใช้งานง่าย
    • แต่คุณสามารถใช้เฟรมเวิร์ก python บริสุทธิ์และสามารถเพิ่ม Django ได้อย่างง่ายดายโปรดดู http://code.google.com/appengine/articles/django.html google-app-engine-django ( http://code.google.com/ p / google-app-engine-django / ) โปรเจ็กต์นั้นยอดเยี่ยมและทำงานได้เกือบจะเหมือนกับการทำงานในโครงการ Django
  2. คุณไม่สามารถดำเนินการตามขั้นตอนที่ทำงานเป็นเวลานานบนเซิร์ฟเวอร์ได้สิ่งที่คุณทำคือตอบกลับคำขอและสิ่งที่ควรรวดเร็วไม่เช่นนั้น appengine จะฆ่ามันดังนั้นหากแอปของคุณต้องการแอปการประมวลผลแบ็กเอนด์จำนวนมากไม่ใช่วิธีที่ดีที่สุดมิฉะนั้นคุณจะต้องทำการประมวลผล บนเซิร์ฟเวอร์ของคุณเอง
  3. แอพ quakewatch ของฉันมีคุณสมบัติการสมัครสมาชิกหมายความว่าฉันต้องส่งอีเมลถึงการสั่นสะเทือนล่าสุดเมื่อเกิดขึ้น แต่ฉันไม่สามารถเรียกใช้กระบวนการพื้นหลังในแอพเอ็นจินเพื่อตรวจสอบโซลูชันการสั่นไหวใหม่ที่นี่คือการใช้บริการส่วนที่สามเช่น pingablity.com ซึ่งสามารถทำได้ เชื่อมต่อกับหน้าใดหน้าหนึ่งของคุณและซึ่งดำเนินการกับอีเมลการสมัครสมาชิก แต่ที่นี่คุณจะต้องดูแลว่าคุณจะไม่ใช้เวลามากที่นี่หรือแบ่งงานออกเป็นหลายส่วน
  4. มันให้ Django เหมือนความสามารถในการสร้างแบบจำลอง แต่แบ็กเอนด์แตกต่างกันโดยสิ้นเชิง แต่สำหรับโปรเจ็กต์ใหม่ไม่ควรสำคัญ

แต่โดยรวมแล้วฉันคิดว่ามันยอดเยี่ยมมากสำหรับการสร้างแอพที่ไม่ต้องการการประมวลผลพื้นหลังมากนัก

แก้ไข: ตอนนี้คิวงานสามารถใช้สำหรับการรันการประมวลผลชุดงานหรืองานที่กำหนดเวลาไว้

แก้ไข: หลังจากทำงาน / สร้างแอปพลิเคชันจริงบน GAE เป็นเวลาหนึ่งปีตอนนี้ความคิดของฉันคือเว้นแต่คุณจะสร้างแอปพลิเคชันที่ต้องปรับขนาดเป็นล้านและล้านของผู้ใช้อย่าใช้ GAE การดูแลรักษาและทำงานเล็กน้อยใน GAE เป็นเรื่องที่น่าปวดหัวเนื่องจากลักษณะการกระจายเพื่อหลีกเลี่ยงข้อผิดพลาดเกินกำหนดเวลานับเอนทิตีหรือการสืบค้นที่ซับซ้อนต้องใช้รหัสที่ซับซ้อนดังนั้นแอปพลิเคชันที่ซับซ้อนขนาดเล็กควรติด LAMP

แก้ไข: แบบจำลองควรได้รับการออกแบบมาเป็นพิเศษโดยพิจารณาจากธุรกรรมทั้งหมดที่คุณต้องการจะมีในอนาคตเนื่องจากเอนทิตีเฉพาะในกลุ่มเอนทิตีเดียวกันสามารถใช้ในธุรกรรมได้และทำให้กระบวนการอัปเดตกลุ่มที่แตกต่างกันสองกลุ่มกลายเป็นฝันร้ายเช่นการโอนเงินจากผู้ใช้ 1 ไปยังผู้ใช้ 2 ในการทำธุรกรรมเป็นไปไม่ได้เว้นแต่จะอยู่ในกลุ่มเอนทิตีเดียวกัน แต่การทำให้เป็นกลุ่มเอนทิตีเดียวกันอาจไม่ดีที่สุดสำหรับวัตถุประสงค์ในการอัปเดตบ่อยๆ .... อ่านhttp://blog.notdot.net/2009/9/Distributed-Transactions- บน App เครื่องยนต์


6
ตอนนี้กระบวนการแบทช์สามารถรันบน GAE
Anurag Uniyal

2
ลองดู Task Queue Python API ใหม่ในเอกสาร App-Engine
Jason Rikard

11
มากของข้อมูลนี้จะล้าสมัย - Django 0.96 ถูกสร้างขึ้นในขณะนี้เป็น GAE ณ วันที่ 17 เดือนกรกฎาคม 2009
ครับ

3
Djanjo 1.0.x รวมอยู่ใน GAE แล้ว คุณสามารถเลือกการแก้ไข Django ที่คุณต้องการได้
Laurent

5
เพียงแค่การอัปเดตอื่น Django 1.1 พร้อมใช้งานแล้วกับ GAE และเวอร์ชันที่ผ่านมา
SingleNegationElimination

36

ฉันใช้ GAE เพื่อโฮสต์แอปพลิเคชันที่มีการเข้าชมสูงจำนวนมาก เช่นเดียวกับการสั่งซื้อ 50-100 req / วินาที มันเยี่ยมมากฉันไม่สามารถแนะนำได้เพียงพอ

ประสบการณ์ก่อนหน้านี้ของฉันกับการพัฒนาเว็บคือ Ruby (Rails / Merb) การเรียนรู้ Python เป็นเรื่องง่าย ฉันไม่ได้ยุ่งกับ Django หรือ Pylons หรือเฟรมเวิร์กอื่น ๆ เพียงแค่เริ่มจากตัวอย่าง GAE และสร้างสิ่งที่ฉันต้องการจากไลบรารี webapp พื้นฐานที่มีให้

หากคุณคุ้นเคยกับความยืดหยุ่นของ SQL ที่เก็บข้อมูลอาจทำให้คุ้นเคย ไม่มีอะไรกระทบกระเทือนจิตใจ! การปรับเปลี่ยนครั้งใหญ่ที่สุดกำลังจะย้ายออกจาก JOIN คุณต้องขจัดความคิดที่ว่าการทำให้ปกติเป็นสิ่งสำคัญ

เบน


23

หนึ่งในเหตุผลที่น่าสนใจที่ฉันพบในการใช้ Google App Engine คือการผสานรวมกับ Google Apps สำหรับโดเมนของคุณ โดยพื้นฐานแล้วจะช่วยให้คุณสร้างเว็บแอปพลิเคชันที่กำหนดเองและมีการจัดการซึ่ง จำกัด เฉพาะการเข้าสู่ระบบ (ควบคุม) ของโดเมนของคุณ

ประสบการณ์ส่วนใหญ่ของฉันเกี่ยวกับรหัสนี้คือการสร้างแอปพลิเคชันติดตามเวลา / งานง่ายๆ เครื่องมือเทมเพลตนั้นเรียบง่ายและยังทำให้แอปพลิเคชั่นหลายหน้าเข้าถึงได้ง่าย API การเข้าสู่ระบบ / การรับรู้ผู้ใช้มีประโยชน์ในทำนองเดียวกัน ฉันสามารถสร้างกระบวนทัศน์เพจสาธารณะ / เพจส่วนตัวได้โดยไม่มีปัญหามากเกินไป (ผู้ใช้จะเข้าสู่ระบบเพื่อดูเพจส่วนตัวผู้ใช้ที่ไม่ระบุชื่อจะแสดงเฉพาะเพจสาธารณะเท่านั้น)

ฉันเพิ่งเข้าไปในส่วนที่เก็บข้อมูลของโครงการเมื่อฉันถูกดึงออกไปสำหรับ "งานจริง"

ฉันสามารถทำสำเร็จได้มากมาย (ยังไม่เสร็จ) ในเวลาอันน้อยนิด เนื่องจากฉันไม่เคยใช้ Python มาก่อนสิ่งนี้จึงน่าพอใจเป็นอย่างยิ่ง (ทั้งสองอย่างนี้เป็นภาษาใหม่สำหรับฉันและเนื่องจากการพัฒนายังคงรวดเร็วแม้จะมีภาษาใหม่ก็ตาม) ฉันพบว่ามีเพียงเล็กน้อยเท่านั้นที่ทำให้ฉันเชื่อว่าฉันจะไม่สามารถทำงานให้สำเร็จได้ แต่ฉันมีความประทับใจในการใช้งานและคุณสมบัติที่ค่อนข้างดี

นั่นคือประสบการณ์ของฉันกับมัน บางทีมันอาจไม่ได้เป็นตัวแทนของโครงการของเล่นที่ยังทำไม่เสร็จ แต่เป็นตัวแทนของการทดลองใช้แพลตฟอร์มอย่างมีข้อมูลและฉันหวังว่าจะช่วยได้


เกือบจะเหมือนกับสถานการณ์ของฉัน - นอกเหนือจาก "งานจริง" แต่ยังเป็นสิ่งที่ฉันต้องทำและมีประโยชน์ในตอนท้าย
agartzke

เหมือนกันที่นี่ นอกจากนี้ข้อดีอย่างมากก็คือการติดตั้งสภาพแวดล้อมการพัฒนานั้นทำได้ง่าย (คุณกำลังเข้ารหัสภายในหนึ่งนาที) สิ่งเดียวกันสำหรับการปรับใช้
Jilles

12

แนวคิด "App Engine ทำงาน Django" นั้นทำให้เข้าใจผิดเล็กน้อย App Engine จะแทนที่เลเยอร์โมเดล Django ทั้งหมดดังนั้นโปรดเตรียมที่จะใช้เวลาทำความคุ้นเคยกับพื้นที่เก็บข้อมูลของ App Engine ซึ่งต้องใช้วิธีการสร้างแบบจำลองและการคิดเกี่ยวกับข้อมูลที่แตกต่างกัน


จุดดี - ดูเหมือนว่าโดยค่าเริ่มต้นจะใช้เทมเพลตของ Django แต่ไม่จำเป็นต้องเป็นส่วนที่เหลือ
agartzke

7

ฉันใช้ GAE เพื่อสร้างhttp://www.muspy.com

มันเป็นมากกว่าโครงการของเล่นเล็กน้อย แต่ก็ไม่ซับซ้อนเกินไป ฉันยังคงพึ่งพาปัญหาบางประการที่ Google จะได้รับการแก้ไข แต่โดยรวมแล้วการพัฒนาเว็บไซต์เป็นประสบการณ์ที่สนุกสนาน

หากคุณไม่ต้องการจัดการกับปัญหาโฮสติ้งการดูแลเซิร์ฟเวอร์และอื่น ๆ ฉันสามารถแนะนำได้อย่างแน่นอน โดยเฉพาะอย่างยิ่งถ้าคุณรู้จัก Python และ Django อยู่แล้ว


7

ฉันคิดว่า App Engine ค่อนข้างเจ๋งสำหรับโครงการขนาดเล็ก ณ จุดนี้ มีหลายสิ่งที่ต้องพูดเพราะไม่ต้องกังวลเรื่องโฮสติ้ง API ยังช่วยผลักดันคุณในการสร้างแอปที่ปรับขนาดได้ซึ่งเป็นแนวทางปฏิบัติที่ดี

  • app-engine-patchเป็นเลเยอร์ที่ดีระหว่าง Django และ App Engine ทำให้สามารถใช้แอป auth และอื่น ๆ ได้
  • Google ได้สัญญา SLA และรูปแบบการกำหนดราคาภายในสิ้นปี 2008
  • คำขอจะต้องเสร็จสมบูรณ์ภายใน 10 วินาทีคำขอย่อยไปยังบริการบนเว็บต้องดำเนินการให้เสร็จสิ้นภายใน 5 วินาที สิ่งนี้บังคับให้คุณต้องออกแบบแอปพลิเคชันที่รวดเร็วน้ำหนักเบาการประมวลผลที่จริงจังแบบไม่โหลดไปยังแพลตฟอร์มอื่น ๆ (เช่นบริการโฮสต์หรืออินสแตนซ์ EC2)
  • ภาษาอื่น ๆ กำลังจะมาเร็ว ๆ นี้! Google จะไม่พูดว่า :-) เงินของฉันอยู่บน Java ต่อไป

ณ เดือนกุมภาพันธ์ 2552 ข้อ จำกัด หลายประการข้างต้นได้ผ่อนคลายลง
Husayt

3
หากมีใครสามารถแก้ไขคำตอบนี้ได้ก็คงจะดีที่จะสะท้อนให้เห็นว่า Java เป็นภาษาถัดไปที่พร้อมใช้งาน
JasonSmith

1
@jhs ความคิดเห็นของคุณทำได้ดีมาก!
บ่าย

และตอนนี้รองรับภาษา Go แล้วด้วย!
davewasthere

6

คำถามนี้ได้รับคำตอบอย่างครบถ้วน สิ่งไหนดี. แต่สิ่งหนึ่งที่ควรค่าแก่การกล่าวถึง โปรแกรม google app มีปลั๊กอินสำหรับ eclipse ide ซึ่งเป็นความสุขในการทำงานด้วย

หากคุณทำการพัฒนาด้วยคราสแล้วคุณจะมีความสุขกับเรื่องนั้นมาก

ในการปรับใช้บนเว็บไซต์ของ google app engine สิ่งที่ฉันต้องทำคือคลิกปุ่มเล็ก ๆ เพียงปุ่มเดียว - พร้อมโลโก้เครื่องบิน - สุดยอด


4

ลองดูเกม sqlมันมีความเสถียรมากและผลักดันขีด จำกัด การจราจร ณ จุดหนึ่งเพื่อให้ Google ถูกควบคุม ฉันไม่เห็นอะไรเลยนอกจากข่าวดีเกี่ยวกับ App Engine นอกจากโฮสต์แอปของคุณบนเซิร์ฟเวอร์ที่คนอื่นควบคุมอย่างสมบูรณ์


เกม sql ได้ย้ายจาก Google App Engine ไปยังเซิร์ฟเวอร์ส่วนตัว
systempuntoout

4

ฉันใช้ GAE เพื่อสร้างแอปพลิเคชันง่ายๆที่ยอมรับพารามิเตอร์รูปแบบและส่งอีเมล มันง่ายและรวดเร็วมาก ฉันยังสร้างเกณฑ์มาตรฐานประสิทธิภาพบางอย่างในบริการข้อมูล GAE และบริการ memcache ( 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 ฉันไม่ได้พยายามใช้คำสั่ง Manage.py ใด ๆ เพราะฉันคิดว่ามันใช้ไม่ได้ แต่ฉันไม่ได้ดูด้วยซ้ำ แอปพลิเคชันนี้มีสามรุ่นและยังใช้ pyfacebook แต่นั่นคือขอบเขตของความซับซ้อน ผมอยู่ในกระบวนการของการสร้างแอพลิเคชันที่มีความซับซ้อนมากขึ้นซึ่งฉันเริ่มที่จะบล็อกเกี่ยวกับในhttp://brianyamabe.com


ฉันเริ่มใช้ Manage.py เพื่อเรียกใช้เซิร์ฟเวอร์และเรียกใช้การทดสอบหน่วย การเรียกใช้เซิร์ฟเวอร์ทำงานได้ดี แต่เนื่องจากแอปพลิเคชันของฉันทำงานเป็นแอป Facebook มันก็ไม่ได้มีประโยชน์อะไรเลย (ฉันต้องการเซิร์ฟเวอร์ที่โฮสต์ที่ Facebook อ้างอิง) การทดสอบหน่วยยังใช้งานได้และยังใช้งานได้กับอุปกรณ์ติดตั้ง อย่างไรก็ตามฉันไม่สามารถรับอุปกรณ์ติดตั้งที่อ้างอิงรุ่นอื่นมาใช้งานได้ ฉันยังไม่ทราบว่ามันเป็นปัญหากับการติดตั้งของฉันหรือปัญหาเกี่ยวกับแอพเอ็นจิ้นแพทช์
byamabe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.