เทคนิคการเปิดบริการ Rails hosting
ไปแอบๆ ถามที่ Gotoknow มาครับ
เลยเอา link มาฝากหลายๆท่าน
(มี revolution เป็นสำคัญ)
http://gotoknow.org/blog/memecoder/83398
ไม่รู้ชาวบ้านรู้่กันหมดแล้วหรือเปล่า แต่ผมไม่รู้อะนะ
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
หลังๆนี่ lighttpd หรือ fastcgi ดูตกไปเยอะ
mongrel ดูเป็นทางเลือกที่ดีนะ
แต่ของ revolution จะมีปัญหาตรงประเด็นเรื่อง memory
เพราะถ้า host หนึ่ง share กันใช้หลายคน
เราจะ start mongrel ให้คนเช่าคนละกี่ process ดี
ถ้าน้อยไป ก็จะรับ load เยอะๆไม่ไหว
ถ้ามากไปก็กินแรมเยอะ
มีีอยุ่ idea หนึ่ง ก็คือทำเป็นแบบ on-demand
, เช่น start mongrel ให้เอง เมื่อมี load มากขึ้น
, kill ทิ้ง เมื่อไม่มี load
ความยากของพวก on-demand ก็จะอยู่ที่ mod_proxy_balancer
ตรงที่เราจะ ตรวจจับ load และ dynamic แก้ไข dispatch table มันอย่างไร
คิดถึง Media Temple Grid Server เลย
ผมใช้อยู่ครับ
ใช้ดีมาก
ตอนนี้ได้ลองทำอยู่ เป็น apache2+fcgid ครับ แต่ปัญหาในการ restart process นั้นกำลังเขียน script ให้ user เข้าไป kill process ของตัวเอง การจัดการ process ก็โยนให้ apache ไปทำละกัน
ด้วยเหตุที่ว่า mongrel นั้นก็ดูน่าสนใจแต่คิดว่ามันคงเป็นไปอย่างที่ พี่pphetra บอกแหละครับ
ใน pharse แรกขอทำเป็นแบบนี้ก่อน อยากให้ลองขึ้นมาก่อน ใน pharse 2 วางแผนไว้ว่าเป็น apache2+mogrel+Capistrano+svn ครับ คิดว่าน่าจะง่ายต่อการพัฒนา
ขอบคุณ veer ที่หามาให้ครับ
บางทีข้ามไป phase 2 เลยจะง่ายกว่าเปล่าครับ?
ขอถามเพิ่มอีกนิด ถ้าทำ hosting ควรจะใช้ rails version ไหนดีครับ
เพราะเท่าที่ลองตอนนี้ใช้ app ที่ไม่รองรับ rails 1.2.0 ไม่ได้
ทั้งที่ไม่ได้ถอด version เก่าออก มีทั้ง 1.1.6 และ 1.2.0 พร้อมกัน แต่ไหง ใช้ไม่ได้ก็ไม่รู้
จะว่าไปแล้ว debian sarge นี่มีปัญหามากกว่า ubuntu ซะอีก T_T
มันน่าจะลงได้ทั้ง 2 version นะ
โดยปกติแล้วคำสั่ง rails ตอนที่เรา initialize project ครั้งแรก
เราสามารถกำหนดได้ว่า ต้องการ rails ที่ version ไหน
เช่น ถ้าต้องการ 1.1.6 เราก็จะสั่งดังนี้
rails _1.1.6_ PROJECT_NAMEถ้าไม่กำหนดเลย มันจะเอา version สูงสุดที่มีใน gem มาให้
project ที่ถูกสร้างขึ้นมา
ถ้าเรา edit file $PROJECT_ROOT/config/environment.rb ดู
จะเห็นว่ามันมีการกำหนด RAILS_GEM_VERSION fix เลข version ไว้ด้วย
โดยถ้ามันสร้างจาก rails version ไหน ก็จะเป็นมีเลข version ตามนั้น
ตอนแรกก็ว่าจะเริ่มไปที่ mongrel ไปเลย แต่เห็นมีหลายคนใช้ svn ไม่เป็นเลยว่าจะเริ่มที่ phase แรกไปก่อนครับ
svn ใช้ง่าย :-P
ผมเพิ่งใช้ svn เป็นเองหง่ะ >_<
ง่ายใช่มะ :-P
ไม่ยากครับ ^^ (แต่กว่าจะมั่วได้ ใช้เวลานิดนึงเหมือนกัน >_< จิง ๆ แล้วเพราะผมงี่เง่าอะไรนิดหน่อยเองหล่ะ)
ผมคุยกับ punneng เรื่อง mongrel มาแล้ว ว่าเขาลองแล้ว 1 app จะกิน ram
อย่างน้อย 40MBโดยประมาณ 15-40 M เพราะฉะนั้นถ้าผมรับ 100 web ก็ต้องมีอย่างน้อย 4G สำหรับ mongrelตอนนี้พอจะ config ได้นิดหน่อยแล้ว แต่คงต้องรอหน่อย ถ้าเสียงตอบรับดีมาก phase2 ก็เปิดเครื่องใหม่ดีกว่า
แก้ไข: ไม่ใช่อย่างน้อยครับ โดยประมาณ
เปิดรับ rails hosting 20 domain เท่านั้น 1 app ต่อ 1 domain ราคาเท่าเดิมสำหรับ 20 คนแรก
ดูรายละเอียดได้ที่ http://www.speedthai.com/service.html
ต้องเป็น production mode เท่านั้นนะครับ
msn ได้ที่ admin ณ speedthai.com
jabber ที่ revolution ณ jabber.org
หรือ google talk ที่ rubybox ณ gmail.com
ต้องขออภัยที่ขอประชาสัมพันธ์ในที่นี้นะครับ
ผมเคยพูดไว้นานแล้วว่าใครให้บริการโฮสต์นอกกระแสเป็นรายแรกจะได้รับโฆษณาจาก Blognone ฟรี 1 สัปดาห์ คุณ Revolution ช่วยทำรูปขนาด 125x125 ส่งมาลิงก์มาให้ผมได้เลยครับ เดี๋วจะเอาขึ้น Blognone ให้