Function as a Service (FaaS): ทุกสิ่งที่คุณต้องการทราบ
เผยแพร่แล้ว: 2022-06-09คุณคงเคยได้ยินเกี่ยวกับ SaaS และคุณอาจเคยได้ยินเกี่ยวกับ PaaS และ IaaS แต่คุณเคยได้ยินเกี่ยวกับ Function as a Service (FaaS) หรือไม่
ตลาด FaaS กำลังเติบโตอย่างรวดเร็ว ตามการวิจัยตลาดของพันธมิตร ตลาดมีมูลค่า 3.01 พันล้านดอลลาร์ในปี 2561 ตัวเลขนี้คาดว่าจะเติบโตเป็น 24 พันล้านดอลลาร์ในปี 2569 ซึ่งหมายความว่าอุตสาหกรรมจะเติบโตที่อัตราการเติบโตต่อปีแบบผสม (CAGR) 29.7% จากปี 2020 ถึง 2026
เมื่อพิจารณาจากการเติบโตดังกล่าวแล้ว ถือว่า FaaS เป็นเรื่องใหญ่ได้อย่างปลอดภัย
แต่ FaaS คืออะไรและทำงานอย่างไร เพื่อช่วยคุณตอบคำถามเหล่านี้ บทความนี้จะครอบคลุมพื้นฐานของ FaaS สาเหตุที่ผู้คนควร (และไม่ควร) ใช้ FaaS และสถานะของตลาด FaaS ทั่วโลก ณ ปี 2022
ไปกันเถอะ.
Function as a Service (FaaS) คืออะไร?
Function as a Service (FaaS) เป็นรูปแบบหนึ่งของการประมวลผลแบบคลาวด์ที่ช่วยให้นักพัฒนาทำงานได้ดีขึ้นโดยไม่จำเป็นต้องบำรุงรักษาโครงสร้างพื้นฐานของแอปพลิเคชัน เมื่อนักพัฒนาใช้ประโยชน์จาก FaaS พวกเขาจะใช้แพลตฟอร์ม FaaS เพื่อสร้าง เรียกใช้ และดูแลแพ็คเกจแอปพลิเคชันสำหรับพวกเขา
ณ จุดนี้ คุณอาจคิดว่า FaaS ดูเหมือนการประมวลผลแบบไร้เซิร์ฟเวอร์ และเป็นเช่นนั้น การประมวลผลแบบไร้เซิร์ฟเวอร์ช่วยให้นักพัฒนาสามารถเอาต์ซอร์สการจัดการฐานข้อมูล, เกตเวย์ API, ที่เก็บข้อมูล, การส่งข้อความ และโครงสร้างพื้นฐานอื่นๆ ไปยังผู้ให้บริการบุคคลที่สาม FaaS เป็นการประมวลผลแบบไร้เซิร์ฟเวอร์

แม้ว่านี่อาจเป็นครั้งแรกที่คุณกำลังอ่านเกี่ยวกับ FaaS แต่คุณน่าจะเจอมันในป่า โปรแกรมและแอปยอดนิยมมากมายใช้ FaaS เช่น Alexa ของ Amazon
หากคุณคุ้นเคยกับ Alexa คุณจะรู้ว่าคุณสามารถขยายฟังก์ชันของ Alexa ได้โดยการสร้าง "ทักษะ" เช่นเดียวกับแอป ทักษะต่างๆ ทำให้ Alexa ทำสิ่งต่างๆ นอกเหนือการกำหนดค่าพื้นฐานได้ สิ่งต่างๆ เช่น การตรวจสอบการแจ้งเตือนในแอปของคุณ การเริ่มแชทใหม่ หรือการเล่นเสียงที่กำหนดเอง
Amazon ใช้ทักษะทั้งหมดของ Alexa ผ่าน AWS Lambda เมื่อคุณสร้างทักษะใหม่ คุณจะสร้างทักษะนั้นเป็นฟังก์ชันที่คุณปรับใช้ผ่าน AWS Lambda จากนั้น AWS Lambda จะเรียกใช้ฟังก์ชันสำหรับคุณและจัดการกับข้อกังวลด้านโครงสร้างพื้นฐาน เช่น ความปลอดภัยและการจัดการฐานข้อมูล
FaaS ทำงานทีละขั้นตอนอย่างไร? มาพูดถึงกันต่อไป
FaaS ทำงานอย่างไร
เพื่อให้เข้าใจ FaaS คุณจำเป็นต้องรู้คำศัพท์สำคัญสองคำ:
- “สถาปัตยกรรมเสาหิน” = แอปพลิเคชันในตัวเองที่ทำงานแยกจากแอปพลิเคชันอื่น แอปพลิเคชันเหล่านี้จัดการอินเทอร์เฟซผู้ใช้ ฟังก์ชันทางธุรกิจ และอินเทอร์เฟซข้อมูลภายในองค์กร รหัสสถาปัตยกรรมเสาหินอาศัยรหัสส่วนอื่นๆ
- “สถาปัตยกรรมไมโครเซอร์วิส” = โค้ดที่จัดการงานเล็กๆ สองสามงาน ไมโครเซอร์วิสเหล่านี้แยกจากกัน (แม้ว่าจะประกอบเป็นแอปพลิเคชันทั้งหมดรวมกันก็ตาม)
นี่คือไดอะแกรมที่แสดงให้เห็นว่าสถาปัตยกรรมเสาหินและสถาปัตยกรรมไมโครเซอร์วิสแตกต่างกันอย่างไร:

คุณสามารถเห็นความแตกต่างหลักในทางปฏิบัติระหว่างสถาปัตยกรรมไมโครเซอร์วิสและสถาปัตยกรรมแบบเสาหินเมื่อคุณดำเนินการหรืออัปเดตฟังก์ชัน ด้วยสถาปัตยกรรมแบบเสาหิน โปรแกรมทั้งหมดจะเรียกใช้ฟังก์ชันพร้อมกัน (เช่น การอัปเดตแอป เป็นต้น) ด้วยสถาปัตยกรรมไมโครเซอร์วิส คุณสามารถดำเนินการฟังก์ชันไมโครเซอร์วิสได้อย่างอิสระ
FaaS คือสิ่งที่ช่วยให้สถาปัตยกรรมไมโครเซอร์วิสทำงานได้
เมื่อคุณเรียกใช้ฟังก์ชันไมโครเซอร์วิสใหม่แต่ละรายการ คุณจะต้องสร้างฟังก์ชันเท่านั้น จากนั้นผู้ให้บริการ FaaS ของคุณจะรับฟังก์ชัน เรียกใช้ และจัดการการจัดการฟังก์ชันตั้งแต่นั้นเป็นต้นมา
เนื่องจาก FaaS เป็นเครื่องมือที่ทำงานร่วมกับข้อมูลจากคุณ สิ่งสำคัญคือต้องทราบว่าฟังก์ชัน FaaS แต่ละฟังก์ชันควรรับผิดชอบงานเดียวเท่านั้น งานนี้จะทำงานเมื่อมีการเปิดใช้งานทริกเกอร์ ตัวอย่างเช่น ฟังก์ชันที่สร้างสำเนาใบเสร็จของผู้ใช้จะทำงานก็ต่อเมื่อผู้ใช้กด "ดาวน์โหลดใบเสร็จ"
FaaS ใช้ "รูปแบบการดำเนินการตามเหตุการณ์" ซึ่งหมายความว่าฟังก์ชันของคุณจะเปิดใช้งานเมื่อทริกเกอร์เท่านั้น ในทำนองเดียวกัน พวกมันจะไม่ทำงานในพื้นหลัง
แล้ว FaaS สามารถทำอะไรได้อีกบ้าง?
FaaS รวมบริการอะไรบ้าง?
แม้ว่าผู้ให้บริการทั้งหมดจะแตกต่างกัน แต่โดยทั่วไปผู้ให้บริการ FaaS จะเสนอบริการเหล่านี้:
- บริการรับรองความถูกต้อง สิ่งเหล่านี้จัดการกระบวนการเข้าสู่ระบบและการรับรองความถูกต้องสำหรับผู้ใช้โปรแกรมของคุณ
- บริการฐานข้อมูล สิ่งเหล่านี้ช่วยให้คุณบันทึกข้อมูลในฐานข้อมูลเพื่อให้โปรแกรมของคุณสามารถใช้งานได้ ผู้ให้บริการ FaaS จะจัดการการบำรุงรักษาฐานข้อมูลบางอย่างให้กับคุณ
- การจัดเก็บไฟล์ ผู้ให้บริการ FaaS สามารถจัดเก็บข้อมูลและไฟล์สำหรับแอปของคุณได้ ดังนั้นคุณไม่จำเป็นต้องโฮสต์บนเซิร์ฟเวอร์ของคุณเอง
- การรายงาน ผู้ให้บริการ FaaS สามารถเฝ้าดูข้อผิดพลาดหรือภัยคุกคามด้านความปลอดภัยในโปรแกรมของคุณและแจ้งเตือนคุณเมื่อพบสิ่งผิดปกติ
โดยรวมแล้ว บริการเหล่านี้ช่วยให้นักพัฒนาทำงานได้อย่างชาญฉลาดยิ่งขึ้น มาพูดถึงข้อดีของ FaaS กันต่อไป
ข้อดีของโมเดล FaaS
ด้วย FaaS นักพัฒนาไม่จำเป็นต้องกังวลเกี่ยวกับโครงสร้างพื้นฐานหรือการปรับใช้ — เขียนเฉพาะตรรกะของแอปพลิเคชันเท่านั้น ดังนั้น เมื่อนำมาใช้ในปัจจุบัน FaaS สามารถลดเวลาที่ใช้ในการสร้างและปรับใช้โปรแกรมได้อย่างมาก
การสร้างและการปรับใช้นั้นง่ายขึ้นด้วย FaaS เวลาในการจัดเตรียมใช้เวลาเพียงไม่กี่วินาทีแทนที่จะเป็นชั่วโมงในแต่ละครั้ง คุณไม่ จำกัด ภาษาหรือแหล่งข้อมูลใดโดยเฉพาะ ผู้ให้บริการ FaaS สามารถเรียกใช้โค้ดในภาษาส่วนใหญ่ได้ และคุณสามารถเพิ่มความเร็วในกระบวนการสร้างได้โดยใช้แคชและฐานข้อมูลที่ผู้ให้บริการของคุณนำเสนอ
โมเดล FaaS สามารถปรับขนาดได้มากและการวางแผนความจุนั้นง่ายกว่ามาก หากคุณต้องการทรัพยากรเพิ่มเติม คุณสามารถดูคำแนะนำของผู้ให้บริการ FaaS เพื่ออัปเกรดการใช้งานของคุณได้ ผู้ให้บริการ FaaS หลายรายเสนอการปรับขนาดในแนวนอน ซึ่งหมายความว่าหากการใช้งานของคุณเพิ่มขึ้นอย่างรวดเร็ว ผู้ให้บริการจะจัดเตรียมทรัพยากรเพิ่มเติมให้คุณเพื่อรับมือกับการเพิ่มขึ้นอย่างรวดเร็ว
นอกจากนี้ คุณไม่จำเป็นต้องกังวลเกี่ยวกับการบำรุงรักษา การกู้คืนจากภัยพิบัติ (DR) หรือการรักษาความปลอดภัย
ในที่สุด FaaS ก็มีประสิทธิภาพมาก ผู้ให้บริการจะเรียกเก็บเงินจากคุณสำหรับทรัพยากรที่คุณใช้ ดังนั้นคุณอาจจะจ่าย FaaS น้อยกว่าที่คุณจะจ่ายสำหรับฮาร์ดแวร์ของคุณเอง ในทำนองเดียวกัน ฟังก์ชันของคุณจะไม่ทำงานในพื้นหลังและไม่ได้ใช้งานแทน คุณไม่จำเป็นต้องจ่ายเงินเพื่อให้พวกเขาไม่ได้ใช้งานเช่นกัน
FaaS เป็นผู้เชี่ยวชาญทั้งหมดหรือไม่ ไม่ค่อยเท่าไหร่
ข้อเสียของโมเดล FaaS
โมเดล FaaS ขจัดความท้าทายที่ยิ่งใหญ่ที่สุดที่เกี่ยวข้องกับการพัฒนาโปรแกรม แต่ยังต้องการให้คุณจำกัดการควบคุมของคุณอย่างมาก คุณไม่สามารถตัดสินใจได้มากมายเกี่ยวกับเซิร์ฟเวอร์ ความปลอดภัย หรือฐานข้อมูลที่โค้ดของคุณใช้ แต่ขึ้นอยู่กับผู้ให้บริการของคุณ
ในทำนองเดียวกัน การดีบักมักจะยากขึ้นเล็กน้อย เนื่องจากคุณไม่สามารถควบคุมระบบของคุณได้อย่างเต็มที่ การทดสอบก็ยากเช่นกัน เนื่องจากโค้ด FaaS ไม่ได้แปลอย่างราบรื่นในสภาพแวดล้อมการทดสอบเสมอไป
นอกจากนี้ คุณต้องปฏิบัติตามข้อกำหนดที่เข้มงวดของผู้จำหน่าย FaaS ของคุณ ฟังก์ชัน FaaS สามารถดำเนินการได้เพียงครั้งเดียวเท่านั้น ดังนั้นหากคุณไม่คุ้นเคย คุณจะต้องเปลี่ยนวิธีที่คุณและทีมเขียนโค้ด ในทำนองเดียวกัน คุณอาจต้องเขียนโค้ดใหม่ในแอปที่มีอยู่เพื่อให้เหมาะสำหรับการปรับใช้ FaaS ดังนั้น FaaS มักจะเหมาะกับโปรแกรมใหม่มากกว่าโปรแกรมเก่า
สุดท้าย การเลือก FaaS มักจะหมายถึงการผูกมัดกับผู้ขายรายเดียวในระยะยาว คุณทำงานกับระบบและข้อกำหนดของผู้ให้บริการของคุณเมื่อคุณสร้างโปรแกรมของคุณ โดยปกติ การเปลี่ยนผู้ให้บริการอาจทำให้คุณต้องทำงานใหม่บางส่วนและอาจขัดจังหวะการทำงานของคุณ
ข้อดีข้อเสีย
ข้อดี | ข้อเสีย |
ปรับใช้รหัสเร็วขึ้น การจัดสรรใช้เวลาเป็นมิลลิวินาที รหัสในภาษาใด ๆ การกู้คืนจากภัยพิบัติอัตโนมัติ (DR) ประหยัดค่าใช้จ่าย ปรับขนาดได้ | สูญเสียการควบคุมเซิร์ฟเวอร์ การแก้จุดบกพร่องนั้นยากกว่า การทดสอบใช้เวลานานขึ้น คุณถูกล็อคในผู้ขายของคุณ คุณต้องเขียนโค้ดที่เหมาะสมกับ FaaS |
FaaS กับ SaaS, PaaS และ IaaS
เมื่อคุณทราบข้อมูลเพิ่มเติมเกี่ยวกับ FaaS แล้ว คุณอาจสงสัยว่ามันเกี่ยวข้องกับตัวเลือก Anything as a Service (XaaS) อื่นๆ เช่น IaaS, SaaS และ PaaS อย่างไร
บริการ IaaS, PaaS และ FaaS มีจุดประสงค์ที่คล้ายกัน: ช่วยให้บริษัทจัดการแอปพลิเคชันราคาถูกลงและมีประสิทธิภาพมากขึ้น อย่างไรก็ตาม แต่ละตัวเลือกมีบางสิ่งที่แตกต่างกัน
Infrastructure as a Service (IaaS) ให้คุณเช่าพลังประมวลผล (เช่น RAM และ CPU) ด้วย IaaS คุณยังต้องจัดการฟังก์ชันบางอย่างของแอปพลิเคชัน (เช่น ความปลอดภัย) ภายในองค์กร
Platform as a Service (PaaS) ให้คุณเช่าเครื่องมือฮาร์ดแวร์และซอฟต์แวร์เพื่อสร้างแอปของคุณ ตัวอย่างทั่วไปคือ AWS Elastic Beanstalk
FaaS ให้คุณเช่าพื้นที่เพื่อเรียกใช้ฟังก์ชันต่างจาก IaaS และ PaaS ได้ คุณลักษณะนี้ทำให้สามารถปรับขนาดได้มากขึ้น
ข้อมูลสรุปสั้น ๆ ว่าทั้งสามทำงานแตกต่างกันอย่างไร:

Software as a Service (SaaS) ไม่ได้มุ่งไปที่การสร้างแอปหรือโปรแกรม แต่อนุญาตให้คุณเช่าแอปพลิเคชันเพื่อที่คุณจะได้ไม่ต้องสร้างมันขึ้นมาเอง มีตัวเลือก SaaS นับพันให้เลือก ตั้งแต่เครื่องมือวิเคราะห์ข้อมูลไปจนถึงปลั๊กอิน WordPress SEO
ขนาดตลาด ส่วนแบ่ง และผู้ค้าชั้นนำ
การเติบโตของ FaaS สะท้อนให้เห็นถึงการเปลี่ยนแปลงโดยรวมในวิธีที่องค์กรต่างๆ กำลังพัฒนาโปรแกรมใหม่
ในทศวรรษที่ผ่านมา นักพัฒนาได้สร้างระบบขนาดใหญ่เป็นโครงการหลายปี ทุกวันนี้ องค์กรจำนวนมากชอบแนวทางการพัฒนาปฏิบัติการ (DevOps) ในการพัฒนา DevOps ให้ความสำคัญกับการพัฒนาและปรับปรุงโปรแกรมอย่างต่อเนื่องทีละเล็กทีละน้อย

ในทำนองเดียวกัน องค์กรต่างๆ ใช้บริการคลาวด์มากขึ้นเรื่อยๆ เพื่อทำให้สิ่งต่างๆ ปลอดภัยและมีประสิทธิภาพมากขึ้น จากข้อมูลของ Oracle องค์กรต่างๆ จะจัดเก็บข้อมูลที่ละเอียดอ่อนในคลาวด์มากกว่า 600 เท่าในเร็วๆ นี้
คุณสามารถเห็นแนวโน้มนี้ในข้อมูลที่รวบรวมจากผู้บริหาร C-suite 7,164 คนจาก Statista จากปี 2019 ถึงปี 2021 การใช้บริการคลาวด์สาธารณะหรือส่วนตัวเดียวลดลง และองค์กรส่วนใหญ่นำโซลูชันคลาวด์ที่หลากหลายมาใช้

