Microsoft tutvustas projekti Hyperlight, mis arendab hüperviisorit, mis on mõeldud rakendustesse integreerimiseks, et isoleerida usaldamatut koodi või erikaitset vajavaid ülesandeid. Hüperviisor on kujundatud jagatud teegina, mis võimaldab teatud funktsioonide täitmist kergetes virtuaalmasinates (micro-VM) ning organiseerib nende funktsioonide vahelise andmevahetuse. Projekti kood on kirjutatud Rustis ja selle litsents on Apache 2.0.
Traditsiooniliste käivitamisega võrreldes virtuaalmasinad Hyperlight võimaldab saavutada madalat latentsust ja minimaalset ülehead. Hyperlightis on virtuaalmasinate loomise latentsus 1-2 millisekundit, mis võimaldab kasutada funktsioonide käivitamise tasemel isoleerimist. Võrdluseks, tavaliselt virtuaalmasina käivitamine kestab vähemalt 120 millisekundit, samas kui isoleeritud sandbox-keskkonna käivitamine WebAssembly koodi täitmiseks Wasmtime töötlustehnoloogia abil kestab 0,03 millisekundit.
Linuxi platvormil toetatakse KVM ja mshv (Microsoft Hypervisor Azure Linuxis) hüperviisoreid, Windowsi platvormil aga WHP (Windows Hypervisor Platform) ja WSL2 (Windows Subsystem for Linux 2) koos KVM-iga. macOS platvormi veel ei toetata. Erakordne südamik ja opsüsteem ei virtuaalmasinas ole kasutusel. Virtuaalmasina koormus moodustatakse iseseisva laadimisprogrammina, mis sisaldab käivitatava funktsiooni koodi koos runtime'i ümbrise ja spetsialiseeritud minimaalsete südamikuga. Virtuaalmasinas kasutatakse ühte lineaarset mälufragmendi ning sellele on määratud virtuaalne CPU, ilma seadmete kaardistamiseta ja ilma protsesside eraldamiseta.
Arendamisprotsess põhineb põhikoodi sidumisel Hyperlight Host raamatukoguga, mis koordineerib virtuaalmasinate käivitamist, ja isoleeritud režiimis käivitatavate funktsioonide (külaliste funktsioonide) koodi sidumisel Hyperlight Guest raamatukoguga, mis pakub API-d rakenduse välise poolega suhtlemiseks ning võimalusi koodi eraldi käitamiseks ilma opsüsteemi keskkonnata.

Pakutav kiht hostrakenduse ja isoleeritud funktsioonide vahel võimaldab mitte ainult kutsuda isoleeritud funktsioone hostrakendustest, vaid ka vastupidi, pääseda hostrakenduste funktsioonidele isoleeritud funktsioonidelt. Välistatud funktsioonide loetelu, mida on lubatud kutsuda isoleeritud funktsioonidelt, on rangelt reguleeritud. Vaikimisi on isoleeritud funktsioonide juurdepääs piiratud minimaalsete API-dega, mis võimaldavad edastada sõnumeid hostrakendusele.
Tulevikus plaanib Microsoft projekti üle anda mittetulundusühingule Cloud Native Computing Foundation (CNCF) ühiseks arendamiseks neutraalses keskkonnas, mis ei ole sõltuv erinevatest tootjatest. CNCF tegeleb Linux Foundationi all ja juhib selliste projektide arendamist nagu Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio ja gRPC.
Allikas: opennet.ru
