اگر با تفاوتهای کلود کامپیوتینگ و ویرچوالیزیشن آشنایی ندارید، اصلاً جای نگرانی نیست چرا که اکثر افراد -حتی برخی از کسانی که جزو متخصصین به شمار میآیند- نیز فرقی اساسی بین این دو قائل نمیشوند؛ به عبارت دیگر، تلفیقی از دو مفهوم را در یک مفهوم کلی مد نظر قرار میدهند. با این تفاسیر، نمیتوانیم انتظار داشته باشیم اصطلاح Cloud که امروزه به وفور و به صورت شعار مورد استفاده قرار میگیرد، کلماتی مانند فضای ذخیرهسازی کلود یا مفاهیم دیگر را توضیح داده یا تفسیر نماید. حال تفاوت این دو چیست و اصلاً چه اهمیتی دارد که با این تفاوتها آشنا شویم؟ اینطور که به نظر میرسد، اگر با این دو آشنا باشید و مزایای هر یک را بدانید، در مواردی که به هر کدام از آنها نیاز دارید، به کارتان میآیند. بنابراین در این مقاله سعی کردهایم به زبانی شیوا و غیرفنی، تفاوتهای اصلی رایانشابری و مجازیسازی را بازگو کنیم.
مجازیسازی چیست؟
Virtualization (ویرچوالیزیشن یا مجازیسازی) زمانی اتفاق میافتد که بخواهید یک نمای مجازی از یک چیز حقیقی را ایجاد کنید. برای مثال، VR (واقعیت مجازی)، یک نمای مجازی از یک واقعیت فیزیکی است که تنها در یکسری حوزهها با واقعیت فیزیکی تفاوت دارد؛ اما در زمینهٔ علوم کامپیوتری، مجازیسازی کمی پیچیدهتر است. به عبارت دیگر، مجازیسازی یعنی زمانی که شما یک منبع فیزیکی واحد دارید و میخواهید (سیپییو، رم و …) آن را به چند قسمت مجزا تقسیم کنید که هر یک از این قسمتها از نظر فنی، یک قسمت جدا به نظر میرسند به طوری که هر قسمت میتواند به یک کاربر خاص اختصاص داده شود و به این دلیل که قسمتها از یکدیگر مجزا هستند، هر کاربر فقط میتواند به منابع اختصاص داده شده به خود استفاده کند و به منابع سایر کاربران دسترسی نخواهد داشت.
یک مثال از ویرچوال ماشین
Virtual Machine (ویرچوال ماشین یا ماشین مجازی) برنامهای است که امکان مجازیسازی را بر روی سیستم شما فراهم میکند و این در حالی است که این ماشین مجازی از سیستمعاملی غیر از سیستمعاملی که بر روی سیستم شما نصب است استفاده میکند و کاملاً از آن جدا است. در چنین شرایطی، سیستمعامل اصلی نصب شده روی پیسی یا لپتاپ شما Host (میزبان) و به ماشینمجازی نصب شده بر روی آن اصطلاحاً Guest (مهمان) گفته میشود. برای روشنتر شدن این مسئله، اجازه دهید یک مثال از دنیای واقعی بزنیم.
اگر شما بر روی سیستمتان یک نسخه از سیستمعامل ویندوز داشته باشید، آن سیستمعامل Host شما است؛ اکنون با استفاده از یکی از نرمافزارهای مجازیسازی مانند Virtualbox یا Vmware میتوانید یکی از توزیعهای سیستمعامل گنو/لینوکس را نصب کرده و اجرا کنید (البته بر روی سیستمعامل ویندوزی که در حال اجرا است).
این سیستمعامل مجازی همانند سایر نرمافزارهایی که در ویندوز اجرا میشوند اجرا شده البته باید توجه داشته باشید که این سیستمعامل مجازی با منابع محدودتری -که هنگام ایجاد آن سیستمعامل در ماشین مجازی اختصاص میدهید- اجرا میشود؛ لذا نمیتوانید هرگز این انتظار را داشته باشید تا مثلاً اوبونتویی که در ماشینمجازی رو سیستمعامل ویندوز بالا میآید همان پرفورمنسی را داشته باشد که یک اوبونتوی نصب شده به صورت مستقل دارا است.
ماشین مجازی بهترین روش برای اجرای چندین سیستمعامل بر روی یک کامپیوتر است (البته این در حالی است که باید منابع سختافزاری برای سرویسدهی به چندین ماشین مجازی را داشته باشید). نکتهٔ بسیار خوبی که در این رابطه وجود دارد این است که سیستمعاملهای مجازی طوری اجرا میشوند که اصطلاحاً یک Sandbox کوچک دارند که باعث میشود ویروسها و سایر بدافزارها امکان آلوده کردن سیستمعامل Host یا سایر سیستمعاملها را نداشته باشد.
همچنین ماشینهای مجازی بهترین بستر برای اجرای برنامههای جدید و همچنین سیستمعاملهای جدید میباشند (مثلاً اگر بخواهید بدانید که ظاهر لینوکس توزیع Mint به چه شکل است، در عوض به جان خریدن دردسرهای پاک کردن سیستمعامل فعلیتان و نصب یک سیستمعامل جدید، به سادگی میتوانید توزیع مینت را در ماشین مجازی اجرا و تست کرده و پس از تست هم آن را به سادگی حذف نمایید).
مثالی از سرور مجازی
به عنوان کاربری عادی، شاید تاکنون بیشتر از ۲ سیستمعامل همزمان بر روی کامپیوتر خانگیتان اجرا نکرده باشید؛ یکی به عنوان Host و دیگری به عنوان Guest ولی در کاربردهای تجاری قضیه کمی فرق میکند. در واقع، این احتمال وجود دارد که کامپیوترهای زیادی را مشاهده کنید که چندین ماشین مجازی در کنار یکدیگر روی آنها نصب است؛ به عبارت دیگر، در کاربردهای تجاری معمولاً چندین یا حتی صدها ماشین مجازی به صورت همزمان بر روی یک سرور فیزیکی نصب میشوند.
زمانی که کاری بدین صورت اتفاق میافتد، به آن Virtual Sever (سرور مجازی) گفته میشود که قطعاً برای انجام چنین کاری، سرور فیزیکی بسیار قدرتمندی نیاز است. در صورتی که منابع کمی در دسترس باشد، نمیتوان منابع را بین چندین ماشین مجازی تقسیم نمود به طوری که هر کدام از سرعت و پرفورمنس قابلقبولی برخوردار باشند. دلیل اینکه سرورهای مجازی فقط برای کارهای تجاری مورد استفاده قرار میگیرد این است که کامپیوترهای قدرتمند مورد استفاده قرار گرفته برای این کار، بسیار گران هستند. حال سؤالی که پیش میآید این است که چرا شرکتها باید به سراغ سرور مجازی بروند؟ سؤال خوبی است و همین سؤال ما را به سمت Cloud Computing (کلود کامپیوتینگ یا رایانش ابری) میبرد.
کلود کامپیوتینگ چیست؟
اولین سؤالی که ممکن است پیش بیاید این است که کلود کامپیوتینگ یا رایانش ابری چیست؟ میتوان تصور کرد که یک مجموعه از سرورها در مکانی دور دست قرار گرفتهاند که وظیفهٔ آنها ارائهٔ سرویسی خاص میباشد. به عبارت دیگر، مجموعهای از کامپیوترهای به هم متصل (کلاستری از سرورها) که تا زمانی که شما دسترسی به اینترنت دارید، میتوانید از هر کجای دنیا به سرویسهای آنها دسترسی پیدا کنید که این سرویسها خواه رایگان هستند و خواه در ازای دریافتشان باید پول پرداخت کرد.
زمانی از واژهٔ رایانش ابری استفاده میشود که شما بخواهید به جای ذخیره یا پردازش اطلاعات بر روی کامپیوتر خود، آن را بر روی کامپیوترهای کلود پردازش یا ذخیره کنید؛ بنابراین هیچ کدام از منابع سیستم شما -مثل رم یا سیپییو- استفاده نخواهد شد (نکتهای که وجود دارد این است که بعضی از سرویسهای کلود از مجازیسازی استفاده میکنند ولی بیشتر آنها اینگونه نیستند).
اگر شما از سرویس Gmail استفاده میکنید، در واقع از سرویسی بهره میگیرید که بر پایهٔ کلود است. در این مورد، دادههای مربوط به ایمیلهای شما بر روی شبکهای از سرورهای گوگل ذخیره میشوند و عملیات سنگین ذخیرهسازی، ارسال، دریافت، و پردازش ایمیلها بر روی سرورهای گوگل انجام میشود. به عبارت دیگر، کلیهٔ این کارها بر بستر کلود انجام میشوند نه بر روی کامپیوتر شخصی شما که این مورد برای اکثر سرویسهای تحت وب صادق است (سرویسهایی همچون تقویم، لیست کارهایی که باید انجام دهید، شبکههای اجتماعی، تلفن اینترنتی، فضای ذخیرهسازی، ویرایشگرهای آنلاین تصاویر و ...)
مثالی از سرویسهای پیشرفتهٔ کلود
بعضی از سرویسهای کلود پیشرفتهتر از سایرین هستند؛ برای مثال سرویسهایی همچون Gmail یا Outlook به مراتب سادهتر از سرویسهای مدیریت اسناد آنلاین همچون Google Docs یا هر سرویس مدیریت سند آنلاین دیگری هستند. در سرویس Google Docs، هر فایل نوشتاری بر روی سرورهای شرکت گوگل ذخیره شده است؛ هنگامی که شما یک فایل را برای ویرایش باز میکنید و شروع به ویرایش آن میکنید، در واقع در حال تعامل با فایلی هستید که هزاران کیلومتر با آن فاصله دارید و این در حالی است که در آن واحد، فرد دیگری هم میتواند همزمان با شما به آن فایل دسترسی داشته باشد و آن را ویرایش نماید. سرورهای گوگل بدون هیچگونه وقفهای (اصطلاحاً Real Time) شروع به پردازش متن وارد شده توسط شما میکنند.
مثالی از فضای میزبانی مجازی
توجه کنید که در مثالهای فوق هیچ اشارهای به بحث مجازیسازی نشده است؛ این مثال نیز یکی از آنها است. زمانی که شما یکی از سرویسهای میزبانی اشتراکی را سفارش میدهید، معمولاً آن فضا بر روی یک ماشین و بدون هیچگونه عمل مجازیسازی قرار گرفته است و تعداد زیادی از وبسایتها نیز توسط همان سرور میزبانی میشوند. اگر یکی از کاربران به اشتباه یا به عمد، در کار سیپییو سرور مد نظر اختلال ایجاد کند، کلیهٔ سایتهای موجود بر روی آن سرور از دسترس خارج میشوند تا زمانی که سرور درست شود.
اما زمانی که شما یک Virtual Private Server (سرورمجازی اختصاصی) که به اختصار VPS خوانده میشود سفارش میدهید، همچنان شما بر روی یک سرور واحد وبسایت خود را میزبانی میکنید ولی با این تفاوت که منابع سختافزاری برای شما مجازیسازی شدهاند (به عبارت دیگر، چیزهایی مثل رم، سیپییو و ... به اندازهٔ خاصی -همانقدر که پولش را پرداخت کردهاید- به وبسایت شما به صورت کامل اختصاص مییابند). اگر یکی از مشتریان هم اشتباهی انجام دهد، فقط منابع اختصاص داده شده به وی قفل میشود و تنها وبسایت او از دسترسی خارج میشود و این بار وبسایت شما به خوبی به کار خود ادامه میدهد (این مزیت سرور مجازی بر هاستهای اشتراکی است).
امیدوارم که با توضیحات بالا، تفاوت بین این دو را متوجه شده باشید؛ معمولاً خیلی از کاربران از اینکه تا این حد از کلود کامپیوتینگ در زندگی روزمرهٔ خود استفاده میکنند متعجب میشوند و شاید شما نیز چنین حسی دارید!
حال وقت آن میرسد که شما نیز نظرات و تجربیات خود را در این زمینه با ما به اشتراک بگذارید؛ همچنین اگر سؤالی یا ابهامی در مورد مفاهیم مجازیسازی و رایانش ابری برای شما بوجود آمده است، آن را در قسمت نظرات بپرسید تا ما و سایر کاربران سکان آکادمی بتوانیم در صورت امکان پاسخ شما را بدهیم.