Faasta ปรากฏตัวเป็นแพลตฟอร์ม WebAssembly FaaS ที่รวดเร็วพิเศษพร้อมความสามารถในการโฮสต์ด้วยตัวเอง

BigGo Editorial Team
Faasta ปรากฏตัวเป็นแพลตฟอร์ม WebAssembly FaaS ที่รวดเร็วพิเศษพร้อมความสามารถในการโฮสต์ด้วยตัวเอง

Faasta ได้ปรากฏตัวเป็นแพลตฟอร์ม Function-as-a-Service (FaaS) ใหม่ที่ใช้ประโยชน์จาก WebAssembly เพื่อให้ได้ประสิทธิภาพที่น่าทึ่ง รวมถึงเวลาเริ่มต้นเย็น (cold start) ที่ต่ำกว่า 1 มิลลิวินาที และการใช้หน่วยความจำที่น้อยมาก แพลตฟอร์มนี้กำลังสร้างความสนใจในชุมชนนักพัฒนาด้วยแนวทางที่อิงตามมาตรฐานและความสามารถในการโฮสต์ด้วยตัวเอง ซึ่งแก้ปัญหาช่องว่างในภูมิทัศน์ serverless ปัจจุบัน

WebAssembly และมาตรฐาน WASI P2 ขับเคลื่อนประสิทธิภาพ

Faasta แตกต่างจากแพลตฟอร์มอื่นด้วยการรันโมดูล WebAssembly โดยตรงโดยใช้มาตรฐาน WASI P2 และ WASIHTTP สำหรับการจัดการคำขอ แนวทางนี้แตกต่างอย่างมากจากแพลตฟอร์มอื่นที่อาจรัน WebAssembly โดยอ้อม การสนทนาในชุมชนเน้นย้ำว่าโมเดลการทำงานโดยตรงนี้ให้ข้อได้เปรียบด้านประสิทธิภาพเหนือทางเลือกอื่น เช่น Bun ซึ่งรัน WebAssembly ผ่าน JavaScript

ในฐานะคนที่ใช้ bun, deno และ cloudflare workers ผมอยากบอกว่าอย่างน้อยใน bun ส่วนของ wasm จริงๆ แล้วเกิดขึ้นในตัว js และ bun เพียงแค่รัน js นั้นโดยใช้ javascriptcore ซึ่งแน่นอนว่าไม่ได้รับการปรับแต่งอย่างที่ระบุไว้ในเอกสารของ Bun เอง

ทางเลือกด้านสถาปัตยกรรมนี้ช่วยให้ Faasta บรรลุเป้าหมายด้านประสิทธิภาพที่น่าประทับใจในขณะที่ยังคงมีขนาดเล็ก การใช้ Wasmtime ของแพลตฟอร์มเพื่อการทำงานของ WebAssembly ที่มีประสิทธิภาพยิ่งเพิ่มความสามารถด้านความเร็ว

คุณสมบัติหลักของ Faasta

  • โมดูล WebAssembly ที่ใช้มาตรฐาน WASI P2
  • WASIHTTP สำหรับการจัดการ HTTP ประสิทธิภาพสูง
  • การแยกฟังก์ชันที่ปลอดภัย
  • การเริ่มต้นแบบเย็น (cold starts) ที่รวดเร็วมาก (น้อยกว่า 1 มิลลิวินาที)
  • สามารถโฮสต์ด้วยตัวเองได้ด้วยการตั้งค่าที่ง่าย
  • สอดคล้องตามมาตรฐาน (WASI P2 และ WASIHTTP)
  • ขับเคลื่อนด้วย Wasmtime
  • มีอินสแตนซ์โฮสต์ฟรีที่ faasta.xyz

การนำมาตรฐาน WebAssembly มาใช้โดยผู้ให้บริการคลาวด์

ประเด็นที่น่าสนใจในการสนทนาของชุมชนคือการที่ผู้ให้บริการคลาวด์รายใหญ่นำ WebAssembly มาใช้สำหรับการประมวลผลแบบ serverless ในขณะที่ผู้ใช้บางรายแสดงความประหลาดใจที่ยักษ์ใหญ่ด้านคลาวด์ยังไม่ได้นำ WASM และ WASI มาใช้อย่างเต็มรูปแบบสำหรับฟังก์ชัน serverless คนอื่นๆ ชี้ให้เห็นว่าความคืบหน้ากำลังเกิดขึ้น แม้จะค่อยเป็นค่อยไป

