د مجازی کولو او کانټینر کولو ترمنځ توپیر
په عصري کمپیوټر کې، د غوښتنلیکونو د چټک، موثریت او په اسانۍ سره د چاپیریالونو (پراختیا کونکي لیپټاپونو، دفتر سرورونو، او کلاوډ) ترمنځ د مهاجرت اړتیا مخ په زیاتیدو ده. دوه ټیکنالوژي چې ډیری وختونه دا اړتیاوې ملاتړ کوي مجازی کول او کانټینر کول دي. پداسې حال کې چې دواړه موږ ته اجازه راکوي چې په یو واحد فزیکي ماشین کې ډیری "چاپیریالونه" پرمخ یوسو، د دوی عملیات، د جلا کولو کچه، د سرچینو مصرف، او د کارونې سناریوګانې د پام وړ توپیر لري. دا مقاله په جامع ډول د مجازی کولو او کانټینر کولو ترمنځ توپیرونو په اړه بحث کوي ترڅو تاسو سره د سم حل غوره کولو کې مرسته وکړي.
۱. د مجازی کولو تعریف
مجازی کول یوه ټیکنالوژي ده چې یو واحد فزیکي ماشین ته اجازه ورکوي چې په یو وخت کې څو مجازی ماشینونه (VMs) پرمخ بوځي. هر VM د بشپړ کمپیوټر په څیر چلند کوي: دا خپل عملیاتي سیسټم، کرنل، مجازی ډرایورونه، او ځانګړي شوي سرچینې ځای (CPU، RAM، ذخیره) لري.
مجازی کول معمولا د هایپر وایزر په نوم سافټویر له لارې ترسره کیږي. هایپر وایزر د هارډویر سرچینو تخصیص او د مجازی ماشینونو اداره کولو مسؤلیت لري. د مشهور هایپر وایزرونو مثالونه پدې کې شامل دي:
- VMware ESXi
- مایکروسافټ هایپر-وي
- KVM (د کرنل پر بنسټ مجازی ماشین)
- مجازی بکس (د سیمه ایزو اړتیاوو لپاره عمومي)
د مجازی کولو سره، تاسو کولی شئ وینډوز او لینکس په یو واحد فزیکي سرور کې پرمخ بوځئ، یا د جلا کولو او څو کرایه دارۍ اړتیاو لپاره ډیری مختلف لینکس توزیعونه پرمخ بوځئ.
۲. د کانټینر کولو تعریف
کانټینریزیشن د غوښتنلیکونو د چلولو یوه طریقه ده چې په جلا شویو واحدونو کې چې کانټینرونه نومیږي. کانټینرونه "پیکج" غوښتنلیکونه او د دوی انحصارونه (کتابتونونه، د چلولو وختونه، ترتیبونه) نو دوی کولی شي په دوامداره توګه په ډیری چاپیریالونو کې پرمخ بوځي.
د VMs څخه مهم توپیر دا دی چې کانټینرونه بشپړ عملیاتي سیسټم نه لري. کانټینرونه د کوربه OS سره کرنل شریکوي (یا د VM کرنل که چیرې کانټینر د VM په سر روان وي). جلا کول د کرنل ځانګړتیاو لکه نوم ځایونو او cgroups (په لینکس کې) له لارې ترلاسه کیږي، کوم چې د پروسې جلا کول او د سرچینو محدودیتونه اداره کوي.
ترټولو مشهور کانټینر پلیټ فارمونه دا دي:
- ډاکر
- کانټینر شوی
– پوډمن
- د کوبرنیټس په څیر تنظیم کول
کانټینر کول عموما د مایکرو خدماتو، چټک ځای پرځای کولو، او عصري DevOps سناریوګانو لپاره کارول کیږي.
۳. د معمارۍ توپیرونه: VM د کانټینر په مقابل کې
مجازی کول (VM)
په VM کې، تاسو دا ډول پرتونه لرئ:
۱. فزیکي هارډویر
۲. هایپر وایزر
۳. VM (هر یو خپل OS + کرنل لري)
۵. غوښتنلیک
ځکه چې هر VM یو بشپړ عملیاتي سیسټم لري، VMs معمولا "درانه" وي مګر د دوی جلاوالی قوي دی او دوی د مختلف عملیاتي سیسټمونو چلولو لپاره انعطاف منونکي دي.
کانټینر کول (کانټینر)
په کانتینرونو کې، طبقې عموما دا دي:
۱. فزیکي هارډویر
۲. کوربه عملیاتي سیسټم (کرنل)
۳. د کانټینر چلولو وخت (د مثال په توګه ډاکر)
۴. کانټینر (غوښتنه + تړاوونه)
کانټینرونه سپک دي ځکه چې دوی د عملیاتي سیسټم نقل نه کوي. په پایله کې، دوی معمولا د جوړولو، چلولو او ځای پرځای کولو لپاره ګړندي وي.
۴. د سرچینو په مصرف کې توپیرونه
VMs ډیرې سرچینې مصرفوي ځکه چې:
- هر VM د OS لپاره RAM ته اړتیا لري
- د هایپر وایزر او د OS ډیسک عکس سر باندې شتون لري
- د OS بوټ کول وخت او سرچینې نیسي.
کانټینرونه ډیر اقتصادي دي ځکه چې:
- د کوربه کرنل شریکول
- د انځور اندازه نسبتا کوچنۍ ده (د OS VM انځور په پرتله)
- چټک پیل/درول (ډیری وختونه په ثانیو یا لږو کې)
که ستاسو هدف د لسګونو څخه تر سلګونو کوچنيو خدماتو چلول وي، نو کانټینرونه معمولا ډیر اغیزمن وي. په هرصورت، که تاسو بشپړ انزوا یا بل OS ته اړتیا لرئ، VMs ډیر اړونده دي.
۵. د بوټ او ځای پرځای کولو سرعت کې توپیر
یو VM د نوي کمپیوټر پیل کولو ته ورته دی: دا د OS بوټ کولو، خدماتو پیل کولو، او داسې نورو ته اړتیا لري. د VM د پیل وخت له لسګونو ثانیو څخه تر دقیقو پورې کیدی شي.
کانټینرونه د جلا غوښتنلیک پروسو چلولو په څیر دي. ډیری کانټینرونه کولی شي په ثانیو کې پیل شي، یا حتی لږ، د عکس او غوښتنلیک پیل کولو پورې اړه لري.
د CI/CD (دوامداره ادغام/دوامداره ځای پرځای کولو) له نظره، کانټینرونه ډیری وختونه غوره کیږي ځکه چې دوی د جوړونې-ټیسټ-ځای پرځای کولو پایپ لاین ګړندی کوي.
۶. د انزوا او امنیت کچه
انزوا یو له خورا مهمو عواملو څخه دی.
VM
- قوي انزوا ځکه چې د OS/کرنلونو جلا سرحد شتون لري.
– که چیرې یو VM له خطر سره مخ شي، نو اغیزه یې په هغه VM پورې محدوده وي (که څه هم لاهم د هایپروایزرز استحصال خطر شتون لري).
- د څو کرایه دارانو چاپیریالونو لپاره مناسب چې د باور کچه یې ټیټه وي (د مثال په توګه د مختلفو پیرودونکو کوربه توب کول).
لوښی
- د کوربه کرنل د شریکولو له امله جلا کول "ننوتلی" دی.
– که چیرې په کرنل کې زیان منونکی وي یا د کانټینر ضعیف ترتیب وي (د مثال په توګه، کانټینر د روټ په توګه روان وي، ډیر لوړ امتیازات)، کوربه ته د زیاتوالي خطر ډیر کیدی شي.
- د کانټینرونو امنیت په کلکه په سختیدو تکیه کوي: د بې ریښې کانټینرونو کارول، د وړتیا محدودیتونه، سیک کامپ/اپارمر/سیلینکس، د عکس سکین کول، او داسې نور.
په هرصورت، د کانټینرونو امنیت ایکوسیستم په چټکۍ سره وده کوي، او ډیری لوی سازمانونه د غوره کړنو سره کانټینرونه په خوندي ډول چلوي.
۷. د لېږد وړتیا او چاپیریالي ثبات
کانټینرونه د غوښتنلیک د لیږد وړتیا له پلوه غوره دي:
- د کانټینر انځورونه د غوښتنلیک پورې تړلي دي
- ډاډ ترلاسه کوي چې "هغه څه چې زما په ماشین کې چلیږي" په سرورونو او کلاوډ کې هم چلیږي
- د هغو پرمختیایي ټیمونو لپاره مناسب چې د چاپیریال ثبات ته اړتیا لري
VMs هم د پورټ ایبل دي، مګر درانه دي:
- د VM حرکت کول د بشپړ عملیاتي سیسټم حرکت کولو معنی لري
- د انځور فایل اندازه لویه کیدی شي
- چمتو کول ورو وي
په عصري عمل کې، ډیری وخت یو ترکیب رامنځته کیږي: VMs د باثباته او خوندي "نوډونو" په توګه کارول کیږي، او کانټینرونه د غوښتنلیک انعطاف لپاره د دوی په سر کې چلیږي.
۸. په حقیقي نړۍ کې کارول: کله باید کوم یو غوره کړئ؟
که چیرې مجازی کول وکاروئ:
۱. تاسو اړتیا لرئ چې مختلف عملیاتي سیسټمونه چل کړئ (د مثال په توګه وینډوز سرور او لینکس په یو وخت کې).
۲. تاسو د چاپیریالونو ترمنځ قوي انزوا او سرحدونو ته اړتیا لرئ.
۳. تاسو یو میراثي واحد اپلیکیشن چلوئ چې کانټینریز کول یې ستونزمن دي.
۴. ستاسو زیربنا لا دمخه د مجازی ماشین پر بنسټ ولاړه ده او د VM مدیریت بالغ دی.
کانټینریزایشن وکاروئ که:
۱. تاسو د مایکرو خدماتو غوښتنلیک یا عصري معمارۍ جوړوئ.
۲. تاسو ګړندي ځای پرځای کولو او متحرک پیمانه کولو ته اړتیا لرئ.
۳. تاسو د DevOps او CI/CD لپاره یو ثابت چاپیریال ته اړتیا لرئ.
۴. تاسو د ډیری کوچنیو خدماتو لپاره د سرچینو موثریت غواړئ.
۹. په مدیریت او تنظیم کې توپیرونه
VMs د مجازی کولو وسیلو لکه vCenter، OpenStack، یا Hyper-V مدیر په کارولو سره اداره کیږي. پداسې حال کې چې دوی کولی شي د پام وړ اندازه وکړي، د VMs چمتو کول ډیری وختونه ډیر غوښتونکي او ورو وي.
کانټینرونه معمولا د کوبرنیټس په څیر د آرکیسټریټرونو په کارولو سره په پیمانه اداره کیږي:
- اتومات پیمانه کول
- پخپله درملنه (کانټینر په اوتومات ډول بیا پیل کیږي)
- د داخلي بار توازن
- تازه معلومات او بیرته راګرځول
- اعلامیه (د YAML فایلونو په کارولو سره)
دا د کانټینریزیشن د کلاوډ-اصلي ایکوسیستم لپاره یو مناسب فټ جوړوي.
10. Kesimpulan
مجازی کول او کانټینر کول دواړه مهم دي، مګر دوی مختلف اړتیاوې پوره کوي. مجازی کول د لوړ انزوا او د مختلف عملیاتي سیسټمونو چلولو لپاره انعطاف سره بشپړ کمپیوټر چاپیریال چمتو کوي، مګر دا ډیر سرچینې ته اړتیا لري او د چمتو کولو لپاره ورو دی. په عین حال کې، کانټینر کول د غوښتنلیکونو چلولو لپاره یو سپک، ګړندی، او ډیر پورټ ایبل لاره وړاندې کوي، د DevOps، مایکرو خدماتو، او لوی پیمانه ځای پرځای کولو لپاره مثالی - د دې احتیاط سره چې ښه امنیت او تنظیم کولو تمرینونو ته اړتیا ده.
په نهایت کې، غوره انتخاب اکثرا "VMs یا کانټینرونه" نه وي، بلکې د دواړو ترکیب وي: د زیربنا بنسټ لپاره VMs، او د اغیزمن چلولو غوښتنلیکونو لپاره کانټینرونه. د دې بنسټیزو توپیرونو په پوهیدو سره، تاسو کولی شئ ډیر باثباته، خوندي، او د پیمانه وړ سیسټمونه ډیزاین کړئ چې ستاسو د سازمان اړتیاو سره سم وي.