ความท้าทายในการรันโค้ดที่ไม่น่าเชื่อถืออย่างปลอดภัยพร้อมรักษาประสิทธิภาพสูงเป็นความกังวลมาอย่างยาวนานในการประมวลผลบนคลาวด์และบริการเว็บ โปรเจกต์ใหม่ที่ชื่อว่า Drogon Sandbox ได้แสดงให้เห็นถึงวิธีการแก้ปัญหาที่เป็นนวัตกรรม โดยสามารถทำความเร็วได้อย่างน่าประทับใจในขณะที่ยังรักษาการแยกโพรเซสที่แข็งแกร่ง
การแยกโพรเซสความเร็วสูงด้วยการจำลอง RISC-V
โปรเจกต์นี้ใช้โซลูชันแซนด์บ็อกซ์ที่ไม่เหมือนใครโดยใช้การจำลอง RISC-V ซึ่งช่วยให้สามารถแยกโพรเซสได้อย่างรวดเร็ว ต่างจากเครื่องเสมือนหรือคอนเทนเนอร์แบบดั้งเดิม วิธีนี้สามารถสร้างและทำลายแซนด์บ็อกซ์ภายในระดับไมโครวินาที พร้อมรองรับคำขอได้ถึง 1.7 ล้านคำขอต่อวินาทีด้วย 64 เธรด ระบบนี้เพิ่มโอเวอร์เฮดเพียงประมาณ 1 ไมโครวินาทีเมื่อเทียบกับการตอบสนองของเซิร์ฟเวอร์ Drogon แบบปกติที่ 800,000 คำขอต่อวินาที
ตัวชี้วัดประสิทธิภาพ:
- 8 เธรด: 803,251 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 9.51 ไมโครวินาที
- 32 เธรด: 1,443,679 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 22.49 ไมโครวินาที
- 64 เธรด: 1,736,727 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 39.44 ไมโครวินาที
การเปรียบเทียบโอเวอร์เฮด:
- Drogon แบบดั้งเดิม: ค่าความหน่วงเฉลี่ย 8.54 ไมโครวินาที
- เวอร์ชัน Sandbox: ค่าความหน่วงเฉลี่ย 9.51 ไมโครวินาที
- โอเวอร์เฮดเพิ่มเติม: ประมาณ 1 ไมโครวินาทีต่อคำขอ
ความปลอดภัยผ่านการแยกโพรเซสอย่างสมบูรณ์
การสนทนาในชุมชนเผยว่าโมเดลความปลอดภัยนี้อาศัย libriscv ซึ่งจำลองโปรแกรม RISC-V ในบริบทที่แยกออกมา โดยมีการควบคุม Linux syscalls อย่างระมัดระวัง วิธีนี้แตกต่างจากเครื่องเสมือนที่ใช้ไฮเปอร์ไวเซอร์แบบดั้งเดิม โดยนำเสนอกลไกการแยกโพรเซสที่เบากว่าแต่ยังมีประสิทธิภาพ
ขอบเขตระหว่างโฮสต์และเกสต์ API ของ system call จะเป็นช่องโหว่ที่ใหญ่ที่สุดไม่ว่าจะใช้โซลูชันใดก็ตาม แต่ถ้าคุณพบปัญหาและแก้ไขมัน คุณก็จะกลับมาปลอดภัยอีกครั้ง ซึ่งต่างจากกรณีที่ไม่มีการใช้แซนด์บ็อกซ์เลย
วิธีการทางเลือกและกรณีการใช้งาน
ในขณะที่โปรเจกต์นี้เป็นเพียงการพิสูจน์แนวคิด ชุมชนได้เน้นย้ำถึงโซลูชันทางเลือกหลายอย่างสำหรับกรณีการใช้งานที่คล้ายกัน รวมถึง Firecracker สำหรับการแยก VM แบบสมบูรณ์, gVisor สำหรับเวิร์กโหลดแบบคอนเทนเนอร์ และ Lua พร้อมแซนด์บ็อกซ์สำหรับการพัฒนาเกม แต่ละวิธีมีข้อดีข้อเสียที่แตกต่างกันในด้านความปลอดภัย ประสิทธิภาพ และความง่ายในการนำไปใช้
ข้อจำกัดและการประยุกต์ใช้งานจริง
สิ่งสำคัญที่ต้องทราบคือแม้ว่าตัวเลขประสิทธิภาพจะน่าประทับใจ แต่โซลูชันนี้อาจไม่เหมาะกับสภาพแวดล้อมการผลิตทั้งหมด โปรเจกต์นี้ระบุชัดเจนว่ามีเพียงส่วนที่จำเป็นสำหรับการทดสอบประสิทธิภาพที่สมจริงเท่านั้น โดยยังขาดฟีเจอร์ที่พร้อมสำหรับการผลิต เช่น ระบบการสังเกตการณ์ การบันทึกล็อก และระบบการวัดที่ครอบคลุม นอกจากนี้ การที่ใช้การจำลอง RISC-V อาจไม่สามารถทำความเร็วได้เท่ากับโซลูชันที่ใช้การเวอร์ชวลไลซ์ด้วยฮาร์ดแวร์อย่าง Firecracker สำหรับเวิร์กโหลดที่ใช้การประมวลผลหนัก
อ้างอิง: Drogon Sandbox