„په sandbox کې یې وچلوه“ یو لارښوونه ښکاري. په عمل کې خلک له دې څخه د څلورو عامو پولو یوه مراد اخلي، او دا ډېر بېلابېل شیان دروي. د غلطې پولې انتخاب یا تاسو بېدفاع پرېږدي، یا هره چلونه له اړتیا ډېره ورو او ګرانه کوي.
دا پرتله فرض کوي چې کوډ په رښتیا بېباوره دی: د ژبې ماډل لیکلی، کاروونکي لېږلی، یا د داسې چا په pull request کې راغلی چې نه یې پېژنئ. هغه کوډ چې تاسو پخپله لیکلی بېلې اړتیاوې لري.
څه غلط کېدای شي
مخکې له دې چې پولې پرتله کړو، ګټوره ده ووایو چې د څه لپاره دي. بېباوره کوډ کولی شي:
- هغه څه ولولي چې باید یې ونه لولي: د چاپېریال متغیرونه، SSH کیلي، ستاسو د کور فولډر فایلونه، د کلاوډ د میټاډیټا endpoints.
- سرچینې ختمې کړي: نه ختمېدونکې لوپ، fork تر هغه چې ماشین ودرېږي، ډیسک ډکول.
- له شبکې ناوړه ګټه واخلي: نور کوربه سکین کړي، سپیم ولېږي، کریپټو ماین کړي، ستاسو داخلي خدماتو ته کال وکړي.
- پاتې شي: یو cron job یا خدمت نصب کړي چې له دندې وروسته هم پاتې وي.
- وتښتي: د لاندې پوړ له بګ څخه ګټه واخلي تر څو پخپله پر کوربه کوډ وچلوي.
لاندې هره کچه له دې څخه ځینې اداره کوي او ځینې نه.
لومړۍ کچه: پروسه
تر ټولو ساده sandbox یوه ماشومه پروسه ده: له مهال سره subprocess.run، ښايي د جلا کاروونکي لاندې، او که دقیق یاست د سرچینو له محدودیتونو او seccomp فلټر سره.
دروي: بېلګامه وخت (مهال)، د سرچینو د ختمېدو یوه برخه (محدودیتونه)، ځینې خطرناک سیسټم کالونه (seccomp). نه دروي: د هر هغه څه لوستل چې هغه کاروونکی یې لوستلی شي، د شبکې لاس رسی، له هر هغه ځای څخه پاتې کېدل چې کاروونکی پکې لیکلی شي، او د کرنل هر بګ. عامه ناکامي: کوډ داسې فایل لولي چې تاسو هېر کړی و چې د لوستلو وړ دی، یا یو „محدود“ ژبهییز تفسیرګر د تېښتې لاره لري. تاریخ له داسې ژبهییزو sandboxes ډک دی چې ټینګ پاتې نه شول.
د پیل وخت عملاً صفر دی. د هغه کوډ لپاره چې تاسو لیکلی ښه دی؛ د هغه کوډ لپاره چې تاسو نه دی لیکلی پوله نه ده.
دویمه کچه: کانټینر
په کانټینر کې، namespaces کوډ ته د فایلونو، پروسو او شبکې خپل لید ورکوي؛ cgroups CPU او حافظه محدودوي؛ لرې شوې capabilities او seccomp هغه څه تنګوي چې له کرنل څخه یې غوښتلی شي.
دروي: د کوربه فایلونه لوستل (مګر دا چې ماونټ شوي وي)، نورې پروسې لیدل، بېحده د سرچینو کارول، او که کانټینر وروسته وغورځول شي د پاتې کېدو ستونزې ډېره برخه. نه دروي: په شریک کوربه کرنل کې بګ. د ماشین ټول کانټینرونه له یو کرنل سره خبرې کوي، نو د کرنل د لاس رسي وړ کمزوري د وتلو لاره ده. عامه ناکامي: تنظیمات، نه عجیب exploits. privileged کانټینر، د container runtime ساکټ چې دننه ماونټ شوی، د کوربه شبکه چې „یوازې د ډیبګ لپاره“ فعاله شوې. هر یو په چوپتیا پوله لرې کوي.
د پیل وخت ملي ثانیې دی. پیاوړي شوي ډولونه هم شته، په شمول د کارن فضا کرنلونه چې سیسټم کالونه مخکې له دې چې کوربه ته ورسېږي نیسي، د چټکتیا او مطابقت د یو څه بیې په بدل کې. د هغو خلکو د کوډ لپاره چې پرې باور لرئ، ښه تنظیم شوی کانټینر معقول ډیفالټ دی.
درېیمه کچه: microVM
یو microVM د بشپړ مجازي ماشین په څېر د هایپروایزر لاندې خپل کرنل چلوي، خو نږدې ټول تقلید شوی هارډویر یې لرې شوی. Firecracker تر ټولو پېژندل شوې بېلګه ده.
دروي: هر هغه څه چې کانټینر یې دروي، جمع د شریک کرنل ستونزه. کوربه ته د رسېدو لپاره، کوډ باید هایپروایزر یا له څو مجازي وسیلو څخه یوه ماته کړي، چې د کرنل د سیسټم کالونو له انټرفیس ډېره کوچنۍ سطحه ده. نه دروي: له هغه څه ناوړه ګټه چې تاسو یې ورته سپارئ. خلاص وتونکی ټرافیک لا هم ناوړه کارول کېدای شي؛ هغه رازونه چې دننه یې اچوئ لا هم لیک کېدای شي. عامه ناکامي: پالیسي، نه جلاوالی. یو څوک د تولید ټوکن „د دې لپاره چې ازموینې کار وکړي“ ورکوي، یا وتونکی ټرافیک په داسې کاري بار کې بېمحدودیته پرېږدي چې ورته اړتیا نلري.
د پیل وخت د ثانیې له یوې برخې تر نږدې یوې ثانیې دی، له څو میګابایټه اضافي بار سره. دومره چټک دی چې د هرې دندې لپاره یو جوړ او وروسته یې ړنګ کړئ، چې د پاتې کېدو ستونزه هم حلوي: د بېرته راتلو لپاره هېڅ نه پاتې کېږي.
څلورمه کچه: بشپړ مجازي ماشین
یو عادي مجازي ماشین، یا VPS، د microVM په څېر د یو ډول پوله لري: د هارډویر مجازي کول او هایپروایزر. توپیر یې په شاوخوا هر څه کې دی: بشپړ د وسیلو ماډل، بشپړ عامل سیسټم، که وغواړئ عامه IP، او د ژوند دوره چې په ورځو یا میاشتو اندازه کېږي.
دروي: د microVM په څېر د ستونزو همغه ډولونه، یو څه لویې د برید سطحې سره ځکه چې ډېر هارډویر تقلیدېږي. نه دروي: د خپل شبکې پېژند څخه ناوړه ګټه. هغه مجازي ماشین چې عامه IP لري او ناوړه کوډ چلوي، خپل IP تور لیست ته ورکوي، چې دا مهم دی که همغه IP ستاسو بریښنالیک هم لېږي. (که دا دمخه پېښ شوی، وګورئ کله چې ستاسو IP په تور لیست کې وي څه وکړئ.) عامه ناکامي: ډېر ژوند کوي. هغه مجازي ماشین چې د یوې ازموینې لپاره جوړ شوی، اعتبارنامې او حالت راټولوي، او ورو ورو په هغه باوري ماشین بدلېږي چې باید یې ساتنه کړې وای.
د پیل وخت له لسګونو ثانیو تر دقیقو دی، او بلینګ معمولاً میاشتنی وي. دا د هغه اوږدمهاله خدمت لپاره سمه بڼه ده چې راتلونکو پورټونو ته اړتیا لري، او د 20 ثانیو کوډ چلولو لپاره غلطه بڼه.
پرتله
| پروسه | کانټینر | microVM | بشپړ مجازي ماشین | |
|---|---|---|---|---|
| خپل کرنل | نه | نه | هو | هو |
| اصلي پوله | د کاروونکي اجازې | namespaces + شریک کرنل | هایپروایزر، ډېر کوچنی د وسیلو ماډل | هایپروایزر، بشپړ د وسیلو ماډل |
| د پیل وخت | ~0 | ms | ~0.1–1 ث | 10 ث – دقیقې |
| اضافي بار | هېڅ | لږ | څو MiB | لسګونه–سلګونه MiB |
| له هرې دندې وروسته غورځول | اسانه | اسانه | اسانه | ورو، ګران |
| راتلونکي پورټونه / عامه IP | د کوربه | د کوربه | معمولاً نشته | هو |
انتخاب
- هغه کوډ چې تاسو یا ستاسو ډلې لیکلی: پروسه یا کانټینر بس دی.
- ستاسو د خپلو څانګو لپاره دوامداره یوځای کول (CI): ستاسو پر runner کانټینر.
- د اجنټ لخوا جوړ شوی کوډ، د کاروونکو لېږل شوي شیان، له بهر pull requests: د هرې دندې لپاره یو microVM، چې وروسته ړنګېږي.
- بېباوره خدمت چې باید اړیکې ومني یا اونۍ وچلېږي: جلا مجازي ماشین له خپل IP سره، له هر هغه څه لرې چې ستاسو اعتبارنامې ساتي یا ستاسو بریښنالیک لېږي.
هر څه چې غوره کوئ، پر هغه دوه قاعدې پلي کېږي: دننه هېڅ داسې څه مه ږدئ چې د کوډ لیکوال ته به مو نه ورکول، او په پوهه پرېکړه وکړئ چې شبکه څه کولی شي.
زموږ محصولات چېرته دي
د درېیمې کچې لپاره موږ کوډ sandboxes چلوو: Firecracker microVM چې نږدې په یوه ثانیه کې پیلېږي، له وتونکي انټرنیټ سره، بې له راتلونکو پورټونو او په ثانیه بلینګ سره. دوی دقیقاً د پورته درېیم ټکي لپاره دي؛ د MCP ساتونکي پاڼه تشریح کوي چې څنګه محدود کړئ چې یو اجنټ ورسره څه کولی شي. د څلورمې کچې لپاره، یو VPS لکه د AI agent پلان تاسو ته په میاشت بشپړ ماشین درکوي. په د AI اجنټانو لپاره sandbox کې عملي بېلګې د microVM نمونه له پیل تر پایه ښیي، او AI اجنټان له زیربنا څخه څه ته اړتیا لري جلاوالی د څو اړتیاوو له جملې یوه ګڼي.
تبصرې
لا تبصرې نشته. لومړی اوسئ.