
اگر با مفاهميم مجازي سازي آشنا هستيد حتما، حتما نام ماشين مجازي سازي يا 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 ميتوانند استفاده و كارآيي سرور و هزينه استقرار كلي را به كلي كاهش دهند.
منبع:
تفاوت ماشين مجازي و كانتينرها
برچسب:
،
ادامه مطلب
بازدید: