Serverless Framework คือ Web framework ที่เขียนด้วย Node.js ใช้สำหรับสร้างแอปพลิเคชันบน AWS Lambda และบน Cloud แบบ Serverless หลากหลายเจ้า ซึ่งเป็นเครื่องมือโอเพ่นซอร์สแบบ CLI (Command Line Interface) ที่ครบครัน ไม่ว่าจะเป็นโครงสร้าง, ระบบ Automation และเป็นโซลูชั่นที่ตอบโจทย์การใช้งานมากที่สุด โดย Developer จะโฟกัสไปที่การสร้างแอปพลิเคชันอย่างเต็มที่ ส่วนงานระบบ Infrastructure นั้นจะเป็นหน้าที่ของ Cloud Provider
ทำไมต้องใช้ Serverless Framework?
- ใช้งานง่าย: Config ระบบ Infrastructure และ Services ได้ผ่านไฟล์ serverless.yml ไฟล์เดียว
- รวดเร็ว: ด้วยความเป็นระบบอัตโนมัติ ทำให้การ Deployment ของ App ทำได้รวดเร็ว
- รองรับ Cloud หลายเจ้า: Serverless Framework รองรับการใช้งานกับ Cloud Provider ส่วนใหญ่ในตลาด เช่น Azure, Google Cloud ฯลฯ
- ต่อยอดความสามารถได้ง่าย: ผ่านการติดตั้ง Plugins เพิ่มเติมตามความต้องการของธุรกิจ
- มีกลุ่มผู้ใช้งานมากมาย: ด้วยความเป็นโอเพ่นซอร์ส ทำให้เป็นที่นิยมในกลุ่มผู้ใช้งาน และมี Plugins พัฒนาออกมาเพื่อรองรับเพิ่มเติมอย่างมากมาย
- มี Monitoring และ Debugging ในตัว: ในระบบมีส่วน Monitoring, Metrics, และ Debugging มาให้ Developer ใช้งานสะดวกยิ่งขึ้น
ข้อดี-ข้อเสีย ในการใช้ Serverless Framework ร่วมกับ AWS Lambda ผ่าน API Gateway
ข้อดี
- ใช้เวลา Deployment สั้นลง: Deploying Service ต่อครั้งสั้นลง ด้วยการใช้คำสั่งเพียงชุดเดียว ช่วยลดเวลาในการ Config ลง
- ไม่ยึดติดกับภาษาใดๆ: ตัว Framework รองรับ Programming languages หลากหลายภาษา
- มีโครงสร้างระบบที่ชัดเจน: มีโครงสร้างระบบที่ดี ทั้ง Versioning, Stages, Environment variables ช่วยลดข้อผิดพลาดในการทำงาน
- Code ใช้ซ้ำได้: นำ Code ที่เคยเขียนของงานหนึ่ง เอาไปใช้ต่อของอีกงานหนึ่งที่ใช้ Services, Components, Plugins คล้ายคลึงกันได้ทันที
- Multi-Cloud: รองรับ Cloud Provider หลายหลายเจ้าในท้องตลาด เพิ่มความยืดหยุ่นในการใช้งาน
- Plugin มากมาย: ช่วยเพิ่มความสามารถในการปรับแต่งฟังก์ชั่นการทำงานให้ตรงโจทย์ของธุรกิจ
ข้อเสีย
- Learning Curve: ต้องใช้เวลาเรียนรู้เพิ่มเติมบางเรื่อง เพื่อเข้าใจการ Config และ Syntax ของ serverless.yml
ไม่รองรับบางฟีเจอร์: เนื่องจากสามารถใช้งานร่วมกับ Cloud หลากหลายที่ ดังนั้นบางฟีเจอร์อาจไม่สามารถใช้งานได้อย่างเต็มประสิทธิภาพ - การ Debugging ที่ซับซ้อน: ด้วยลักษณะโครงสร้างที่แตกย่อยออกมา ทำให้การ Debugging นั้นมีความซับซ้อนมากขึ้น
- ต้นทุนสูง: ในฟังก์ชั่นงานที่ต้องใช้เวลา Run นาน อาจมีราคาแพงเนื่องจากลักษณะ Pricing model ที่จับเวลาต่อ Request เอง
- Cold Starts: ในส่วนของ AWS Lambda อาจมีความหน่วงเมื่อเรียกใช้ฟังก์ชัน (Cold Starts) โดยเฉพาะอย่างยิ่งสำหรับทรัพยากรที่เชื่อมต่อแบบ VCP (Virtual Private Cloud)
บทสรุป
ตัว Serverless Framework มีความสะดวกในการใช้งาน และมีศักยภาพสูง รวมถึงมีฟีเจอร์ที่หลากหลาย จึงกลายเป็นโซลูชั่นที่ได้รับความนิยมในปัจจุบัน โดยเฉพาะบน AWS ด้วย Lambda และ API Gateway ที่สนับสนุนให้แอปพลิเคชันแบบ Serverless นั้นสามารถสเกลขึ้นได้อย่างมีประสิทธิภาพ และคุ้มค่าต่อธุรกิจมากที่สุด
ติดตามข้อมูลข่าวสารและกิจกรรมของเราได้ที่ช่องทาง Facebook Fanpage, Linkedin หรือดูข้อมูลและติดต่อรับคำปรึกษาได้ที่เว็บไซต์ของเรา