A Modal Sidecars konténerekkel választja szét az ügynökök kódját

A Modal bemutatta a Sidecars funkciót, amely ugyanazon a gépen, mégis elkülönítve futtat megbízható szolgáltatásokat a Sandboxok mellett. A vállalat szerint a megoldás legalább háromszor gyorsabb kommunikációt tesz lehetővé, mint a különálló Sandboxok használata.
- A Sidecars elkülönített konténereket futtat a fő Sandbox mellett.
- A Modal szerint a kommunikáció legalább háromszor gyorsabb különálló Sandboxokhoz képest.
- A Sidecarok hitelesítő adatok, proxyk és ügynökvezérlő logika futtatására használhatók.
- Egy Sandboxhoz legfeljebb 250 Sidecar tartozhat.
- A funkció béta állapotban érhető el.
Az ügynökök miatt új biztonsági határra van szükség
A Modal közlése szerint ügyfelei Sandboxokat használnak olyan kód futtatására, amelyet végfelhasználók, újabban pedig főként ügynökök írnak. A vállalat szerint a gVisor és a Firecracker közel nyolc éve megoldást ad az elkülönítésre, ezek azonban egy korábbi bizalmi modellhez készültek.
A probléma abból adódik, hogy a Sandboxokban gyakran megbízható kód is fut a nem megbízható, például ügynök által létrehozott kód mellett. Egy kódoló ügynök vezérlőrétege hozzáférhet hitelesítő adatokhoz, olvashat nem megbízható webes tartalmakat, és hálózati kapcsolatot is kezdeményezhet. A Modal ezt a kombinációt a Simon Willison által használt „halálos hármas” példájaként írja le, amely adat kiszivárogtatásához vezethet.
Külön konténer, helyi kommunikáció
A Sidecars a fő Sandbox mellett futó, elkülönített konténer. A Modal szerint a két környezet között ugyanaz a biztonsági határ működik, mint különálló Sandboxok esetén, gVisorral vagy virtuális gépekkel, attól függően, milyen futtatókörnyezetet adnak meg a Sandbox.create() hívásakor.
Így az ügynök által generált kód a fő Sandboxban futhat, miközben a hitelesítő adatok kezelése, a proxy, a vezérlőlogika vagy a megfigyelés egy Sidecarban kap helyet. A konténerek ugyanazon a gépen futnak, és belső TCP vagy UDP hálózaton, név alapján érhetik el egymást.
A Modal belső mérése szerint a Sandbox és a hozzá tartozó Sidecar közötti kommunikáció legalább háromszor gyorsabb, mint az azonos régióban futó különálló Sandboxok közötti kommunikáció. A medián utazási idő egy hívásnál 0,58 ezredmásodperc volt a Sidecarnál, szemben a külön Sandbox HTTPS-kapcsolatának 2,6 ezredmásodpercével. A 99. percentilisnél az értékek 1,4, illetve 44 ezredmásodpercet tettek ki. Száz hívás teljes ideje 0,6, illetve 1,2 másodperc volt.
Rugalmasan indítható és szabályozható
A Sidecarokat a Modal SDK-n keresztül, futás közben lehet létrehozni. A fő Sandboxban futó kód nem hozhatja létre és nem módosíthatja őket. Egy Sandboxhoz legfeljebb 250 Sidecar tartozhat, a két típus pedig megosztja egymással a CPU- és memóriakapacitást.
Minden Sidecarnak saját kimenő hálózati szabályzata lehet, a Sandboxétól függetlenül. A Sandbox forgalma egy proxy Sidecaron keresztül is kényszeríthető. A Sidecarok a Sandbox teljes élettartama alatt leállíthatók és lecserélhetők, a fájlrendszerük pedig pillanatképként menthető, majd másik Sandbox vagy Sidecar indításához használható.
A Ramp saját kimenő proxyját építette rá
A Modal példaként a Ramp Inspect nevű kódoló ügynökét említi. A vállalat szerint az Inspect írja a Ramp összes összevont pull requestjének több mint 75 százalékát, és minden munkamenet saját Modal Sandboxban fut.
A Ramp Sidecarra építette saját kimenő proxyját, amely figyeli és szabályozza az ügynök külső kapcsolatát. Zach Bruggeman, a Ramp vezető szoftvermérnöke szerint „pontosan tudnunk kell, mihez fér hozzá a kódoló ügynök, és le kell tudnunk állítani, ha olyasmit ér el, amit nem szabadna”. Hozzátette, hogy a Sidecarral saját szabályokat használhatnak, a forgalmat a proxyn keresztül kényszeríthetik, és a helyi futtatás nem jelent további hálózati ugrást.
A Sidecars a Modal bejelentése szerint béta állapotban érhető el. A vállalat külön példákat is kínál az ügynök vezérlőlogikájának és a kód végrehajtásának szétválasztására, támogató szolgáltatások futtatására, valamint Sandbox HTTPS-forgalmának proxyzására.
Modal: Sidecars: A low-latency trust boundary for Sandboxes


