พอดีผมสนใจ google app engine มากครับ ที่สนใจเพราะว่า ดูแล้วจะได้ไม่ต้องมานั่งเสียเวลา setup และปวดหัวเรื่อง architecture ในการ scale เอง พอดีมี project จะทำ browser-based game มี concurrency ที่สูง
แต่ว่า ดูๆแล้วการใช้ gae มันมีความเสี่ยงอยู่เหมือนกัน ภาษาที่ต้องใช้ เป็นภาษาที่ host ทั่วไปไม่ค่อยใช้กัน หรือ host ที่มีก็แพง ไม่ก็ยุ่งยากจำกัด ถ้าเกิดไปใช้ gae จริงๆ แล้วเกิดมันไม่ work ขึ้นมานี่ซวยเลย ลำบากตอนย้ายแน่ๆ ดีไม่ดีอาจะต้องเริ่มเขียนใหม่หมด
สิ่งที่ทำให้ผมหวั่นใจและงงๆหน่อย มาจากการลองหาข้อมูลดู เท่าที่เห็นเขาบ่นๆกันตาม blog ในช่วง preview นี่ ก็เช่น query ได้ทีละไม่เกิน 1000 row มั่ง query โดยมี offset ได้ไม่เกิน 1000 มั่ง ฟังแล้วหนาวเลยแต่ละอย่าง แล้วเขาก็บ่นๆกันว่า มันยังไม่เหมาะกับใช้จริง
ข้อมูลที่ผมดูเป็นข้อมูลที่ค่อนข้างเก่าพอควร และก็ยังมีคลุมเคลืออยู่มาก ก็เลยอยากสอบถามคนที่ได้ใช้หน่อยครับ ว่าเดี๋ยวนี้เป็นไงบ้าง (จำข่าวเก่าๆได้ว่าออกจาก preview ประมาณเดือนนี้) ข้อจำกัดที่ว่ายังอยู่มั๊ย หรือว่าใช้แล้วยังมีข้อจำกัดอะไรที่ต้องระวังบ้าง
ขอบคุณครับ
ผมมองว่าถ
sirn Mon, 04/05/2009 - 09:57
ผมมองว่าถ้าหากตัวเว็บมันออกแบบมาให้ใช้งานได้กับทั้ง AppEngine และ Python hosting ปกติแล้ว การย้ายไม่น่าจะเป็นเรื่องยากเท่าไหร่นะครับ อย่างดีก็พอร์ต model ใหม่ ซึ่งไม่น่าใช่เรื่องลำบาก (ถ้าหากรู้ความแตกต่างของ DataStore กับ RDBMS ปกติในระดับหนึ่ง)
ถ้าหากเป็นในกรณีที่จะทำ web-based game นี่ ผมมั่นใจมากว่าคุณจะโดน quota limit (ที่กำลังจะลดในเร็วๆ นี้) ก่อนเจอ API limit ครับ ถึงแม้อันนี้จะสามารถแก้ได้ด้วยการเปิด billing ใน account แต่มันก็แลกมาด้วย cost ที่เพิ่มขึ้นมา แต่ตรงนี้ก็ควบคุมง่าย
เรื่อง API limit นี่ไม่น่าเป็นห่วงเท่าไหร่เพราะปกติแล้วมันไม่ควรจะโดน (เช่น query จริงๆ ห้ามแค่มีผลเกิน 1,000 แถว แต่ offset ได้ปกติ) ถ้าจะมีที่จะโดนก็คงเป็นเรื่องพวก Images API ห้ามส่งและรับข้อมูลเกินครั้งละ 1MB เสียมากกว่า
ถ้าหากให้แนะนำ ผมคิดว่าออกเงินเช่า VPS พวก Slicehost, Prgmr ไม่ก็ Linode จะเป็นหนทางที่สะดวกที่สุดครับ เพราะไม่ต้องมานั่งปวดหัวเรื่อง setup, scale หรือแม้แต่ limit ของ GAE
แต่ลืมไม่ได้อย่างนึง ว่าการใช้ GAE คุณจะได้ CDN มาฟรีๆ นะ
พวก VPS
bossalove Mon, 04/05/2009 - 10:35
พวก VPS ที่แนะนำมา ดู pricing แล้วน่าสนใจมากเลยครับ เดี๋ยวลองดูมั่ง ขอบคุณที่แนะนำมา
เรื่อง billing ของ GAE เท่าที่ผมดู pricing และ load ที่คิดว่าต้องใช้ คิดว่าไม่ค่อยมีปัญหาเท่าไหร่ น่าจะอยู่ในระดับที่จ่ายได้ครับ
จะกลัวเรื่อง API limit ทำมาแล้วชนนู่นชนนี่ จนใช้ไม่ได้มากกว่า ซึ่งผมไม่ค่อยมีข้อมูลเลย ไม่รู้ว่าจะเจออะไรที่ไม่คาดฝันบ้าง ที่ web ของ GAE ก็ไม่ได้เขียนไว้ชัดเจน ที่บ่นๆกันผมจะอ่านเจอตาม blog มากกว่า
การใช้ VPS ที่แนะนำมา ก็มีข้อดีอย่างนึงคือ เป็น platform ที่เหมือนๆกับที่เราใช้ปกติ แต่ว่า ผมยังกังวลเรื่องหนึ่งครับ คือเรื่อง performance ของ database ว่าจะทำงานทันตอนที่ข้อมูลเยอะหรือไม่ ผมเคยได้ยินว่า ถ้ามีข้อมูลเยอะๆ ถ้าไม่ทำอะไรเลยมันจะอืดมาก การจะคง performance จะต้องทำการ partition ข้อมูลออกมาเป็นหลาย database แล้วทำ load balance ซึ่งผมไม่ได้มีความรู้เรื่องนี้เท่าไหร่ในตอนนี้ ทำเองยังไม่เป็น ผมเองก็ยังไม่ได้เจอจริงๆ แต่ก็น่าจะระวัง ยังไงขอความเห็นหน่อยครับว่า - จริงๆเป็นเรื่องที่ต้องกลัวหรือไม่ - VPS พวกนี้รองรับการทำเรื่องนี้หรือไม่ - VPS พวกนี้จัดการเรื่องนี้ให้เราเองอัตโนมัติหรือไม่ หรือว่าเราต้องลงเอง - ถ้าลงเองแล้วยากมั๊ยครับ
เอ่อ พอดีมีคำถามเพิ่มอีกด้วยครับ GAE ที่รองรับ java นี่ อันเดียวกันกับ GAE ที่รองรับ python มั๊ยครับ ต้อง sign up account และสร้าง app แยกกันเลยมั๊ย? หรือว่า app อันเดียว ภาษาอะไรก็ได้ 2 ภาษาเลยก็ได้เลยรึเปล่า?
ขอบคุณครับ
เรื่อง VPS
sirn Mon, 04/05/2009 - 12:57
เรื่อง VPS นี่ตอบยากแฮะ (ไม่มีประสบการณ์) แต่ทั้ง Slicehost และ Linode ต่างก็มีชื่อเรื่องประสิทธิภาพอยู่พอสมควร ดังนั้นไม่น่าเป็นห่วงเท่าไหร่ครับ ส่วนเวลาที่ต้องรับ spike หรือ scale เกิน VPS ผมมักจะเห็นใช้คู่กันกับ Amazon EC2 ที่ทำให้ประหยัด cost ไปได้เยอะมาก แต่ก็แลกมาด้วยความลำบากในการ setup
เอาเข้าจริงแล้ว VPS มันก็เหมือนการ scale ในแง่ hardware ซะมากกว่าครับ (ใช้วิธีเพิ่ม instance เอา) ในส่วนของซอฟท์แวร์ก็ยังคงต้องมาเซ็ทเอาเองอยู่ดี ดังนั้นเรื่อง partitioning ต้องทำเองครับ ยากหรือง่าย ขึ้นอยู่กับซอฟท์แวร์ฐานข้อมูลที่เลือกใช้
(เรื่อง VPS นี่ผมไม่แม่นเอามากๆ ใครชำนาญมาช่วยตอบหน่อยครับ)
ส่วน AppEngine นี่สมัครทีเดียวใช้ได้ทั้งคู่ครับ แต่ตอนนี้จาวายังเป็นเบต้าเปิดให้เฉพาะผู้ใช้บางคนก่อน ไม่ทราบกำหนดการเปิดให้คนทั่วไปครับ (แต่ผมคงใช้ Python เหมือนเดิม ;P)
เรื่อง API limit ถ้ากังวลมาก ลองเขียน app เล็กๆ ซักตัวไปรันก่อนสิครับ