การลงทุนในระบบคลาวด์คอมพิวติ้งก็เพิ่มขึ้นเช่นกัน การศึกษาอื่นจาก Statista เกี่ยวกับองค์กรขนาดใหญ่หลายร้อยแห่งทั่วโลกแสดงให้เห็นว่า 83% ของบริษัทที่ทำการสำรวจลงทุนมากกว่า 1.2 ล้านเหรียญสหรัฐในการประมวลผลแบบคลาวด์สาธารณะต่อปี ตัวเลขนี้เพิ่มขึ้นจาก 50% ในปี 2019
ผู้คนหันมาใช้ FaaS เพราะมันรองรับอนาคตและปรับขนาดได้ ในทำนองเดียวกัน มันให้ผลผลิตและประสิทธิภาพที่ดีขึ้น เวลาในการออกสู่ตลาดสำหรับแอพเร็วขึ้น และวิธีที่ประหยัดต้นทุนมากขึ้นในการผลิตโปรแกรมใหม่
ประโยชน์เหล่านี้ดึงดูดอุตสาหกรรมมากมาย รวมถึงองค์กรในการธนาคาร (หรือองค์กร "BFSI") สินค้าอุปโภคบริโภคและการค้าปลีก ความบันเทิง โทรคมนาคม บริการที่เปิดใช้งานข้อมูลและเทคโนโลยี (ITES) การดูแลสุขภาพ และการผลิต แต่ละอุตสาหกรรมมีส่วนสนับสนุนตลาด FaaS มากน้อยเพียงใด:

