در این مقاله نگاهی به تفاوت بین مجازی سازی Virtualisation و شبیه سازی Emulation و دلیل اهمیت آن خواهیم داشت.
به گزارش کالاسودا و به نقل از Cloud Savvy IT، هدف از هر دو فرایند مجازی سازی و شبیه سازی، یک چیز است.
این هدف هم اجرای یک سیستم عامل داخلی یک ماشین مجازی است.
با این حال این دو پروسه از راههای متفاوتی به این هدف دست پیدا میکنند.
تفاوت اصلی این دو پروسه این است که شبیه سازی بسیار کندتر از مجازی سازی است.
معمولا انتخاب بین این دو پروسه همواره به سازگاری سیستم و سخت افزار بستگی دارد.
شبیه سازی ساده ترین فرم اجرای یک برنامه روی یک میزبان مجازی است.
یک شبیه ساز میتواند دستورات به یک سیستم را گرفته و آنرا تبدیل به چیزی کند که میزبان قادر به فهم آن است.
یکی از بهترین مثالهای شبیه سازی، اجرای بازیهای N64 قدیمی روی یک کامپیوتر امروزی است.
مشکل شبیه سازی، کند بودن بیش از حد آن است.
این مورد نیز به محدودیتهای سخت افزاری و معماری باز میگردد.
به همین دلیل هم بیشتر ماشینهای مجازی امروزی از روش مجازی سازی و سخت افزار مخصوص آن استفاده میکنند.
به طور مثال Intel-VT و AMD-V هر دو تکنولوژی مجازی سازی هستند که میتوانند برنامههای x86 را اجرا کنند.
البته این ویژگی باید از داخل BIOS فعال شود.
مجازی سازی همیشه باید روی معماری سازگار با هدف صورت بگیرد.
به همین دلیل هم مجازی سازی برنامههای x86 روی معماری ARM چندان رایج نیست.
البته همین عامل هم باعث به وجود آمدن نگرانیهایی بر سر راه انتقال Apple به پلتفرم M1 شده است.
زیرا Apple قطعا در مجازی سازی برنامههای x86 روی پلتفرم جدید خود، به مشکل بر خواهد خورد.
این مشکلات نیز قطعا باعث کندی خواهند شد.
این جاست که Docker به کار میآید.
Docker به شما اجازه میدهد برنامهها را در بسترهایی منفرد و ایزوله اجرا کنید.
این روش بسیار ایمن بوده و شما حتی میتوانید روی یک سیستم، چندین بستر Docker را به طور همزمان اجرا کنید.
البته نکتهی مهم در مورد Docker این است که این برنامه از روش شبیه سازی و یا مجازی سازی استفاده نمیکند.
Docker در عوض کد برنامهی هدف را به صورت مستقیم روی خود پردازندهی میزبان اجرا میکند.
به این ترتیب خبری از تاخیر و بروز مشکل و محدودیتهای دیگر نیست.
این مسئله برای پلتفرمهایی نظیر Amazon AWS نیز بسیار ارزشمند است.
به همین دلیل هم اگر به دنبال مجازی سازی بوده و در عین حال نگران بازده هستید، Docker بهترین راه حل برای شماست.
لینک کوتاه: