ช่วงหลายวันนี้ผมใช้ "สิ่งศักดิ์สิทธิ์" ในการดูแลเครื่องแม่ข่ายครับ ปรากฎว่าได้ผลดีมาก แต่เรื่องนี้เล่ายาวครับ
ที่จริงแล้ว Ruby on Rails นี่เป็น framework ที่ไม่ได้สุดยอดมากมายอะไรนักครับ จากประสบการณ์ในการใช้งานมาทั้งหมดในหนึ่งปีนี้ ผมว่า framework ทำเองก่อนหน้านี้ที่ทำด้วย Python เผลอๆ จะทรหดอดทนกว่าด้วยซ้ำ
สาหตุที่ผมบอกว่าทนกว่าเพราะ framework แบบ "บ้านๆ" นั้นทำงานผ่าน mod_python ซึ่งมี Apache ควบคุมไว้อีกทีหนึ่ง ดังนั้นถ้ามีปัญหา crash ขึ้นมา Apache ยุคใหม่สดใสก็จะ spawn ขึ้นมาใหม่ให้
แต่ Ruby on Rails ไม่เป็นเช่นนั้น เพราะตอนนี้ web server ที่ใช้ทำงาน Rails application ที่แนะนำกันคือ Mongrel ซึ่งก็ดี "ก็ดี" ในที่นี้คือเรียก Rails application ทำงานได้ดี แต่เวลามีปัญหา crash ขึ้นมา เจ้า Mongrel มันไม่พยายาม spawn ขึ้นมาใหม่แฮะ บางครั้งมันก็หายไปเฉยๆ เลย
เรื่องนี้ต้องใช้ "พระเจ้า" ช่วย
ผมจึงใช้ god (http://god.rubyforge.org/) มาควบคุม mongrel processes ซึ่งปรากฎว่าได้ผลดีมาก โดย god จะคอยตรวจสอบ Mongrel processes ว่ายังทำงานอยู่ดีอยู่หรือเปล่าตามช่วงเวลาที่เรากำหนดไว้ หาก god พบว่า Mongrel processes นิ่งไปนาน (แสดงว่ามีปัญหาอะไรบางอย่าง) ก็จะทำการฆ่าทิ้งแล้วสร้างขึ้นมาใหม่
เรื่องนี้เป็นเรื่องที่ดีมาก ทำให้ระบบโดยรวม stable ขึ้นเยอะ เพราะได้มี Mongrel processes ที่ fresh จริงๆ ทำงาน
แต่อย่างไรก็ตาม ถ้าถามผมลึกๆ แล้ว ผมเริ่มไม่ happy กับ solution ที่ใช้อยู่ในปัจจุบันเท่าไหร่แล้วครับ เพราะการที่ต้องใช้ software (god) มาควบคุม software (Mongrel) ที่ควบคุม software (Rails) เพื่อช่วยทำงานให้แก่ software (Apache) นี่มันซับซ้อนเกินความจำเป็น
เป็น solution ที่ทำให้ KnowledgeVolution ที่เราพัฒนานี้นำไปติดตั้งในหน่วยงานต่างๆ ยากขึ้น
การทำอย่างนี้เหมาะในการทำเว็บไซต์ที่ configure ได้อย่างใจไม่ต้องกังวลอะไรทั้งนั้น เพราะไม่ต้องให้ใครไปติดตั้งเหมือนกับเรา นั่นคือถ้าเราทำแค่ GotoKnow.org อย่างเดียวนั้นไม่มีปัญหาเลย แต่การทำอย่างนี้เป็นเรื่องไม่ดีสำหรับสิ่งที่เรากำลังทำอยู่เป็นหลัก คือพัฒนาซอฟต์แวร์ KnowledgeVolution เพื่อให้สามารถนำไปติดตั้งภายในองค์กรต่างๆ ได้โดยง่าย
เอาเถอะ ลงเรือ Rails แล้วก็ต้อง Rails กันต่อไป
พระเจ้าช่วย! จริงๆ ด้วย ฮาา
god ผมว่าไม่น่าจะมีคนใช้มาก เพราะเว็บทั่วๆไป traffic คงไม่หนักขนาดเท่า G2K :?
ช่วงสองสัปดาห์มานี้ traffic เราไม่หนักเท่าไหร่ครับ เราเจอ "Google งอน" (downgrade GotoKnow เพราะว่ามีอยู่ช่วงหนึ่งที่เข้ามาเก็บข้อมูลไม่ได้)
ขอขอบพระคุณอาจารย์ธวัชชัย...