Skip links
View
Drag

Serverless การพัฒนาแอปพลิเคชันยุคต่อไปที่ไม่ต้องเผื่อทรัพยากรไว้ล่วงหน้า

แนวทางการวางระบบไอทีในองค์กรคงมีขั้นตอนหนึ่งคือการประเมินการใช้ทรัพยากรของแอปพลิเคชันใหม่ที่เรากำลังติดตั้งว่าต้องใช้ซีพียู แรม หรือเน็ตเวิร์คมากน้อยแค่ไหน ซึ่งการประเมินให้ถูกต้องเป็นเรื่องที่แทบเป็นไปไม่ได้ องค์กรต่างๆ จึงมักมีทรัพยากรเหลือๆ ไม่ได้ใช้งานจำนวนมาก หรือแอปพลิเคชันบางส่วนทำงานแค่บางช่วงเวลาก็มักถูกกันทรัพยากรเตรียมไว้ให้ โดยที่ไม่มีแอปพลิเคชันอื่นมาใช้งานได้

การใช้งานคลาวด์ช่วยให้การจัดสรรทรัพยากรทำได้สะดวกขึ้นในช่วงหลังเนื่องจากองค์กรไม่ต้องซื้อฮาร์ดแวร์มาเตรียมการไว้ล่วงหน้า แต่สั่งใช้งานเพิ่มได้ทันทีที่ต้องการ แต่กระนั้นหากแอปพลิเคชันไม่ได้ออกแบบให้เตรียมพร้อมสำหรับการขยายตามโหลดที่ใช้งานจริง องค์กรก็มักต้องเสียค่าใช้จ่ายทรัพยากรสิ้นเปลืองไปเป็นปกติแม้จะใช้คลาวด์ก็ตาม

แนวทางการพัฒนาแบบ Serverless จึงเริ่มเป็นที่น่าสนใจสำหรับองค์กรขึ้นเรื่อยๆ ในช่วงหลัง โดยแนวทางนี้คือการที่โค้ดถูกเก็บไว้บนเซิร์ฟเวอร์รอที่จะรัน โดยไม่ต้องจองทรัพยากรใดๆ ล่วงหน้า หากมีเหตุการณ์ (event) ที่เกี่ยวข้องกับโค้ดนั้น เช่น การเรียกใช้งานเว็บ ตัวโค้ดจึงถูกเรียกขึ้นมา จองแรมและซีพียู และประมวลผลข้อมูลเพื่อตอบกลับ

บริการคลาวด์ส่วนมากมีบริการ Serverless ให้บริการ เช่น AWS Lambda หรือ Google Cloud Run โดยบริการเหล่านี้คิดค่าใช้งานอย่างละเอียด เช่น การใช้ซีพียูและแรมเป็นวินาที แม้ว่าราคาอาจจะดูแพงหากคิดการเปิดเซิร์ฟเวอร์ตลอดเวลา แต่หากไม่มี event เรียกใช้งานโค้ดเลยก็จะแทบไม่มีค่าใช้จ่ายใดๆ

ในองค์กรเอง การใช้เฟรมเวิร์ค เช่น KNative มาสร้างบริการ Serverless ภายในองค์กรเริ่มเป็นตัวเลือกที่น่าสนใจ เพราะการที่ไม่มีแอปพลิเคชันจองทรัพยากรไว้ไม่ว่าจะใช้งานหรือไม่ ทำให้องค์กรสามารถประหยัดทรัพยากรโดยรวมลงได้ อัตราการใช้งานเซิร์ฟเวอร์คุ้มค่ามากขึ้น

ข้อจำกัดของ Serverless คือแอปพลิเคชันที่มีอยู่เดิมอาจจะต้องปรับแก้เยอะหรือบางกรณีอาจจะต้องพัฒนาใหม่แต่ต้น และการใช้งานหลายครั้งก็ผูกติดกับผู้ให้บริการคลาวด์อย่างแนบแน่น อาจจะทำให้การย้ายแอปพลิเคชันออกไปยังคลาวด์อื่นทำได้ยาก นับเป็นความท้าทายในการตัดสินใจแนวทางการพัฒนาต่อไป

– – –โดยคุณลิ่ว วสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC