- เซิร์ฟเวอร์ API เปลี่ยนไปใช้ Hono, รันไทม์ใช้ Bun, และโฮสติ้งใช้ Fly.io
เหตุผลที่ย้าย
- ต้องการเซิร์ฟเวอร์น้ำหนักเบา: ต้องการเซิร์ฟเวอร์น้ำหนักเบาพร้อม REST API แบบเรียบง่ายสำหรับมอนิเตอร์ริงเอนด์พอยต์ เซิร์ฟเวอร์ Next.js ของ Vercel มีฟีเจอร์ส่วนเกินที่ไม่จำเป็นและหนักกว่า จึงเลือกใช้ Hono และ Bun เริ่มต้นได้ใน 0.19ms และใช้หน่วยความจำ 91MB
- ปัญหาเรื่องราคา: ต้องการคงการมอนิเตอร์หลายรีเจียนไว้ แต่คาดการณ์ค่าใช้จ่ายได้ยาก Vercel คิดค่าบริการตามเวลา CPU ที่ใช้งานเท่านั้น แต่ค่าใช้จ่ายจะเพิ่มขึ้นตามจำนวนผู้ใช้ ขณะที่ Fly.io ถูกกว่า
ความท้าทายระหว่างการย้าย
- Docker และโมโนรีโป: ตอนแรก Docker image มีขนาดใหญ่เกินไปถึง 2GB แต่หลังปรับแต่งก็ลดลงเหลือ 700MB
- ปัญหา Fly deploy หมดเวลา: การ deploy บน Fly มักหมดเวลา จึงต้องเพิ่ม timeout การ deploy ของ Fly มีความเสถียรน้อยกว่า Vercel และไม่มีวิธีย้อนกลับไปเวอร์ชันก่อนหน้าอย่างรวดเร็ว
- บั๊กของ Bun: เมื่อใช้รันไทม์ Bun จำนวนคำขอที่ล้มเหลวเพิ่มขึ้น และต้องตั้งค่า
keepalive เป็น false
บทสรุป
- การย้ายครั้งนี้มีความท้าทาย แต่สุดท้ายก็พอใจกับผลลัพธ์
- แน่นอนว่ายังชอบ Vercel อยู่มาก แต่ถ้าต้องการโฮสต์แอปพลิเคชันที่ไม่ใช่ Next.js นี่อาจไม่ใช่ตัวเลือกที่ดีที่สุด
ยังไม่มีความคิดเห็น