درک زیرساخت دسکتاپ مجازی
VDI (یا زیرساخت دسکتاپ مجازی) در چند سال گذشته در محافل IT بسیار مورد توجه بوده است. هنگامی که مجازیسازی سرورها به هنجار تبدیل شد، نگاه به دسکتاپها بهعنوان مرز بعدی در مجازیسازی طبیعی بود. اما برخلاف سرورها، دسکتاپها تحت تأثیر چندین عامل اصلی قرار دارند که باید قبل از اینکه صرفاً سوار موج VDI شویم، مورد توجه و بررسی قرار گیرند. VDI یک فناوری عالی و شگفتانگیز است، اما مانند هر فناوری دیگری جایگاه خود را دارد و باید با دقت مورد بررسی قرار گیرد.
ابتدا باید به یک مفهوم مهم که VDI را تحت تأثیر قرار میدهد نگاه کنیم - ایده محاسبات مشترک. با سرورها بهطور طبیعی فرض میکنیم که سرورها و خدماتی که ارائه میدهند برای استفاده یک به یک نیستند بلکه توسط چندین کاربر مورد استفاده قرار میگیرند. این مفهوم در دنیای دسکتاپ وجود دارد و همیشه داشته است و اغلب بهعنوان سرویسهای ترمینال شناخته میشود. سرورهای ترمینال پاسخ دنیای سرور به نیاز برای منابع دسکتاپ متمرکز هستند و از زمان قبل از وجود دسکتاپها استاندارد بودهاند.
تاریخ جالبی از محاسبات وجود دارد که نشان میدهد دنیای Windows چگونه با مفهوم سرورهای ترمینال تعامل میکند. اکثر سیستمعاملها و تقریباً همه آنهایی که امروزه در استفاده هستند از ابتدا بهعنوان سیستمهای چندکاربره طراحی شدهاند و همیشه چنین بودهاند. ایده اینکه یک کاربر بهعنوان کاربر «اصلی» جلوی کامپیوتر بنشیند و بقیه شهروندان درجه دوم باشند یا اصلاً وجود نداشته باشند، واقعاً وجود نداشت و تمام کاربران برابر در نظر گرفته میشدند. Windows، برخلاف خانواده UNIX برای مثال، از دنیای سیستمهای تککاربره با منشأ DOS و DOS/Windows که چندکاربره نبودند آمده است و وقتی Windows NT بهعنوان یک سیستم چندکاربره توسعه یافت، بسیاری از توسعهدهندگان نرمافزار آن را همانطور که همیشه داشتند نرمافزاری ساختند که در حالت چندکاربره خوب کار نمیکرد یا اصلاً کار نمیکرد.
این اکوسیستم نرمافزاری که منحصر به Windows است (عملاً هرگز نمیتوانست روی Linux وجود داشته باشد، زیرا به دلیل نحوه وجود اکوسیستم و استقرارها، چنین نرمافزاری صرفاً بهعنوان معیوب تلقی میشد) مشکل جالبی ایجاد کرده است که برخی نرمافزارها و برخی وظایف بهراحتی توسط سرورهای ترمینال، کاملاً مانند روشی که هر سیستمعامل UNIX آن را حل میکند، قابل رسیدگی هستند، در حالی که بسیاری از برنامههای دیگر با استفاده از یک سرور ترمینال قابل رسیدگی نیستند و برای هر کاربر به یک نمونه سیستمعامل اختصاصی نیاز دارند.
به همین دلیل این عامل تاریخی که منجر به تفاوت قابل توجهی در اکوسیستمهای نرمافزاری شده است، نیاز اساسی برای VDI را ایجاد کرده و توضیح میدهد که چرا VDI بهعنوان یک پدیده منحصربهفرد در دنیای Windows ظهور کرد و برای همه مقاصد و اهداف انحصاری به آن باقی ماند. پس، بسیار مهم است که بدانیم VDI بهطور مفهومی بهعنوان وسیلهای برای پرداختن به نیازی ظهور کرد که تنها به دلیل کمبود در برنامههای شخص ثالث وجود داشت، نه به دلیل ماهیت ذاتی Windows در شکل فعلی آن یا به این دلیل که VDI رویکرد بهتری برای مجازیسازی یا میزبانی خدمات دسکتاپ کاربر نهایی بود. در واقع، میتوانیم VDI را بهعنوان یک راهحل متقلبانه ناخوشایندی بدانیم که تنها در موقعیتهایی مورد نیاز است که میخواهیم منابع دسکتاپ را مجازیسازی یا متمرکز کنیم و برخی نرمافزارهای مورد نیاز برای اجرا روی آن سیستمها نمیتوانند در حالت چندکاربره اجرا شوند. VDI یک مکانیسم بازگشتی برای موقعیتهای خاص است و نه یک رویکرد مطلوب برای سرویسهای دسکتاپ کاربر نهایی مجازیسازیشده یا متمرکز.
مهم است توجه داشته باشیم که به دلیل استفاده گسترده از VDI و ضرورت آن، سرمایهگذاری در فناوریهای پشتیبان حول VDI به این امکان منجر شده است که در بسیاری از موارد VDI ممکن است واقعاً از سرورهای ترمینال بهتر عمل کند، حتی اگر از نظر معماری این تقریباً غیرممکن به نظر برسد. اساساً این اتفاق میافتد زیرا مقدار باورنکردنی تحقیق و توسعهای که وارد لایه هایپروایزر شده ممکن است از همان اجزا در خود سیستمعامل پیشی بگیرد و احتمالاً مدیریت CPU و حافظه و اشتراکگذاری منابع بهتری ایجاد کند. البته این کاملاً به موقعیت منحصربهفرد بستگی دارد، زیرا هر سیستمعامل و هر هایپروایزر و هر مجموعه ابزار VDI منحصربهفرد است و همچنین بارهای کاری مورد آزمایش، بنابراین نتایج بهطور قابل توجهی متفاوت خواهد بود.
همچنین از اهمیت جدی برخوردار است که، به دلیل ماهیت Windows-محور ذکرشده مفهوم VDI، مجوزدهی مطرح میشود. اگر VDI را از دیدگاه Linux بررسی کنیم، نگرانیهای کمی در مورد مجوزدهی داریم و VDI تنها بر اساس شایستگیهای فنی در برابر سرویسهای ترمینال سنتی قرار میگرفت، اما این عملاً هرگز صدق نمیکند. بزرگترین عامل واحد در تصمیمگیری درباره VDI، مجوزدهی Microsoft است.
مجوزدهی VDI هم گران است هم پیچیده. شرکتهایی که میخواهند مجازیسازی منابع دسکتاپ Windows را در نظر بگیرند باید مزایا را در برابر هزینه بالای مجوزدهی مناسب و همچنین سربار بالقوه بزرگ مدیریت مجوز با دقت سنجیده بگیرند. ورود به VDI احتمالاً به معنای زمان IT گرانقیمت زیادی است که به تحقیق، نظارت و آموزش مجوز اختصاص مییابد، که جنبهای از هزینههای مجوزدهی است که اغلب نادیده گرفته میشود.
VDI یک مفهوم نسبتاً دشوار است که بتوان بهطور کلی دربارهاش صحبت کرد زیرا موضوعی تا حدی مبهم است. اگر یک دسکتاپ را مجازی کنیم، آیا به یک سرور تبدیل نمیشود؟ اگر از یک سیستمعامل طراحیشده برای استفاده سرور استفاده کنیم، آیا این تغییر میدهد که VDI چه هست و چه نیست؟ آیا VDI بر اساس موارد استفاده، مجوزدهی یا دستهبندی محصول است؟
پاسخ واقعی در این است که برای صنعت VDI از نظر فنی یک چیز است اما در اصطلاحات عملی برای Microsoft، تنها بازیکن کلیدی مجوزدهی در این فضا، معنای کمی متفاوتی دارد. VDI از نظر فنی مجازیسازی نمونههای «کاربر نهایی گرافیکی» یک به یک است - یعنی یک ماشین مجازی که توسط یک کاربر استفاده میشود، درست مثل دسکتاپ یا لپتاپ فیزیکی سنتی. برای Microsoft که نگرانیهایش کمی با صنعت متفاوت است، اصطلاح به مجازیسازی سیستمعاملهای «کلاس دسکتاپ» Windows اشاره دارد. اگر سیستمعاملهای «کلاس سرور» Windows را مجازی کنید، Microsoft شما را به عنوان VDI در نظر نمیگیرد. پس باید این دو دیدگاه از مفهوم را درک کنیم تا سردرگم نشویم. در واقع، استفاده از سیستمعاملهای Windows Server برای دور زدن نیازهای مجوزدهی VDI از دسکتاپهای Windows بسیار استاندارد و رایج شده است. با این حال، باید ماهیت راهحل متقلبانه VDI را به یاد داشته باشیم و در حالی که این موضوع به شکست در نوشتن نرمافزارهایی که ماهیت چندکاربره دارند رسیدگی میکند، پتانسیل بسیار واقعی را که نرمافزار با انتظارات سیستمعاملهای دسکتاپ-نامگذاریشده نوشته شده است مورد توجه قرار نمیدهد و به احتمال زیاد نرمافزار کاربر نهایی را خواهیم یافت که یا (عمداً یا غیرعمداً) قفلشده به سیستمعاملهای دسکتاپ است یا بالقوه فقط روی آن پلتفرمها مجوز دارد.
آخرین ملاحظه اصلی در تصمیمگیری VDI این است که برخلاف سرورهایی که هنگام مجازیسازی کاملاً مجازی میشوند، یک دسکتاپ را نمیتوان به همین شکل در نظر گرفت زیرا همیشه یک جزء فیزیکی برای آن وجود دارد. کاربر نهایی همیشه به مانیتور برای نگاه کردن، صفحهکلید برای تایپ کردن، بلندگو برای گوش دادن و غیره نیاز خواهد داشت. پس هنگامی که به مهاجرت به VDI نگاه میکنیم، باید مراقب باشیم که این واقعیت را نادیده نگیریم که ما نیاز به خرید و نگهداری دسکتاپها را حذف نمیکنیم، بلکه صرفاً محل قرارگیری سیستمعامل را تغییر میدهیم. ممکن است سختافزار قدیمیتر را برای استفاده بهعنوان دسترسی از راه دور مستقر کنیم، به تینکلاینتها یا زیروکلاینتهای تازه نامگذاریشده و اغلب بیمعنی مهاجرت کنیم، یا از «فتکلاینتهای» در حال استفاده استفاده کنیم تا هم بهعنوان یک کلاینت دسترسی از راه دور و هم برای خدمات دسکتاپ خود دوگانه عمل کنند.
قطعاً مجازیسازی دسکتاپ فرصتهای عالی زیادی و ارزش زیادی به ما ارائه میدهد اگر آن را به دلایل درست و با درک چگونگی، چرایی و چه زمانی VDI انجام دهیم. متأسفانه مانند بسیاری از روندهای فناوری، این مسئله به یک واکنش زانو زده تبدیل شده است که بدون ارزیابی مناسب و بدون تصویر روشنی از اینکه VDI چگونه در محیطهای خودمان جای میگیرد، به VDI مهاجرت کنیم. اگر دلیل روشنی برای انتخاب VDI نداشته باشیم، بسیار بعید است که آن را بهگونهای مثبت مستقر کنیم.
در نهایت بسیار مهم است که مجموعه مهارتهای لازم برای مهاجرت صحیح به VDI را در نظر بگیریم. از نظر صرفاً فنی، قرار دادن یک VM از Windows 10 روی Hyper-V VDI محسوب میشود، اما از نظر عملی این نحوه طراحی موثر VDI نیست. VDI نه تنها به دانش مجوزدهی خاصی که در بالا ذکر کردم نیاز دارد، بلکه معمولاً شامل دانش نسبتاً منحصربهفردی از ابزارها و محصولات VDI مدرن و بسیار تخصصی، ذخیرهسازی مشترک بهگونهای که به VDI مربوط میشود، پروتکلهای دسترسی از راه دور، تینکلاینتها یا زیروکلاینتها و موارد دیگر است. استقرارهای VDI تمایل دارند یکی از اجزای فنی و منحصربهفرد یک زیرساخت باشند که منجر به تعداد زیادی از مجهولات و چالشها برای هر سازمانی میشود.