← All articles
News & Tech

ย้ายระบบมาไว้บน Serverless CloudFlare

การเปลี่ยนผ่านสถาปัตยกรรมเว็บ: จาก Colocation สู่ Serverless

หลายปีที่ผ่านมา ผมมีโอกาสได้ทำงานติดตั้ง ดูแล และย้ายระบบหลากหลายรูปแบบ ตั้งแต่ระดับฐานข้อมูล (database), application server, และ web server ไปจนถึงการติดตั้งในศูนย์ข้อมูล (data center) และการย้ายระบบขึ้นสู่ cloud ซึ่งทำให้เห็นทั้งข้อดีและข้อจำกัดของแต่ละสถาปัตยกรรมอย่างชัดเจน ไม่นานมานี้ เมื่อมีเวลาปรับปรุง blog ส่วนตัว จึงตั้งโจทย์กับตัวเองว่าจะทดลองย้ายระบบไปสู่สถาปัตยกรรมแบบ serverless อย่างเต็มรูปแบบ


วัตถุประสงค์ของการปรับย้ายระบบ

บทความนี้นำเสนอกรณีศึกษาการปรับย้ายระบบ blog วิชาการส่วนบุคคล จากสภาพแวดล้อมแบบ colocation และ cloud แบบดั้งเดิม ไปสู่สถาปัตยกรรมแบบ serverless บนแพลตฟอร์มของ :contentReference[oaicite:0]{index=0} โดยมีวัตถุประสงค์เพื่อ

  1. ลดภาระการบริหารจัดการระบบ (operational overhead)
  2. เพิ่มประสิทธิภาพในการให้บริการ (performance)
  3. ปรับรูปแบบการพัฒนาให้สอดคล้องกับแนวคิด edge-native

1. สถาปัตยกรรมเดิม: Colocation และข้อจำกัด

ในระยะเริ่มต้น ระบบถูกติดตั้งบน colocation server ซึ่งเป็นรูปแบบที่ให้การควบคุมสูงสุดในระดับ hardware และ network

ลักษณะสำคัญ

ข้อจำกัด

โดยสรุป สถาปัตยกรรมนี้เหมาะกับระบบที่ต้องการการควบคุมสูง แต่มีต้นทุนด้านการดำเนินงาน (operational cost) สูงตามไปด้วย


2. การเปลี่ยนผ่านสู่ Cloud: การเพิ่มความยืดหยุ่น

การย้ายระบบขึ้นสู่ cloud (ในรูปแบบ virtual machine) ช่วยลดข้อจำกัดด้าน hardware และเพิ่มความยืดหยุ่นในการจัดสรรทรัพยากร

ข้อดี

อย่างไรก็ตาม ปัญหาหลักยังคงอยู่ในมิติของการบริหารจัดการ ได้แก่

ดังนั้น แม้ cloud จะลดภาระด้านโครงสร้างพื้นฐาน แต่ยังไม่สามารถลดภาระด้านการดำเนินงานได้อย่างมีนัยสำคัญ


3. Serverless Architecture: การลดภาระเชิงโครงสร้าง

การเปลี่ยนผ่านสู่ serverless architecture เป็นการเปลี่ยนแนวคิดจาก
“การบริหาร server” → “การบริหาร execution environment”

ในการทดลองครั้งนี้ ผมเลือกใช้แพลตฟอร์มของ :contentReference[oaicite:1]{index=1} เนื่องจากสามารถเริ่มต้นใช้งานได้โดยไม่มีค่าใช้จ่าย (ภายใต้ข้อจำกัดของ free tier)

องค์ประกอบหลักของระบบ

คุณลักษณะสำคัญ


4. ผลลัพธ์เชิงเทคนิค

4.1 การลดภาระการดำเนินงาน

การย้ายสู่ serverless ทำให้กิจกรรมต่อไปนี้ถูกลดหรือหมดไป:


4.2 ประสิทธิภาพในการให้บริการ


4.3 การเปลี่ยน focus ของการพัฒนา

จากเดิมที่เน้น: infrastructure management เปลี่ยนเป็น application logic และ service design


5. การวิเคราะห์เชิงสถาปัตยกรรม

สถาปัตยกรรมแบบ serverless บน edge สามารถพิจารณาได้ในมิติของ abstraction level ที่สูงขึ้น โดยมีการ decouple องค์ประกอบหลักดังนี้:

แนวโน้มนี้สอดคล้องกับการพัฒนาในสาขา distributed systems ที่มุ่งลด coupling ระหว่าง resource และ application


6. ข้อจำกัดและบริบทการใช้งาน

แม้ว่าสถาปัตยกรรมแบบ serverless จะมีข้อดีหลายประการ แต่ยังมีข้อจำกัดในบางบริบท เช่น:

ดังนั้น การเลือกใช้สถาปัตยกรรมควรพิจารณาตามลักษณะของ workload เป็นหลัก


สรุป

การเปลี่ยนผ่านจาก
colocation → cloud → serverless
ไม่ได้เป็นเพียงการเปลี่ยนเทคโนโลยี แต่เป็นการเปลี่ยน “ระดับของ abstraction” ในการออกแบบระบบ

สถาปัตยกรรมแบบ serverless โดยเฉพาะในบริบทของ edge computing ช่วยให้สามารถ: