در بیش از ۲۰ سال گذشته، مجازیسازی به یک زیرساخت استاندارد برای صدها میلیون برنامه، از جمله برنامههای ابر عمومی تبدیل شده است. این فناوری به دلیل تجرد قدرتمندی که نسبت به سخت افزار فیزیکی فراهم میکند، پیروز شد و امکان استفاده، مدیریت، اتوماسیون و امنیت بهتر را فراهم کرد. با این حال، با معرفی هر فناوری جدید، طبیعی است که مفروضات گذشته را زیر سؤال ببریم و پرسشهای قبلی را دوباره بررسی کنیم. برخی از افراد این سوال را میپرسند که برای Kubernetes و Containers، ترجیح در استفاده از کدام نوع زیرساخت است؟ زیرساختهای bare metal یا مجازیسازی شده؟ در ادامه این مطلب با بررسی مجازیسازی VMware به این سوال پاسخ خواهیم داد.
نگاه کلی
استدلال bare metal (در واقع «لینوکس به عنوان سیستم عامل میزبان») به این صورت است: Kubernetes و Containerization برخی از ویژگیهای اساسی مجازی سازی مانند جداسازی فرآیند و بسته بندی و تجرد برنامه را ارائه میدهند، به این معنی که مجازی سازی یک لایه غیر ضروری است که پیچیدگی و سربار را اضافه میکند. بنابراین راه حل مناسب این است که با حذف لایه مجازی سازی، «ساده سازی» را انجام دهید. در واقع، مطمئنا در این استدلال چیزی اغوا کننده وجود دارد. با این حال، این استدلال مشکلاتی مانند انعطاف پذیری و در دسترس بودن، امنیت سرتاسر و مدیریت عملیات را که هنوز باید حل شوند نادیده میگیرد. سوالی که سازمانها با آن مواجه هستند این است که چگونه میتوان این عملکرد مورد نیاز را به دست آورد. باید آن را در زیرساخت تعبیه کرد یا برای ایجاد یک راه حل سفارشی ساخته شده بالای زیرساخت تلاش کرد.
بهتر است به جای اینکه به این سوال به عنوان bare metal در مقابل مجازی سازی نگاه شود، آن را به عنوان تلاشی برای یافتن زیرساخت «بهتر» در نظر بگیریم. بله، زیرساخت بهتر شامل مجازی سازی است، اما موارد بیشتری را شامل میشود. زیرساخت بهتر به معنای زیرساختی است که هر آنچه را که برای اجرای Kubernetes در تولید نیاز دارید ارائه میدهد. این بدان معناست که شما نیازی به نگرانی در مورد کارهای سنگین غیر متمایز ندارید و در عوض میتوانید بر ایجاد ارزش تجاری تمرکز کنید. زیرساخت بهتر یعنی Kubernetes بهتر.
در سال ۲۰۲۰، VMware Cloud Foundation با Tanzu و vSphere با Tanzu منتشر شدند. هر دوی این پیشنهادها عمیقا Kubernetes را به ترتیب با VMware Cloud Foundation و vSphere ادغام میکنند و آنها را به پلتفرمهای بومی Kubernetes درجه سازمانی تبدیل میکنند. این امر به برنامههای مدرن مبتنی بر Kubernetes امکان میدهد تا در کنار برنامههای مبتنی بر VM سنتی اجرا شوند و از تمام ویژگیها و قابلیتهای قدرتمند زیرساخت VMware بهره ببرند. این زیرساخت بهتری است که Kubernetes بهتری ارائه میکند. در ادامه نحوه انجام این کار بررسی شده است.
استفاده آسانتر برای اپراتورها
با استفاده از ابزارها و مجموعه مهارتهای موجود در اکوسیستم vSphere، میتوانید به سرعت برنامههای کانتینری را روی زیرساخت VMware که اکثر بارهای کاری شما در حال حاضر به طور بهینه اجرا میشود، شروع کنید. مجازیسازی VMware پیچیدگیهای مدیریت سختافزار را بر عهده میگیرد و با متحد کردن برنامههای سنتی و کانتینری در یک پلتفرم، مدیریت را آسانتر میکند. علاوه بر این، میتواند با استقرار خودکار خوشههای Kubernetes و عملیاتهای «روز دوم»(day 2) جاری مانند پشتیبانگیری، مهاجرت، وصلهسازی و نظارت، هزینههای عملیاتی شما را به شدت کاهش دهد. در مدل «زیرساخت کمتر»، راهحلهای این مشکلات باید بهصورت سفارشی ساخته شوند و زمان رسیدن به ارزش را کاهش و هزینه را افزایش دهند.
تجربه بهتر برای توسعه دهنده
توسعه دهندگان اکنون از طریق یک API یکپارچه و بومی Kubernetes به کل زیرساخت VMware دسترسی دارند. با استفاده از پیکربندی اعلامی از طریق خط فرمان یا ابزار انتخابی خود، آنها میتوانند به سرعت پادهای K8s، فضاهای نام، کلاسترها، ماشینهای مجازی و حتی پایگاههای داده خدمات توسعه دهنده و ذخیرهسازی اشیاء سازگار با S3 را برای ساخت برنامههای کاربردی مدرن فراهم کنند. لایه مجازیسازی انعطاف پذیری و تحرک بار کاری، اتوماسیون مبتنی بر API و سرعت را برای پشتیبانی از دسترسی self-service توسعه دهندگان فراهم میکند.
مقاله پیشنهادی “بازتعریف زیرساخت اجرای برنامههای آینده با استفاده از نوآوری در VMware vSphere“
انعطافپذیرتر
مجازی سازی VMware به طور یکپارچه مشکلات انعطاف پذیری را مدیریت میکند. معمولا قبل از اینکه خود Kubernetes مشکل را شناسایی کند، یک گره Kubernetes خراب یا مشکل ساز را مجددا راه اندازی میکند. در دسترس بودن صفحه کنترل Kubernetes را با استفاده از مکانیسمهای کامل تشخیص پالس و پارتیشن برای نظارت بر سرورها، ماشینهای مجازی Kubernetes و اتصال شبکه فراهم میکند و در صورت خرابی امکان بازیابی سریع را فراهم میکند. (مسائل صفحه کنترل Kubernetes به ویژه در یک محیط زیرساختی «کمتر» از نظر عملیاتی چالش برانگیز هستند!) با شناسایی پیشگیرانه خرابی، مهاجرت زنده، متعادلسازی بار خودکار، راهاندازی مجدد به دلیل خرابی زیرساختها و فضای ذخیرهسازی بسیار در دسترس، میتوانید از اختلال در سرویس و تأثیرات عملکرد جلوگیری کنید. این حتی برای سختترین و حیاتیترین بارهای کاری stateful شما، مانند پایگاههای داده و صفحه(های) کنترل Kubernetes، بسیار با اهمیتتر است.
امنتر
مجازیسازی VMware ایزولهسازی در سطح سختافزار را در خوشه، فضای نام و حتی پاد Kubernetes ارائه میکند (مشتری بهترین رویکرد را انتخاب میکند!). زیرساخت VMware همچنین الگوی بسیاری از خوشههای کوچکتر Kubernetes را فعال میکند و انزوا واقعی چند مستاجر را با دامنه خطا کاهش یافته امکان پذیر میکند. خوشههای کوچکتر شعاع صدمات را کاهش میدهند، یعنی هر مشکلی در یک خوشه فقط روی غلافهای آن خوشه کوچک تأثیر میگذارد و بر محیط وسیعتر تأثیر نمیگذارد. علاوه بر این، خوشههای کوچکتر به این معنی است که هر توسعهدهنده یا محیطی (آزمایش، مرحلهبندی، تولید) میتواند خوشه خود را داشته باشد و به آنها اجازه میدهد تا CRD یا اپراتورهای خود را بدون خطر تأثیر نامطلوب بر تیمهای دیگر نصب کنند.
کارایی بهتر
مجازیسازی VMware عملکرد بسیار خوبی را ارائه میکند که میتواند گاهی اوقات از طریق مدیریت منابع قدرتمند و بهینهسازیهای NUMA که هر سربار مجازیسازی را جبران میکند، از bare metal فراتر رود. vSAN Direct Configuration™ با فعال کردن دسترسی مستقیم به سختافزار ذخیرهسازی متصل مستقیم، به برنامههای وابسته به وضعیت و حساس به عملکرد، قدرت میدهد. vSphere Distributed Resource Scheduler (DRS) به طور شفاف کارایی و عملکرد را برای هر بار کاری در خوشه متعادل میکند، بنابراین اتلاف منابع و اختلافات را کاهش میدهد در حالی که امکان استفاده بیشتر از منابع زیرساخت زیربنایی را فراهم میکند.
هزینه نهایی کمتر
یکی از استدلالهای اصلی برای زیرساخت «کمتر» هزینه کلی پایینتر است. با این حال، زیرساخت VMware به دلیل مدیریت سادهتر، میتواند از طریق صرفهجویی در CapEx، کمترین TCO را ارائه دهد. استفاده بیشتر از منابع ناشی از فعال کردن مدیریت منابع و تعهد بیش از حد در زیرساختهای Kubernetes و VMware است. با استفاده از Kubernetes برای مدیریت برنامه (از طریق درخواستهای pod، محدودیتها و اولویتها) و زیرساخت VMware برای مدیریت خوشههای Kubernetes از طریق (Resource Pools و DRS)، میتوانید تا ۳ برابر بیشتر از منابع بهره ببرید در حالی که به طور همزمان عملکرد را بهبود میبخشید. علاوه بر این، VMware بسیاری از عملکردهایی را که میتواند هزینه اجرای یک راه حل سفارشی را افزایش دهد، انجام میدهد، مانند استقرار، وصله، نظارت و موارد دیگر.
جمعبندی
در این مقاله به بررسی مزایای استفاده از مجازیسازی VMware برای Kubernetes پرداختیم. با نگاه به دلایلی که در این مقاله آورده شد و موارد دیگر، اگر زیرساختهای VMware را برای ساخت و اجرای Kubernetes و برنامههای بومی ابری خود بررسی نکرده اید، امروز آن را بررسی کنید.