که مو د AI لخوا جوړ شوي کوډ د خوندي چلولو په اړه څه لوستي وي، د microVM کلمه مو لیدلې ده، معمولاً د Firecracker تر څنګ. معمولاً یا د „سپک مجازي ماشین“ په توګه تشریح کېږي (سمه ده، خو ګټه نلري) یا د کرنل د دننه برخو له ډیاګرام سره. دا منځنۍ نسخه ده.
دوه زاړه انتخابونه، او ولې هېڅ یو نه برابرېږي
له هغو دوو شیانو پیل وکړئ چې microVM یې ترمنځ پروت دی.
کانټینر ستاسو پر ماشین د عادي پروسو یوه ډله ده چې کرنل ورسره „درواغ ویلو“ ته غاړه ایښې. namespaces دوی ته خپل فایل سیسټم، د پروسو لیست او شبکه ښیي؛ cgroups دا محدودوي چې څومره CPU او حافظه کارولی شي. په ملي ثانیو کې پیلېږي ځکه چې هېڅ نوی شی بوټ نه کېږي. خو د یو کوربه ټول کانټینرونه له یو کرنل سره خبرې کوي. د کرنل هغه بګ چې له یو کانټینر دننه څخه ورته لاس رسی وي، له ټولو څخه د وتلو لاره ده.
مجازي ماشین خپل کرنل راوړي. د کوربه CPU، د هارډویر مجازي کولو (په Linux کې KVM) له لارې، مېلمه داسې چلوي لکه خپل کمپیوټر چې ولري. پوله هایپروایزر دی، چې د کرنل له سلګونو سیسټم کالونو ډېر لږ څه ښکاره کوي. بیه یې درنښت دی. یو کلاسیک مجازي ماشین ټول PC تقلیدوي: فرموېر، PCI بس، USB کنټرولرونه، ګرافیک کارت، کله کله غږ کارت هم. له دې ټولو تېرېږي تر څو بوټ شي، له ثانیو تر دقیقو وخت نیسي، او هره نسخه لسګونه یا سلګونه میګابایټه اضافي بار لري.
یو تشبیه چې ښه حده سمه ده: کانټینرونه د یوې ودانۍ اپارتمانونه دي، چې بنسټ، نلونه او تارونه یې شریک دي. مجازي ماشینونه جلا کورونه دي. کورونه خوندي ګاونډیان دي، خو هېڅوک د 20 ثانیو لیدنې لپاره کور نه جوړوي.
څه شی Firecracker لرې کوي
دا Firecracker یو virtual machine monitor دی (هغه پروګرام چې پر KVM باندې مجازي ماشین چمتو کوي او چلوي)، په Rust لیکل شوی او له 2018 راهیسې خلاص سرچینه دی. د یوې دندې لپاره جوړ شو: پر شریک هارډویر د ډېرو لنډ ژوندو کاري بارونو چلول چې یو پر بل باور نلري. دې ته اکثراً د شیانو په لرې کولو رسېږي:
- نه فرموېر، نه د هارډویر لټون. کرنل مستقیم حافظې ته بار او پیلېږي. هېڅ شی د هغو وسیلو پسې نه ګرځي چې شتون نلري.
- ډېر کوچنی د وسیلو ماډل. یو شبکې کارت، یو بلاک وسیله، یو سریال کنسول او یو څو نور، ټول virtio (هغه وسیلې چې د مجازي ماشینونو لپاره ډیزاین شوې، نه د فزیکي وسیلو تقلید). نه USB، نه ګرافیک، نه PCI.
- کوچنی او له حافظې پلوه خوندي کوډبیس. د وسیلو تقلیدوونکی لږ کوډ یعنې د داسې بګ لپاره لږ ځایونه چې مېلمه کوربه ته ورسوي.
- پخپله د VMM شاوخوا پنجره. د Firecracker هره پروسه په chroot کې چلېږي، د خپلو سیسټم کالونو پر سر د seccomp فلټرونو او د خپلو سرچینو پر سر د cgroups له محدودیت سره. که کوم شی له مېلمه څخه ووځي هم، په پنجره کې به ولوېږي، نه پر کوربه.
هغه شمېرې چې پخپله پروژې خپرې کړې: یوازې په 125 ms کې د کارن فضا، او د هر microVM لپاره له 5 MiB لږ د حافظې اضافي بار. دا د لابراتوار غوره شمېرې دي؛ یو ریښتینی sandbox د ډیسک او شبکې چمتو کولو او دننه یو اجنټ ته هم اړتیا لري چې امرونه ومني، له همدې امله زموږ sandbox نږدې په یوه ثانیه کې چمتو کېږي. دا لا هم د کانټینر چټکتیا ته دومره نږدې دی چې د هرې دندې لپاره یو جوړ او وروسته یې وغورځوئ.
په عمل کې کانټینر او microVM
| کانټینر | Firecracker microVM | |
|---|---|---|
| کرنل | له کوربه سره شریک | خپل |
| له کوربه سره پوله | شریک کرنل ته سیسټم کالونه | هایپروایزر + کوچنی VMM |
| د پیل وخت | ملي ثانیې | ~0.1–1 ث |
| د هرې نسخې اضافي بار | ډېر لږ | څو MiB |
| وسیلې | هر څه چې کوربه یې ښکاره کړي | شبکه، ډیسک، کنسول |
| GPU | ممکن | نه |
| د څه لپاره ښه | باوري کوډ، د اپلیکیشن بسته کول | بېباوره کوډ، څو کرایهدارو کاري بارونه |
مهم قطار دویم دی. له کانټینر سره، پوښتنه „آیا دا کوډ تېښته کولی شي؟“ په دې بدلېږي چې „آیا د کوربه په کرنل کې چېرته د لاس رسي وړ بګ شته؟“. له microVM سره دا بدلېږي په „آیا په هایپروایزر یا څو مجازي وسیلو کې بګ شته؟“. دویمه سطحه ډېره کوچنۍ ده، او همدا هغه سطحه ده چې کلاوډ پلاټفارمونه یې د خپل څو کرایهدارو کوربهتوب لپاره دمخه ساتي.
له څه تېرېږئ
یو microVM وړیا لوړول نه دي.
- نه GPU او نه سکرین. دا د کوډ چلولو لپاره دی، نه د ډیسکټاپ یا ګرافیکي کاري بارونو لپاره.
- لږې وسیلې، لږ انعطاف. هر هغه څه چې ریښتیني هارډویر یا د کرنل ماډیولونو اوږد لیست ته تمه لري، دلته به آرام نه وي.
- پولې لا هم پالیسۍ ته اړتیا لري. یو microVM چې وتونکی ټرافیک یې خلاص وي لا هم داسې ټرافیک لېږلی شي چې تاسو یې نه غواړئ؛ هغه چې ستاسو API کیلي دننه ولري لا هم یې لیک کولی شي. جلاوالی کوربه له مېلمه ساتي، نه ستاسو رازونه له هغه کوډ څخه چې تاسو ورته سپارلي.
زموږ sandboxes یې څنګه کاروي
هر EQVPS sandbox یو Firecracker microVM دی له خپل کرنل سره، له 0.25 vCPU او 512 MB تر 8 vCPU او 16 GB پورې. له Python 3.12، Node.js 22، bash، git او curl سره راځي، وتونکی انټرنیټ لري او هېڅ راتلونکی پورټ نلري. لنډمهالي sandboxes د کار له پای وروسته ړنګېږي؛ دایمي sandboxes خپل ډیسک ساتي، او ودرول (pause) د microVM یو انځور ډیسک ته لیکي نو تر بیا پیلېدو پورې هېڅ لګښت نلري. درول شوي سنیپ شاټونه ۱۴ ورځې ساتل کېږي. وروسته sandbox ړنګېږي او id یې 410 sandbox_deleted راګرځوي.
موږ د کانټینرونو پر ځای microVM د یو دلیل لپاره غوره کړل: هغه کوډ چې په sandbox کې چلېږي، د ډیزاین له مخې، هغه کوډ دی چې هېچا کتلی نه دی. د AI اجنټ محصول، د یو ناآشنا pull request، د ماډل لخوا لیکل شویو زرو پروګرامونو بنچمارک. د دې لپاره، خپل کرنل هغه پوله ده چې د پیسو ورکولو ارزښت لري. هغه څه چې موږ یې شاوخوا ایښي — ټیرفونه، کوټې، د همغږي امرونو لپاره د 55 ثانیو محدودیت — په د sandboxes اسنادو کې دي.
که غواړئ دا پوله له نورو انتخابونو سره ژوره پرتله کړئ، د بېباوره کوډ لپاره د جلاوالي کچې پروسې، کانټینرونه، microVM او بشپړ مجازي ماشینونه یو بل ته څنګ په څنګ ږدي. او که په ثانیه بیې ستاسو پام راجلب کړی، په ثانیه بلینګ په رښتیا څنګه کار کوي حساب ښیي.
تبصرې
لا تبصرې نشته. لومړی اوسئ.