ต่างจาก SaaS เนื่องจากไม่มีผู้จำหน่าย FaaS นับพันรายให้องค์กรได้เลือกระหว่าง FaaS ส่วนใหญ่ใช้โซลูชันที่นำเสนอโดยผู้เล่นหลัก รวมถึง AWS Lambda, Azure Function, IBM Cloud Function, Google Cloud Functions, Alibaba Cloud และ Cloudflare Workers

เราจะครอบคลุมผู้ให้บริการแต่ละรายในตอนนี้
AWS Lambda
AWS Lambda เปิดตัวโดย Amazon ในเดือนพฤศจิกายน 2014 เป็นเครื่องมือ FaaS ที่ได้รับความนิยมอย่างมาก ณ ไตรมาสที่ 4 ปี 2021 ผู้ใช้ระบบคลาวด์ 33% ใช้บริการของ AWS

AWS Lambda ให้การสนับสนุนดั้งเดิมสำหรับภาษาการเขียนโปรแกรมหลายภาษา รวมถึง Node.js, C#, Python, Ruby, Go, Java และ Powershell ดังที่เราได้กล่าวไว้ใน “What is Function as a Service (FaaS)?” Alexa ใช้ AWS Lambda สำหรับทักษะ
คุณสมบัติและฟังก์ชัน:
- เชื่อมต่อกับเครื่องมือ AWS อื่นๆ
- ตรวจสอบประสิทธิภาพของโปรแกรมด้วย Amazon CloudWatch
- การผสานรวมกับเครื่องมือ SaaS กว่า 200 รายการ
- คุณสามารถปรับใช้คอนเทนเนอร์นักเทียบท่า (AWS เปิดตัวคุณสมบัตินี้ในเดือนธันวาคม 2020)
ข้อดี:
- คุณสามารถสร้างแบ็กเอนด์ของคุณเองได้โดยใช้ Lambda API หรือเกตเวย์ Amazon API
- คุณสามารถปรับใช้ฟังก์ชันเป็นอิมเมจคอนเทนเนอร์
- คุณสามารถเชื่อมต่อกับฐานข้อมูลเชิงสัมพันธ์ด้วย Amazon RDS Proxy
- คุณสามารถเลือกจำนวนหน่วยความจำที่จะอุทิศให้กับแต่ละฟังก์ชั่นได้
จุดด้อย:
- หากคุณยังไม่ได้ใช้ AWS การตั้งค่าจะใช้เวลาและความพยายามอย่างมาก
ฟังก์ชัน Microsoft Azure
ฟังก์ชัน Microsoft Azure เป็นความสามารถของ Microsoft Azure ซึ่ง Microsoft เปิดตัวครั้งแรกในชื่อ "Windows Azure" ในเดือนกุมภาพันธ์ 2010 ฟังก์ชัน Azure ช่วยให้คุณสามารถรันโค้ดที่ขับเคลื่อนด้วยเหตุการณ์ผ่าน FaaS ณ ไตรมาสที่ 4 ปี 2564 ผู้ใช้ระบบคลาวด์ 21% ใช้ Azure

