เมื่อเร็วๆ นี้ ไมโครซอฟต์ ได้ประกาศ เปิดตัว โครงการโอเพนซอร์สใหม่ชื่อ " Hyperlight " ซึ่งเป็นไฮเปอร์ไวเซอร์ที่ออกแบบมาโดยเฉพาะสำหรับการบูรณาการเข้ากับแอปพลิเคชันที่ต้องการการประมวลผลโค้ดแบบแยกส่วน ไม่ว่าจะเป็นด้วยเหตุผลด้านความปลอดภัยหรือเพื่อจัดการกับส่วนของโค้ดที่ไม่น่าเชื่อถือ
Hyperlight วางตำแหน่งตัวเองเป็นไลบรารีที่ใช้ร่วมกันซึ่งช่วยให้ฟังก์ชันต่างๆ สามารถทำงานภายในไมโคร VMลดความหน่วง และอำนวยความสะดวกในการสื่อสารกับฟังก์ชันที่โฮสต์ได้อย่างมีประสิทธิภาพ
เกี่ยวกับไฮเปอร์ไลท์
เมื่อเปรียบเทียบกับเครื่องเสมือนแบบดั้งเดิม Hyperlight โดดเด่นในเรื่องผลกระทบต่อประสิทธิภาพการทำงานที่ต่ำเนื่องจากเมื่อเทียบกับเวลาในการบูตเครื่องเสมือนมาตรฐานซึ่งใช้เวลาอย่างน้อย 120 มิลลิวินาที Hyperlight ช่วยให้สามารถสร้างไมโคร VM ได้ในเวลาเพียง 1 ถึง 2 มิลลิวินาทีทำให้เกิดการแยกการทำงานได้อย่างชัดเจน
นอกจากนี้ มีการกล่าวถึงด้วยว่าแม้ว่าสภาพแวดล้อม เช่น Wasmtime สำหรับ WebAssembly จะให้เวลาที่ต่ำกว่า 0,03 มิลลิวินาที แต่ Hyperlight พยายามที่จะมอบความสมดุลในอุดมคติระหว่างการแยกส่วนและฟังก์ชันการทำงานสำหรับแอปพลิเคชันที่ซับซ้อน
แตกต่างจากการตั้งค่าแบบดั้งเดิมไมโคร VM ใน Hyperlight ไม่ใช้เคอร์เนลหรือระบบปฏิบัติการแบบเต็มรูปแบบแต่เครื่องเสมือนจะถูกลดทอนให้เหลือเพียงโปรแกรมแบบครบวงในตัวเองซึ่งประกอบด้วยโค้ดฟังก์ชัน เคอร์เนลเฉพาะทางขั้นต่ำ และรันไทม์ที่จำเป็น โดยทำงานในพื้นที่หน่วยความจำเดียวที่มีซีพียูเสมือนที่จัดสรรไว้ โดยไม่มีการแบ่งพาร์ติชันกระบวนการหรือการแมปอุปกรณ์
Hyperlight ช่วยให้ปรับแต่งเหล่านี้ได้ในสถานการณ์ที่หลากหลาย: สำหรับการบูรณาการฟังก์ชันเกตเวย์ Internet of Things (IoT), การใช้งานในระบบอัตโนมัติทางอุตสาหกรรม, บริการคลาวด์ประสิทธิภาพสูง ฯลฯ
กระบวนการพัฒนาด้วย Hyperlight เกี่ยวข้องกับการเชื่อมโยงโค้ดแอปพลิเคชันหลักเข้ากับไลบรารี Hyperlight Hostซึ่งทำหน้าที่จัดการไมโคร VM โค้ดที่ทำงานแยกต่างหากภายในไมโคร VM เหล่านี้จะใช้ไลบรารี Hyperlight Guest ซึ่งมี API ที่จำเป็นสำหรับการโต้ตอบภายนอก และช่วยให้โค้ดทำงานได้อย่างอิสระจากระบบปฏิบัติการโฮสต์ ด้วยสถาปัตยกรรมนี้ Hyperlight มุ่งมั่นที่จะกำหนดนิยามใหม่ของการทำงานแบบแยกส่วน โดยนำเสนอแนวทางที่มีประสิทธิภาพและปลอดภัยสำหรับแอปพลิเคชันสมัยใหม่

