اگر با Ù…Ùاهميم مجازي سازي آشنا هستيد Øتما، Øتما نام ماشين مجازي سازي يا Virtual Machine همچنين كانتينر به گوش شما خورده است. اين دو تكنولوژي علاوه بر تÙاوت هاي متمايزي كه با يكديگر دارند، هر دو كارايي Ùناوري اطلاعات را بهبود بخشيده Ùˆ هم قابليت Øمل برنامهها را Ùراهم ميكنند. ما در اين مقاله قصد داريم تا شما را با Ù…Ùهوم هر دو تكنولوژي Ùˆ تÙاوت ماشين مجازي Ùˆ كانتينرها آشنا نماييم.
ماشين هاي مجازي چيست؟
ماشين هاي مجازي، Virtual Machine يا VMs يك Ùناوري براي ساخت Ù…Øيط هاي Ù…Øاسباتي مجازي است كه مانند يك كامپيوتر مجازي عمل كرده Ùˆ بر روي هر سيستم عاملي كه داريد كار ميكند. در واقع VMs يك شبيه ساز از كامپيوتر واقعي است كه برنامه ها در آن اجرا مي شوند. اين تكنولوژي به شما اين امكان را مي دهد تا بتوانيد ماشين هاي متعددي را با چندين سيستم عامل بر روي يك كامپيوتر يا سرور اجرا كنيد.
ماشين هاي مجازي روي يك كامپيوتر Ùيزيكي توسط Hypervisor اجرا مي شوند. در واقع هايپروايزر به مجموعه نرم اÙزار، ميان اÙزار Ùˆ سخت اÙزاري Ú¯Ùته مي شود كه VMS ها بر روي آن اجرا مي شوند. به زبان ساده Hypervisor به شما امكان اجرا از چندين سيستم عامل كه اصطلاØاً guest ناميده مي شود را در يك زمان روي يك سيستم كه host ناميده مي شود را Ùراهم ميكند.
ماشينهاي مجازي بستههاي نرماÙزاري سنگيني هستند كه دستگاههاي سختاÙزاري Ø³Ø·Ø Ù¾Ø§ÙŠÙŠÙ† مانند CPUØŒ هارد ديسك Ùˆ ساير دستگاههاي شبكه را ارائه ميكنند. ماشينهاي مجازي همچنين ممكن است شامل يك پشته نرماÙزار مكمل براي اجرا بر روي سختاÙزار شبيهسازي شده باشند. اين بستههاي سختاÙزاري Ùˆ نرماÙزاري با هم يك عكس Ùوري كاملاً كاربردي از يك سيستم Ù…Øاسباتي ايجاد ميكنند.
به عبارت ديگر اين كامپيوتر مجازي ميتواند همه قابليت ها و امكاناتي را كه در يك سيستم كامپيوتري واقعي وجود دارد به شكل شبيه سازي شده به شما عرضه كند.
مزاياي Virtual Machine عبارتند از:
- دسترسي همه منابع سيستم عامل در برنامه ها.
- عملكرد عالي
- داراي ابزارهاي مديريت قوي
- داراي ابزارها و كنترل هاي امنيتي
- توانايي اجراي سيستم عامل هاي مختل٠بر روي يك ماشين Ùيزيكي.
- صرÙÙ‡ جويي در هزينه در مقايسه با اجراي ماشين هاي Ùيزيكي جداگانه.
Ù…Øبوب ترين ابزارهاي VM شامل:
- VMware Workstation Player
- VirtualBox
- پروژه Xen
- Microsoft Hyper-V
Containers چيست؟
تاريخچه كانتينرها به ده ها سال پيش بر مي گردد. اما اكثرا معتقدند كه عصر كانتينر مدرن در سال 2013 با معرÙÙŠ DockerØŒ كه يك پلت Ùرم منبع باز براي ساخت، استقرار Ùˆ مديريت برنامه هاي كاربردي كانتينري آغاز شده است. آنها مشكل ناهماهنگي Ù…Øيطي را ØÙ„ مي كنند. توسعهدهندگان معمولاً كد را به صورت Ù…Øلي مينويسند، مثلاً روي لپتاپ خود، سپس آن كد را روي سرور مستقر ميكنند. هر گونه تÙاوت بين آن Ù…Øيط ها، نسخه هاي نرم اÙزار، مجوزها، دسترسي به پايگاه داده Ùˆ غيره منجر به باگ مي شود.
با كانتينرها، توسعهدهندگان ميتوانند يك واØد قابل Øمل Ùˆ بستهبندي شده ايجاد كنند كه شامل تمام وابستگيهاي مورد نياز براي اجراي آن واØد در هر Ù…Øيطي باشد، Ú†Ù‡ Ù…Øلي، توسعه، آزمايش يا توليد باشد.معماريهاي ميكروسرويسها براي توسعه برنامههاي كاربردي از اين رونق كانتينري تكامل ياÙتهاند. با كانتينرها، برنامهها را ميتوان به كوچكترين اجزاي خود يا «Ø³Ø±ÙˆÙŠØ³Ù‡Ø§ÙŠÙŠ» تقسيم كرد كه يك هد٠واØد دارند، Ùˆ اين سرويسها ميتوانند بهجاي يك واØد يكپارچه، مستقل از يكديگر توسعه Ùˆ مستقر شوند.
كانتينرها بسته هاي نرم اÙزاري سبك وزني هستند Ùˆ مانند ماشين هاي مجازي منابع پردازشي خاص خود را از هاست درياÙت مي كنند. از آنجايي كه كانتينرها از Hypervisor استÙاده نميكنند، امكان تأمين سريعتر منابع Ùˆ دسترسي سريعتر به برنامههاي جديد را Ùراهم مي كند.
همچنين Øجم كانتينرها خيلي كمتر از ماشينهاي مجازي است Ùˆ يك سرور به سادگي قادر خواهد بود تعداد كانتينر به مراتب بيشتري نسبت به ماشين مجازي را روي خود ميزباني كند Ùˆ Øجم هر ماشين مجازي ممكن است به چند گيگابايت برسد اما Øجم اكثر كانتينرها نهايتاً به چند صد مگابايت خواهد رسيد. اين در عمل به اين معني است كه شما مي توانيد دو تا سه برابر بيشتر برنامه هاي كاربردي را روي يك سرور با كانتينر قرار دهيد تا با VM. در مقايسه با كانتينرها، VM ها چند دقيقه طول مي كشند تا كار كنند Ùˆ بزرگتر از يك كانتينر هستند كه بر Øسب گيگابايت در مقابل مگابايت اندازه گيري مي شود.
كانتينرها در بالاي يك سرور Ùيزيكي Ùˆ سيستم عامل ميزبان آن معمولاً لينوكس يا ويندوز قرار دارند. هر كانتينر هسته سيستم عامل ميزبان Ùˆ معمولاً باينري ها Ùˆ كتابخانه ها را نيز به اشتراك مي گذارد. به اشتراك گذاري منابع سيستم عامل، مانند كتابخانه ها، نياز به باز توليد كد سيستم عامل را به طور قابل توجهي كاهش مي دهد. يك سرور مي تواند بارهاي كاري متعددي را با يك نصب سيستم عامل اجرا كند.
مزاياي Container عبارتند از:
- كاهش منابع مديريت Ùناوري اطلاعات
- چرخش سريعتر
- اندازه كوچكتر به اين معني است كه يك ماشين Ùيزيكي مي تواند كانتينرهاي زيادي را ميزباني كند.
- به روز رساني هاي امنيتي كاهش ياÙته Ùˆ ساده
- كد كمتري براي انتقال، انتقال و آپلود بارهاي كاري.
ابزار Container شامل:
- Linux Containers (LXC)
- Docker
- Kubernetes
تÙاوت ماشين مجازي Ùˆ كانتينر:
تÙاوت ماشين مجازي Ùˆ كانتينر در قلب بØØ« بين معماري سنتي Ùناوري اطلاعات Ùˆ شيوههاي DevOps معاصر قرار ميگيرد. ماشينهاي مجازي بسيار Ù…Øبوب Ùˆ Ù…Ùيد بوده Ùˆ هستند. در همين Øال، كانتينرها، هم بسيار جذاب هستند. هم كانتينرها Ùˆ هم ماشين هاي مجازي مزايا Ùˆ معايبي دارند Ùˆ تصميم نهايي به نيازهاي خاص شما بستگي دارد.
ماشين هاي مجازي انتخاب بهتري براي اجراي برنامه هايي هستند كه به تمام منابع و عملكرد سيستم عامل نياز دارند، زماني كه شما نياز به اجراي چندين برنامه بر روي سرور داريد يا سيستم عامل هاي متنوعي براي مديريت داريد. اگر يك برنامه يكپارچه موجود داريد كه قصد نداريد يا نيازي به بازسازي آن در ريزسرويس ها نداريد، VM ها به خوبي به كاربرد شما ادامه خواهند داد.
زماني كه بزرگترين اولويت شما به Øداكثر رساندن تعداد برنامه ها يا خدماتي است كه روي Øداقل تعداد سرور اجرا مي شوند Ùˆ زماني كه به Øداكثر قابليت Øمل نياز داريد، كانتينرها انتخاب بهتري هستند. اگر در Øال توسعه يك برنامه جديد هستيد Ùˆ مي خواهيد از معماري ميكروسرويس براي مقياس پذيري Ùˆ Øمل Ùˆ نقل استÙاده كنيد، كانتينرها راه ØÙ„ مناسبي هستند. كانتينرها وقتي صØبت از توسعه اپليكيشن بومي ابري بر اساس معماري ميكروسرويس مي شود، مي درخشند.
همچنين ميتوانيد كانتينرها را بر روي يك ماشين مجازي اجرا كنيد، كه اين سؤال را كمتر به عنوان يك يا يا يا بيشتر تمريني براي درك اين كه كدام Ùناوري براي بار كاري شما منطقيتر است، ميسازد.
به طور خلاصه:
ماشينهاي مجازي به شركتها كمك ميكنند تا با اÙزايش تعداد ماشينهايي كه ميتوانيد از مقدار Ù…Øدودي سختاÙزار Ùˆ نرماÙزار استÙاده كنيد، از منابع زيرساختي خود نهايت استÙاده را ببرند. كانتينرها به شركتها كمك ميكنند تا با Ùعال كردن ميكروسرويسها Ùˆ شيوههاي DevOpsØŒ بيشترين استÙاده را از منابع توسعه ببرند.
انتخاب بين داكر و VMware:
همانطور كه تا اينجاي مقاله مطالعه كرديد Ùˆ متوجه شديد كه داكر Ùˆ VMware مكمل يكديگر ميباشند Ùˆ انتخاب بين يكي از اين دو كار اشتباهي ميباشد Ùˆ مي بايست VMware را در كنار داكر استÙاده كنيم. با اين Øال اگر شما قصد داريد تا يك برنامه منظم Ùˆ يكپارچه را از هاست (HOST) Ùˆ به وسيله كانتينر ها انتقال دهيد اما هزينه هاي مالي آن براي شما غير قابل پرداخت است ماشين VMware بهترين انتخاب براي شما است تا بتوانيد اين دوÙناوري را در كنار يكديگر استÙاده نماييد.
علاوه بر اين، اگر تمايل داريد تا برنامه شما Ùضاي كاربري خاص خود را داشته باشد Ùˆ با isolation در Ø³Ø·Ø OS از isolation مداوم برخوردار باشد، VMware در اين مورد نيز مناسب تر خواهد بود چون VMware با Ùناوري هايي مانند Intel VT يا AMD-V كار ميكندودر آخر، اگر Ùناوري اطلاعات شما نياز به اجرا Ùˆ مديريت چندين سيستم عامل Ùˆ دسترسي به عملكرد Ùˆ منابع كامل سيستم عامل داشته باشد، باز هم ماشين هاي مجازي راه ØÙ„ ايده آلي براي كسب Ùˆ كار شما خواهند بود.
از جهت ديگر، براي موقعيت ها Ùˆ شرايطي كه تمركز روي برنامه است يا سيستم عاملي خاص براي برنامه شما مد نظر نيست، Docker Container ايده آل خواهند بود. اگر شما در Øال اجراي معماري توزيع شده با هر برنامه كاربردي به عنوان ميكرو سرويس Ùˆ Docker براي استقرار اين نوع برنامه هاي ايده آل هستيد.
هر برنامه در كانتينر جداگانهي مخصوص خود اجرا مي شود، Ùˆ سيستم عامل هايي مانند Kubernetes به شما در مديريت بخش هاي container كه ممكن است روي سرورهاي بيشماري در ابر مديريت شوند، كمك ميكنند.صر٠نظر از اين كه از Ú†Ù‡ ابزاري استÙاده ميكنيد، Docker Ùˆ VMware ميتوانند استÙاده Ùˆ كارآيي سرور Ùˆ هزينه استقرار كلي را به كلي كاهش دهند.
منبع:
تÙاوت ماشين مجازي Ùˆ كانتينرها
برچسب:
،
ادامه مطلب
بازدید: