Function as a Service (FaaS) หมายถึงหมวดหมู่บริการคอมพิวเตอร์ระบบคลาวด์ที่ให้บริการแพลตฟอร์มที่ช่วยให้ลูกค้าสามารถพัฒนา รัน และจัดการฟังก์ชันการทำงานของแอปพลิเคชันได้โดยไม่ต้องมีความซับซ้อนในการสร้างและบำรุงรักษาโครงสร้างพื้นฐานซึ่งโดยทั่วไปเกี่ยวข้องกับการพัฒนาและการเปิดตัวแอป รูปแบบสถาปัตยกรรมนี้มักเกี่ยวข้องกับการประมวลผลแบบไร้เซิร์ฟเวอร์ ซึ่งนักพัฒนาสามารถมุ่งเน้นไปที่การเขียนโค้ดของแอปพลิเคชันของตน และผู้ให้บริการระบบคลาวด์จะจัดการสภาพแวดล้อมการดำเนินการ
ติดตามประวัติและต้นกำเนิดของฟังก์ชันเป็นบริการ (FaaS)
การเริ่มต้นของ Function as a Service (FaaS) มีความเชื่อมโยงอย่างมากกับวิวัฒนาการของการประมวลผลแบบคลาวด์ การกำเนิดของการประมวลผลแบบคลาวด์ในช่วงต้นทศวรรษ 2000 ทำให้โครงสร้างพื้นฐานเป็นบริการ (IaaS) และแพลตฟอร์มเป็นบริการ (PaaS) กลายเป็นที่สนใจ อย่างไรก็ตาม นักพัฒนายังคงจำเป็นต้องจัดการเซิร์ฟเวอร์ในทั้งสองรุ่น แม้ว่าจะต้องใช้ PaaS น้อยกว่าก็ตาม
ความก้าวหน้าดังกล่าวเกิดขึ้นในปี 2014 เมื่อ Amazon Web Services (AWS) เปิดตัว AWS Lambda เป็นแพลตฟอร์ม FaaS แรก ทำให้นักพัฒนาไม่ต้องกังวลเรื่องเซิร์ฟเวอร์อีกต่อไป Lambda ช่วยให้นักพัฒนาสามารถรันโค้ดของตนเพื่อตอบสนองต่อเหตุการณ์ต่างๆ เช่น การเปลี่ยนแปลงข้อมูลในบัคเก็ต Amazon S3 หรือการอัปเดตในตาราง Amazon DynamoDB นี่เป็นการเปลี่ยนแปลงครั้งสำคัญในการสร้างและส่งมอบแอปพลิเคชัน
เจาะลึกฟังก์ชั่นการบริการ (FaaS)
FaaS เป็นวิธีการแบบไร้เซิร์ฟเวอร์ในการรันโค้ดโมดูลาร์บน Edge แทนที่จะปรับใช้ทั้งแอพหรือบริการ นักพัฒนาสามารถใช้ฟังก์ชันเล็กๆ น้อยๆ ที่ทำหน้าที่เดียวและแน่นอนได้ ฟังก์ชันเหล่านี้เป็น 'ไร้สัญชาติ' เนื่องจากได้รับการออกแบบให้มีอายุการใช้งานสั้นและดำเนินการภายในสภาพแวดล้อมไร้สัญชาติ ผู้ให้บริการระบบคลาวด์จะจัดการทรัพยากรที่จำเป็นในการรันและปรับขนาดโดยอัตโนมัติ
ฟังก์ชันถูกทริกเกอร์โดยเหตุการณ์ต่างๆ เช่น คำขอ HTTP การดำเนินการฐานข้อมูล คิว พื้นที่เก็บข้อมูล และอื่นๆ ผู้ให้บริการดำเนินการฟังก์ชันและส่งกลับผลลัพธ์เมื่อดำเนินการเสร็จสิ้น ลักษณะสำคัญของ FaaS คือคุณจะจ่ายเฉพาะเวลาประมวลผลจริงของฟังก์ชันเท่านั้น ไม่ใช่โครงสร้างพื้นฐานพื้นฐาน
เปิดเผยโครงสร้างภายในและกลไกการทำงานของ FaaS
ในโมเดล FaaS ตรรกะของแอปพลิเคชันจะแบ่งออกเป็นฟังก์ชันที่แยกจากกัน สิ่งเหล่านี้ได้รับการจัดการโดยแพลตฟอร์มพื้นฐานและโดยทั่วไปจะไม่มีสถานะ เมื่อได้รับเหตุการณ์ แพลตฟอร์มจะหมุนทรัพยากรอย่างรวดเร็วเพื่อเรียกใช้ฟังก์ชัน ประมวลผลเหตุการณ์ จากนั้นจะปิดทรัพยากรเมื่อการประมวลผลเสร็จสิ้น
- ทริกเกอร์เหตุการณ์: เหตุการณ์ เช่น คำขอ HTTP การอัปโหลดไฟล์ หรือการดำเนินการฐานข้อมูลจะทริกเกอร์ฟังก์ชัน
- การเริ่มต้นฟังก์ชัน: ผู้ให้บริการคลาวด์เตรียมฟังก์ชันสำหรับการดำเนินการ ซึ่งอาจเกี่ยวข้องกับการสตาร์ทคอนเทนเนอร์และโหลดโค้ดฟังก์ชันลงไป
- การดำเนินการ: ฟังก์ชันถูกรันด้วยข้อมูลเหตุการณ์ที่ให้ไว้
- การตอบสนอง: ฟังก์ชันจะประมวลผลข้อมูลเหตุการณ์และส่งกลับผลลัพธ์ นอกจากนี้ยังอาจโต้ตอบกับบริการหรือฐานข้อมูลอื่น ๆ ซึ่งเป็นส่วนหนึ่งของการประมวลผลนี้
- ปิดตัวลง: เมื่อฟังก์ชันทำงานเสร็จแล้ว ผู้ให้บริการคลาวด์จะปิดทรัพยากรที่ใช้ในการเรียกใช้ฟังก์ชัน
คุณสมบัติที่สำคัญของฟังก์ชันเป็นบริการ (FaaS)
- ขับเคลื่อนด้วยเหตุการณ์: ฟังก์ชั่นจะดำเนินการเพื่อตอบสนองต่อเหตุการณ์หรือทริกเกอร์
- ไร้สัญชาติ: ฟังก์ชั่นไม่เก็บข้อมูลระหว่างการดำเนินการ
- ปรับขนาดได้: ผู้ให้บริการคลาวด์จะจัดการขนาดของฟังก์ชันโดยอัตโนมัติ
- อายุสั้น: ฟังก์ชันต่างๆ คาดว่าจะเริ่มทำงานอย่างรวดเร็ว ทำงานในช่วงเวลาสั้นๆ แล้วหยุด
- จ่ายต่อการใช้งาน: ราคาจะขึ้นอยู่กับเวลาประมวลผลจริงที่ใช้โดยฟังก์ชัน
ฟังก์ชันประเภทต่างๆ ในรูปแบบบริการ (FaaS)
แม้ว่าแนวคิดพื้นฐานของ FaaS ยังคงเหมือนเดิม แต่ผู้ให้บริการคลาวด์หลายรายก็นำเสนอผลิตภัณฑ์ FaaS ที่แตกต่างกันเล็กน้อย สิ่งที่ได้รับความนิยมมากที่สุด ได้แก่ :
ผู้ให้บริการ | ผลิตภัณฑ์ ฟาเอส |
---|---|
AWS | แลมบ์ดา |
กูเกิลคลาวด์ | ฟังก์ชั่นคลาวด์ |
ไมโครซอฟต์ อาซัวร์ | ฟังก์ชัน Azure |
ไอบีเอ็ม | ฟังก์ชั่นคลาวด์ |
ออราเคิล | โครงการเอฟเอ็น |
วิธีใช้ฟังก์ชันเป็นบริการ (FaaS) ปัญหาและแนวทางแก้ไข
FaaS มีประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันที่ต้องการตอบสนองต่อข้อมูลแบบเรียลไทม์หรือคำขอเป็นระยะๆ ตัวอย่างเช่น สามารถใช้สำหรับการประมวลผลไฟล์แบบเรียลไทม์ การแปลงข้อมูล หรือการประมวลผลสตรีมเหตุการณ์ อย่างไรก็ตาม มีความท้าทายที่อาจเกิดขึ้นเกี่ยวกับการจำกัดเวลาดำเนินการ การจัดการสถานะ การทดสอบ และการดีบัก โซลูชันประกอบด้วยการออกแบบโค้ดฟังก์ชันอย่างระมัดระวังเพื่อให้เป็นไปตามขีดจำกัดเวลาดำเนินการ และการใช้บริการคลาวด์เพิ่มเติมเพื่อจัดการสถานะ
เปรียบเทียบกับแนวคิดที่คล้ายกัน
แนวคิด | คำอธิบาย |
---|---|
ฟาส | นักพัฒนาให้รหัสฟังก์ชัน แพลตฟอร์มจะจัดการโครงสร้างพื้นฐานทั้งหมดโดยอัตโนมัติ |
ไอเอเอส | นักพัฒนาจัดการแอปพลิเคชัน ข้อมูล รันไทม์ และมิดเดิลแวร์ ผู้ให้บริการจัดการระบบเสมือนจริง เซิร์ฟเวอร์ พื้นที่เก็บข้อมูลและเครือข่าย |
ปาส | นักพัฒนาจัดการแอปพลิเคชันและข้อมูล ผู้ให้บริการจัดการรันไทม์ มิดเดิลแวร์ ระบบปฏิบัติการ การจำลองเสมือน เซิร์ฟเวอร์ พื้นที่เก็บข้อมูล และระบบเครือข่าย |
มุมมองและเทคโนโลยีแห่งอนาคตที่เกี่ยวข้องกับ FaaS
FaaS มีแนวโน้มที่จะพัฒนาต่อไปพร้อมกับระบบนิเวศแบบไร้เซิร์ฟเวอร์ที่กว้างขึ้น ความก้าวหน้าในการประมวลผลที่ขอบอาจทำให้ FaaS แพร่หลายมากขึ้นที่ขอบของเครือข่าย ใกล้กับแหล่งข้อมูลมากขึ้น นอกจากนี้ เราอาจเห็นสภาพแวดล้อมแบบไร้เซิร์ฟเวอร์แบบไฮบริดมากขึ้นซึ่งมีการใช้ FaaS ร่วมกับโมเดลการประมวลผลอื่นๆ สำหรับส่วนต่างๆ ของแอปพลิเคชัน
บทบาทของพร็อกซีเซิร์ฟเวอร์ในฟังก์ชันเป็นบริการ (FaaS)
พร็อกซีเซิร์ฟเวอร์สามารถมีบทบาทใน FaaS โดยทำหน้าที่เป็นตัวกลางสำหรับการร้องขอจากไคลเอนต์ที่ค้นหาทรัพยากรจากเซิร์ฟเวอร์อื่น พวกเขาสามารถปรับปรุงประสิทธิภาพ ให้ความปลอดภัย และรักษาความเป็นนิรนามได้ ในบริบทของ FaaS สามารถใช้พร็อกซีเซิร์ฟเวอร์เพื่อจัดการคำขอที่เรียกใช้ฟังก์ชัน โดยให้ความสามารถในการควบคุม การบันทึก และการแก้ไขเพิ่มเติม