คุณสมบัติและฟังก์ชัน:
- คุณสามารถเชื่อมต่อฟังก์ชันของคุณกับตัวเชื่อมต่อมากกว่า 250 ตัวใน Azure Logic Apps
- รองรับ JavaScript, C#, F#, Powershell, PHP, Python และ Java
- มีบทแนะนำมากมายสำหรับผู้ใช้ใหม่
- ช่วยคุณวิเคราะห์โปรแกรมของคุณผ่าน Azure Application Insights
ข้อดี:
- ฟังก์ชัน Azure ใช้โมเดลการเขียนโปรแกรมแบบบูรณาการ
- เหมาะกับทีมที่ใช้ DevOps
- มีแผนหลายแผน
จุดด้อย:
- ฟังก์ชัน Azure ไม่รองรับ Node.js หรือ Ruby
ฟังก์ชั่น Google Cloud
Google Cloud เป็นโซลูชันการประมวลผลบนระบบคลาวด์ที่ได้รับความนิยมสูงสุดเป็นอันดับสามรองจาก AWS และ Azure ปัจจุบันมีส่วนแบ่งการตลาดอยู่ที่ 10% Google Cloud Functions เป็นคุณลักษณะ FaaS ของ Google Cloud ซึ่งเป็นบริการที่มีผลิตภัณฑ์มากกว่า 100 รายการสำหรับการใช้งานที่หลากหลาย

คุณสมบัติและฟังก์ชัน:
- การดีบักและการบันทึกถูกรวมเข้ากับ Google Cloud Functions (ผ่าน CloudTrace และ CloudDebugger)
- คุณใช้ทริกเกอร์จาก Google Assistant, Google Cloud, Firebase หรือแอปพลิเคชันใดๆ โดยใช้ HTTP
- Google Cloud Functions ทำงานร่วมกับพันธมิตรของ Google มากมาย
ข้อดี:
- ผู้ที่ต้องการความสามารถแบบมัลติคลาวด์หรือไฮบริดก็ใช้ได้
- เป็นโอเพ่นซอร์ส คุณจึงสามารถย้ายไปยังแพลตฟอร์ม FaaS อื่นได้อย่างง่ายดายหากต้องการ
- ใช้งานง่ายมาก
- Google มอบแหล่งข้อมูลฟรีมากมายให้กับผู้ใช้ใหม่
จุดด้อย:
- บริการที่ใช้คอนเทนเนอร์ของ Google Cloud Function มีความล้ำหน้าน้อยกว่าผู้ให้บริการ FaaS อื่น
IBM Cloud
IBM Cloud มาจาก SoftLayer ซึ่งเป็นแพลตฟอร์มคลาวด์สาธารณะที่ IBM ซื้อในเดือนมิถุนายน 2556 IBM เปลี่ยนแพลตฟอร์มเป็น Bluemix และเปิดตัวเป็นเครื่องมือ PaaS ในเดือนกรกฎาคม 2014 ตั้งแต่นั้นมา IBM ได้เปลี่ยนชื่อบริการเป็น IBM Cloud และขยายคุณสมบัติเป็น ฟาส

ณ ไตรมาสที่ 4 ปี 2564 ผู้ใช้ระบบคลาวด์ 4% ใช้ IBM Cloud มันทำงานบนระบบนิเวศ Apache OpenWhisk
คุณสมบัติและฟังก์ชัน:
- คุณสามารถค้นหาเนื้อหาวิดีโอ
- คุณสามารถเชื่อมต่อโปรแกรมของคุณกับโปรแกรมอื่นผ่าน IBM Watson APIs
- IBM มีฟังก์ชันที่สร้างไว้ล่วงหน้าสำหรับงานทั่วไปบางอย่าง
- รองรับ Node.js, Python, Swift, PHP, Go, Ruby, Java และ .NET Core
ข้อดี:
- เหมาะสำหรับสร้างแอปพลิเคชันมือถือ
- ง่ายต่อการเรียนรู้การใช้งาน
- ตรวจสอบแอปของคุณผ่าน IBM Cloud Monitoring
จุดด้อย:
- จำกัดเวลาหน่วยความจำของฟังก์ชันไว้ที่สิบนาทีหรือ 2048 MB
อาลีบาบาคลาวด์
Alibaba Cloud ไม่ได้เป็นที่รู้จักกันอย่างแพร่หลายในฐานะตัวเลือกการประมวลผลแบบคลาวด์อื่นๆ แต่ยังคงครองส่วนแบ่งตลาดที่ดีอยู่ที่ 6% อาลีบาบาคลาวด์เปิดตัวโดยอาลีบาบาในปี 2551 มุ่งเน้นไปที่ธุรกิจออนไลน์และผู้ที่ใช้บริการอื่น ๆ ของอาลีบาบา

FaaS เป็นหนึ่งในข้อเสนอของ Alibaba Cloud ควบคู่ไปกับเครือข่ายการจัดส่งเนื้อหา (CDN) การจัดเก็บข้อมูล และการประมวลผลข้อมูลขนาดใหญ่
คุณสมบัติและฟังก์ชัน:
- ผสานรวมกับบริการประมวลผลอื่นๆ ของอาลีบาบา
- หลักฐานจากภัยพิบัติ เนื่องจากโฮสต์ของอาลีบาบาทำงานบนคลัสเตอร์ในหลายพื้นที่
- การแปลงรหัสวิดีโอ
- AI การให้เหตุผล
- รองรับ Node.js, Python, Java, PHP และ C#
ข้อดี:
- ให้ตัวเลือกฟรีสำหรับผู้ที่ไม่ต้องการรันโค้ดมาก
- ปรับขนาดได้สูง
- คุณสามารถใช้ทริกเกอร์ได้หลายประเภท
จุดด้อย:
- การย้ายฟังก์ชันจาก Alibaba ไปยังผู้ให้บริการ FaaS รายอื่นอาจเป็นเรื่องยาก
คนงาน Cloudflare
Cloudflare Workers ดำเนินการโดย Cloudflare เป็นระบบ FaaS ที่เหมาะสำหรับนักพัฒนาใหม่และผู้ที่ต้องการเรียกใช้โค้ดเกือบจะในทันที Cloudflare Workers เสนอแผนฟรีและราคาที่ปรับขนาดได้

