• เซิร์ฟเวอร์ 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 นี่อาจไม่ใช่ตัวเลือกที่ดีที่สุด

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น