คุณสมบัติสำคัญอย่างหนึ่งของ Hyperlight คือความสามารถในการสร้างปฏิสัมพันธ์แบบสองทิศทางระหว่างแอปพลิเคชันหลักและฟังก์ชันที่แยกออกมา ไม่เพียงแต่ช่วยให้แอปพลิเคชันสามารถเรียกใช้ฟังก์ชันที่อยู่ในสภาพแวดล้อมที่แยกออกมาได้เท่านั้น แต่ยังช่วยให้ฟังก์ชันเหล่านั้นสามารถเข้าถึงองค์ประกอบบางอย่างของโฮสต์ได้ด้วย อย่างไรก็ตามการเข้าถึงนี้ถูกควบคุมอย่างเข้มงวดเพื่อความปลอดภัยโดยค่าเริ่มต้น ฟังก์ชันที่แยกออกมาจะสามารถสื่อสารกับโฮสต์ได้ผ่าน API ขั้นต่ำที่อำนวยความสะดวกในการแลกเปลี่ยนข้อความเท่านั้น ข้อจำกัดนี้ช่วยให้มั่นใจได้ถึงสภาพแวดล้อมที่ควบคุมได้และลดความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับการแยกฟังก์ชัน
ในส่วนของแผนระยะยาวไมโครซอฟต์กล่าวถึงความตั้งใจที่จะเปลี่ยน Hyperlight ให้เป็น โครงการความร่วมมือ ที่กว้างขึ้นภายใต้การบริหารจัดการของ Cloud Native Computing Foundation (CNCF) การดำเนินการนี้มีเป้าหมายเพื่อส่งเสริมการพัฒนาที่เป็นกลางและเปิดกว้าง ปราศจากอิทธิพลเฉพาะของผู้จำหน่ายรายใดรายหนึ่ง CNCF ซึ่งดำเนินงานภายใต้ Linux Foundation นั้นรับผิดชอบโครงการสำคัญๆ เช่น Kubernetes, Containerd, Istio และ gRPC อยู่แล้ว ซึ่งแสดงให้เห็นถึงศักยภาพที่สำคัญในการจัดการโครงการริเริ่มทางเทคโนโลยีที่สำคัญภายในระบบนิเวศการประมวลผลแบบคลาวด์ ขั้นตอนนี้สัญญาว่าจะขยายขอบเขตของ Hyperlight และเสริมสร้างตำแหน่งของมันในฐานะเครื่องมือที่จำเป็นในด้านแอปพลิเคชันแบบคลาวด์เนทีฟ
ในส่วนของการรองรับแพลตฟอร์มในปัจจุบันนั้น สิ่งสำคัญคือต้องกล่าวถึงว่ามันรองรับสภาพแวดล้อมที่หลากหลายเพื่อให้มั่นใจถึงความอเนกประสงค์ บน Linux นั้น สามารถใช้งานร่วมกับไฮเปอร์ไวเซอร์ KVM และ mshv (Microsoft Hypervisor บน Azure Linux) ในขณะที่บน Windows นั้นใช้ WHP (Windows Hypervisor Platform) และ WSL2 ร่วมกับ KVM (ปัจจุบันยังไม่รองรับ macOS)
สุดท้ายนี้หากคุณสนใจเรียนรู้เพิ่มเติมคุณควรทราบว่าโครงการนี้พัฒนาด้วยภาษา Rust และอยู่ภายใต้ใบอนุญาต Apache 2.0คุณสามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้