Serverless Computing คืออะไรและควรใช้ไหม
27 ม.ค. 2564 //= substr($strYear,2,2)?>
การจัดเตรียมและจัดการ Infrastructure นับเป็นส่วนหนึ่งของงานพัฒนาซอฟต์แวร์ที่แม้จะมีสายงาน DevOps มารับหน้าที่โดยตรงอยู่แล้ว แต่นักพัฒนาซอฟต์แวร์ส่วนใหญ่ก็ยังคงต้องใช้เวลาไม่น้อยไปกับการตั้งค่า และเขียนโค้ดเพื่อจัดการกับ Infrastructure และ Environment ที่เหมาะสมและเสถียรพอสำหรับแอปพลิเคชัน
Serverless Computing เป็นแนวคิดที่ถูกออกแบบมาเพื่อลดภาระในส่วนนี้ออกไปจากงานพัฒนาซอฟต์แวร์ ช่วยให้นักพัฒนาสามารถนำโปรแกรมหรือ Workload ไปติดตั้งใช้งานโดยไม่ต้องทำความเข้าใจกับ Virtual Environment อย่างลึกซึ้ง
ในการใช้งาน Serverless Computing หรือที่อาจเรียกกันอีกชื่อว่า Function-as-a-Service เมื่อผู้ใช้งานสามารถเขียนโค้ดฟังก์ชันที่ต้องการและอัปโหลดขึ้นไปบนบริการ Serverless ที่อยู่บน Cloud ผู้ให้บริการจะเป็นผู้ติดตั้งและจัดการทรัพยากรการประมวลผลและจัดเก็บข้อมูลให้เหมาะสมกับการใช้งาน Workload ในแต่ละช่วงเวลาแบบยืดหยุ่นแบบอัตโนมัติ จากนั้นก็จะสามารถเรียกใช้งานแอปพลิเคชันหรือฟังก์ชันนั้นได้ผ่านช่องทาง เช่น API
โดยทั่วไป ผู้ให้บริการมักเก็บค่าบริการ Serverless Computing ตามเวลาที่ใช้ในการประมวลผลโปรแกรมนั้น ๆ ซึ่งแตกต่างจากการใช้บริการ Cloud ทั่วไปที่จะเก็บค่าบริการตามเวลาที่เปิดเครื่องเป็นรายชั่วโมงหรือรายเดือน
ประโยชน์ที่จะได้รับ นอกจากจะลดภาระด้านการจัดการและดูแล Infrastructure ให้นักพัฒนาสามารถไปโฟกัสกับงานเขียนโปรแกรมมากขึ้นแล้ว ยังช่วยประหยัดค่าใช้จ่ายด้วยโมเดลค่าบริการที่คิดตามเวลาและทรัพยากรที่ใช้งานจริง โดยเฉพาะอย่างยิ่งในโปรแกรมที่มีการเรียกใช้งานไม่สม่ำเสมอตลอดเวลา อีกทั้งยังสามารถปรับเปลี่ยนเข้าและออกอย่างยืดหยุ่นตาม Request ที่เรียกเข้ามาอย่างอัตโนมัติ และมีความเสถียรในการใช้งาน
อย่างไรก็ตาม Serverless Computing ก็ยังมีจุดอ่อนอยู่บ้าง อันดับแรก Serverless Computing คือสถาปัตยกรรมแบบ Stateless ของมัน ซึ่งไม่สามารถเก็บ State ใด ๆ ได้ และอาจเป็นปัญหาในกรณีที่การรันฟังก์ชันมีข้อผิดพลาดกลางคัน ซึ่งอาจทำให้งานใน Request นั้นหายไปทั้งหมด นอกจากนี้ ยังอาจมีความหน่วงในการเรียกใช้งาน และการถูกจำกัดอยู่กับบริการ Serverless Computing ของผู้ให้บริการแต่ละเจ้า ซึ่งมีขั้นตอนและรายละเอียดการใช้งานที่แตกต่างกัน
ปัจจุบัน Serverless Computing มีให้บริการและธุรกิจก็ได้เริ่มนำไปใช้งานอย่างแพร่หลาย บริษัทระดับโลกอย่าง Netflix ใช้ Serverless Computing ในการแบ่งไฟล์วิดีโอเพื่อนำไปเข้ารหัสก่อนส่งไปยังสตรีมของผู้ใช้และตรวจสอบสถานะของไฟล์ว่าต้อง Back up หรือไม่
Serverless Computing เป็นหนึ่งทางเลือกการใช้งาน Cloud ที่น่าสนใจ และจะเป็นอนาคตรูปแบบใหม่ของการใช้งานระบบ Cloud สามารถประยุกต์ใช้ได้กับงานหลายประเภท โดยเฉพาะอย่างยิ่งสำหรับผู้ที่ต้องการลดภาระด้านการจัดการ Backend และมี Workload ที่สามารถอยู่ในรูปของฟังก์ชันได้
ที่มา: https://www.datacenters.com/news/what-is-serverless-computing-should-you-use-serverless-in-your-it-stack