คุณสมบัติและฟังก์ชัน:
- รองรับ JavaScript, C++, Rust และ C
- คุณสามารถจัดเก็บรูปภาพ, PDF และไฟล์อื่นๆ บน Cloudflare Workers เพื่อปรับใช้เป็นสินทรัพย์คงที่
- หลักฐานจากภัยพิบัติ เนื่องจาก Cloudflare Workers ใช้เครือข่ายเซิร์ฟเวอร์ทั่วโลก
- ผสานรวมกับผลิตภัณฑ์ Cloudflare อื่นๆ
ข้อดี:
- ราคาถูกกว่าตัวเลือก FaaS อื่น ๆ อีกมากมาย
- เป็นเรื่องง่ายสำหรับนักพัฒนารุ่นใหม่ที่จะเรียนรู้การใช้งาน
- คุณสามารถเริ่มต้นได้อย่างรวดเร็ว
- Cloudflare นำเสนอบทช่วยสอนโดยละเอียดและทรัพยากรที่สามารถช่วยคุณสร้างแอปพลิเคชันของคุณ
จุดด้อย:
- Cloudflare Workers มีความแข็งแกร่งน้อยกว่าตัวเลือกอื่นๆ และเหมาะสมกว่าสำหรับผู้ที่มีโครงการขนาดเล็ก
แนวทางปฏิบัติที่ดีที่สุดของ Faas
ใช่ FaaS เป็นเทคโนโลยี แต่ก็เป็นแนวคิดที่นักพัฒนาซอฟต์แวร์ต้องปรับใช้ในการพัฒนาโปรแกรมและแอปพลิเคชัน
เพื่อให้ได้ประโยชน์สูงสุดจาก FaaS ให้ทำตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้:
- จำข้อจำกัดของ FaaS FaaS ไม่เหมาะสำหรับทุกโปรแกรม และหากคุณพยายามสร้างโปรแกรมที่ไม่เป็นมิตรกับ FaaS ด้วย FaaS คุณจะต้องเสียเวลา แรงกาย และเงิน
- เรียกใช้ฟังก์ชันการทำงานเพียงครั้งเดียวบน FaaS เท่านั้น หากคุณเรียกใช้ฟังก์ชันที่มีการดำเนินการหลายอย่าง คุณจะขัดขวางการทำงานของ FaaS ในสภาพแวดล้อมแบบแยกส่วนได้ดีที่สุด การหยุดชะงักนี้จะทำให้แอปพลิเคชันของคุณช้าลงและลดประสิทธิภาพ
- อย่าเรียกใช้ฟังก์ชันที่มีการพึ่งพา การพึ่งพาจะสร้างข้อผิดพลาดและปัญหาในการขยายขนาดในภายหลัง
- ดูเวลาในการโหลดของคุณอย่างระมัดระวัง เวลาในการโหลดของคุณมาจากไลบรารีหรือฟังก์ชันที่ต้องใช้หน่วยความจำมาก เวลาในการโหลดที่สูงจะทำให้โปรแกรมของคุณช้าลงและทำให้ผู้ใช้หงุดหงิดในที่สุด
- ลดจำนวนการเชื่อมต่อระบบจัดการฐานข้อมูลความสัมพันธ์ (RDBMS) ที่คุณใช้ การเชื่อมต่อเหล่านี้จะเพิ่มเวลาที่ใช้ในการทำงานและทำให้เกิดข้อผิดพลาดในโปรแกรมของคุณ
คุณต้องการ FaaS หรือไม่?
FaaS เป็นเทคโนโลยีที่เป็นนวัตกรรมและเปลี่ยนเกมสำหรับบางคน แต่ก็ใช้ไม่ได้กับทุกคน
องค์กรที่ได้รับประโยชน์สูงสุดจาก FaaS ยินดีที่จะสร้างโปรแกรมด้วยสถาปัตยกรรมไมโครเซอร์วิส โดยที่แต่ละฟังก์ชันทำหน้าที่เพียงสิ่งเดียวเท่านั้น ฟังก์ชันเหล่านี้ควรทำงานแยกกัน หากต้องพึ่งพาอาศัยกัน คุณจะประสบปัญหาเรื่องความสามารถในการปรับขนาดได้
หากคุณต้องการสร้างแอปพลิเคชันที่มีสถาปัตยกรรมแบบเสาหินหรือฟังก์ชันที่ดึงมาจากกันและกัน FaaS อาจทำงานได้ไม่ดี ในทำนองเดียวกัน หากคุณไม่ต้องการผูกมัดกับผู้ขายรายเดียวในระยะยาว FaaS อาจเป็นทางเลือกที่สั้น
แน่นอน คุณยังสามารถใช้ประโยชน์จากเทคโนโลยีคลาวด์ได้โดยไม่ต้องใช้ FaaS ตัวอย่างเช่น คุณสามารถลงทุนใน PaaS หรือ IaaS เพื่อเอาท์ซอร์สฟังก์ชันบางอย่างของแอปพลิเคชันของคุณไปยังคลาวด์ ตัวเลือกนี้จะให้ประโยชน์ด้านต้นทุนและประสิทธิภาพของการประมวลผลแบบคลาวด์แก่คุณ แต่คุณไม่จำเป็นต้องสร้างโปรแกรมภายใต้ข้อจำกัดของโมเดล FaaS
อีกทางเลือกหนึ่ง หากคุณไม่ต้องการสร้างโปรแกรมที่ทำสิ่งที่เฉพาะเจาะจงหรือเชี่ยวชาญเป็นพิเศษ ให้พิจารณาลงทุนในเครื่องมือ SaaS เครื่องมือ SaaS บางตัวเป็นโอเพ่นซอร์ส คุณจึงสามารถปรับเครื่องมือที่มีอยู่ให้เข้ากับความต้องการของคุณได้
สรุป
FaaS ไม่ใช่เทคโนโลยีหรือเทรนด์ใหม่ เป็นเทคโนโลยีที่ปรับขนาดได้ที่คุณคาดว่าจะเห็นมากขึ้นในทศวรรษหน้า
การอธิบาย FaaS ในบางครั้งอาจดูยาก แต่ FaaS เป็นเพียงบริการที่ช่วยให้นักพัฒนาสามารถเขียนและเรียกใช้โค้ดโดยใช้โครงสร้างพื้นฐานที่ดูแลโดยบุคคลอื่น บริการหลายอย่างที่คุณใช้เป็นประจำ เช่น Alexa ใช้ FaaS ผู้จำหน่าย FaaS ทั่วไป ได้แก่ IBM Cloud Functions, AWS Lambda, Alibaba Cloud, Google Cloud Functions และ Microsoft Azure Functions
แม้ว่า FaaS จะมีประสิทธิภาพสูงสำหรับบางธุรกิจ แต่ก็ไม่เหมาะกับทุกคน FaaS ทำงานได้ดีที่สุดสำหรับการรันโค้ดแบบแยกอิสระซึ่งทำหน้าที่เดียว
เราต้องการเปิดไมโครโฟน (หรือคีย์บอร์ด) ให้คุณ คุณใช้ FaaS ในธุรกิจของคุณอย่างไร และคุณมีคำแนะนำสำหรับผู้อื่นที่สำรวจเทคโนโลยีนี้เป็นครั้งแรกหรือไม่? กรุณาบอกเราในความคิดเห็นด้านล่าง