Microsoft Azure ได้ส่งมอบ Spin เป็นบริการทดลองและกำลังลงทุนในการพัฒนา Wasmtime และ WASI Fastly ก็ได้พัฒนาแพลตฟอร์ม Compute ที่ขับเคลื่อนด้วย WASM Cloudflare Workers สนับสนุนทั้งการทำงานของ JavaScript และ WebAssembly แม้จะมีข้อจำกัดด้านขนาดบางประการ

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

การเปรียบเทียบกับแพลตฟอร์มอื่นๆ

แพลตฟอร์ม วิธีการใช้ WebAssembly การปฏิบัติตามมาตรฐาน
Faasta การประมวลผลโดยตรง WASI P2, WASIHTTP
Bun การประมวลผลผ่าน JS รองรับ WASI อย่างจำกัด
Cloudflare Workers รองรับ WASM มีข้อจำกัดด้านขนาด (1-2MB)
Azure (ทดลอง) ใช้การติดตั้งแบบ Spin รองรับ WASI
Fastly Compute ขับเคลื่อนด้วย WASM การติดตั้งแบบกำหนดเอง

ความสามารถในการโฮสต์ด้วยตัวเองแก้ปัญหาความกังวลเรื่องการผูกติดกับผู้ให้บริการ

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

แนวทางนี้แก้ไขความกังวลทั่วไปกับแพลตฟอร์ม serverless โดยตรง: การผูกติดกับผู้ให้บริการ หากผู้ให้บริการโฮสต์ยกเลิกบริการ ผู้ใช้ Faasta สามารถเปลี่ยนไปใช้การโฮสต์ด้วยตัวเองหรือผู้ให้บริการรายอื่นได้อย่างรวดเร็ว ซึ่งรักษาการลงทุนในการพัฒนาแอปพลิเคชัน

ความสามารถในการโฮสต์ด้วยตัวเองยังเปิดการอภิปรายเกี่ยวกับการสนับสนุนโดเมนที่กำหนดเองและการจัดการใบรับรอง SSL ปัจจุบัน Faasta นำเสนอการสร้างใบรับรอง SSL แบบ wildcard โดยอัตโนมัติสำหรับการปรับใช้ที่โฮสต์ด้วยตัวเองโดยใช้ Porkbun DNS โดยมีแผนที่จะสนับสนุนใบรับรองโดเมนที่กำหนดเองหลายรายการบนอินสแตนซ์แบบหลายผู้เช่า

กลยุทธ์โอเพนซอร์สและการพัฒนาในอนาคต

ชุมชนได้แสดงความสนใจในแนวทางการให้ใบอนุญาตของ Faasta นักพัฒนาได้แสดงแผนที่จะทำให้ Faasta เป็นโครงการโอเพนซอร์ส โดยที่ CLI และส่วนประกอบอินเทอร์เฟซได้มีให้ใช้ภายใต้ใบอนุญาต MIT แล้ว กำลังพิจารณาใบอนุญาต copyleft สำหรับส่วนประกอบเซิร์ฟเวอร์หรือกลยุทธ์การให้ใบอนุญาตแบบคู่

ข้อเสนอแนะจากชุมชนกำลังกำหนดแผนการพัฒนา Faasta อย่างแข็งขัน โดยผู้ใช้ร้องขอคุณสมบัติเช่น การสนับสนุนคำนำหน้าพาธและโดเมนย่อยสำหรับ URL ของฟังก์ชัน ตัวอย่างเพิ่มเติม และเอกสารที่ดีขึ้น โครงการนี้ปัจจุบันอยู่ในช่วงทดลอง โดยนักพัฒนาเตือนว่าการเปลี่ยนแปลงที่ทำให้เกิดความไม่เข้ากันอาจขัดขวางบริการบนอินสแตนซ์ที่โฮสต์ faasta.xyz

ในขณะที่มาตรฐาน WebAssembly ยังคงพัฒนาอย่างต่อเนื่อง Faasta แสดงถึงการนำไปใช้ในช่วงแรกของสิ่งที่อาจกลายเป็นแนวทางที่พบบ่อยมากขึ้นสำหรับการประมวลผลแบบ serverless—แนวทางที่รวมประโยชน์ด้านประสิทธิภาพและความปลอดภัยของ WebAssembly กับความยืดหยุ่นของตัวเลือกการโฮสต์ด้วยตัวเอง

อ้างอิง: Faasta: a Faster FaaS Platform