عکس از فرات شاهین در Unsplash
عکس از فرات شاهین در Unsplash

توسعه Cycle فراتر از Kubernetes: افزودن ماشین‌های مجازی، Bare Metal و FaaS

افشاگری: نویسنده این پست را از طرف cycle.io نوشته است.

Cycle، جایگزین کم‌هزینه Kubernetes، دو ویژگی جدید را اعلام کرده است که آن را از ارکستراسیون کانتینر ابری به یک پلتفرم محاسباتی جامع برای کانتینرها، ماشین‌های مجازی (VM) و توابعی تبدیل می‌کند که می‌توانید در هر جایی اجرا کنید.

Cycle دو چیز را با هم ترکیب می‌کند: ارکستراسیون پلتفرم و مدیریت زیرساخت. از منظر زیرساخت، این فروشنده از نظر تاریخی بر روی کانتینرها تمرکز داشته است، با پشتیبانی از تصاویر کانتینری که با OCI سازگار هستند یا مبتنی بر Docker هستند (با استفاده از Docker Hub، Docker Registry و Dockerfile). سرورهای زیرین به صورت مجموعه‌ای از منابع توزیع شده ظاهر می‌شوند که اکنون می‌توانند در چندین ارائه دهنده ابری (AWS، Equinix Metal، GCP و Vultr) و همچنین بر روی bare metal، از طریق یک ارائه دهنده مجازی جدید، وجود داشته باشند.

استقرار ساده Bare Metal و VM با CycleOS

پشتیبانی از bare metal به خودی خود چیز جدیدی نیست. Cycle مدتی است که یک API ارائه می‌دهد که امکان ادغام با سایر ارائه دهندگان را فراهم می‌کند. با این حال، ارائه دهنده مجازی جدید این فرآیند را به طور چشمگیری ساده می‌کند. جیک ورنر، بنیانگذار و مدیر عامل Cycle، به The New Stack گفت: "ما یک دکمه آسان برای bare metal ساخته‌ایم." "این بدان معناست که شما می‌توانید Cycle را در هر جایی اجرا کنید - در لبه، در محل و کولو."

به جای پیاده سازی یک API، که قبلاً یک الزام طولانی بود، شما فقط از جادوگر ارائه شده استفاده می‌کنید. Cycle این فرآیند را آغاز می‌کند و دو دقیقه بعد، کاربران یک ISO قابل دانلود 4 مگابایتی دریافت می‌کنند که لودر iPXE برای CycleOS است. این یک سیستم عامل minimal مشتق شده از لینوکس است که شبکه‌بندی اساسی، پروتکل‌های ذخیره سازی و پلاگین‌ها را برای لایه کانتینری که در بالای آن اجرا می‌شود، فراهم می‌کند. از این ISO می‌توان برای بوت کردن شبکه با استفاده از iPXE یا نصب دستی از یک فلش درایو بر روی هر سرور استفاده کرد.

در کنار ارائه دهندگان مجازی، Cycle همچنین پشتیبانی جدیدی را برای VM ها در فرمت‌های Qcow2 و خام اضافه کرده است. در اینجا، CycleOS در زیر VM ها قرار می‌گیرد و شبکه‌ها، mount های volume و غیره را مدیریت می‌کند. هنگام استقرار یک VM در Cycle، پلتفرم یک نمونه کانتینری پنهان ایجاد می‌کند که یک hypervisor با QEMU/KVM در داخل آن اجرا می‌کند. کاربر نهایی نیازی به تعامل با این کانتینر پنهان در هیچ نقطه‌ای ندارد. نیازی به پیکربندی دستی نیست، زیرا پلتفرم کانتینر hypervisor را به طور خودکار در پشت صحنه مدیریت می‌کند.

تصاویر VM در Cycle را می‌توان به سه روش تهیه کرد: از تصاویر پایه داخلی Cycle، یک URL از راه دور یا با استفاده از یک اسکریپت iPXE. همانطور که انتظار دارید، برخلاف کانتینرها، VM ها پس از استقرار قابل تغییر نیستند.

Cycle از محاسبات چند ابری با کانتینرها، VM ها و FaaS پشتیبانی می‌کند

درون پلتفرم Cycle، یک گره محاسباتی می‌تواند VM ها، کانتینرها و توابع را به صورت موازی اجرا کند. کاربران همچنین می‌توانند CycleOS را بر روی، به عنوان مثال، یک نمونه AWS EC2، GCP یا Vultr اجرا کنند تا آن نمونه را به یک گره محاسباتی Cycle تبدیل کنند. وارنر شوخی کرد: "این تقریباً VM Inception است." "ما می‌توانیم CycleOS را روی یک VM اجرا کنیم تا VM های دیگری را میزبانی کنیم، تا زمانی که پایین‌ترین VM از مجازی سازی تودرتو پشتیبانی کند."

VM ها می‌توانند بین سرورهایی که از hypervisor ها پشتیبانی می‌کنند، از جمله در مناطق مختلف، با استفاده از همان سیستم برای انتقال یک VM مانند یک نمونه کانتینری، منتقل شوند. این بدان معناست که volume های متصل به VM نیز به نمونه هدف منتقل می‌شوند. با این حال، در زمان نوشتن این مقاله، در حالی که انتقال VM کار می‌کند، انتقال زنده نیست. یک کپی جدید از VM قبل از هدایت ترافیک، روی سرور هدف شروع می‌شود.

VM ها به همان شبکه خصوصی کانتینرهایی که در همان محیط وجود دارند، دسترسی دارند. برنامه‌هایی که در داخل VM ها اجرا می‌شوند می‌توانند از سرویس discovery برای اتصال به سایر کانتینرها و VM ها، بدون نیاز به پیکربندی اضافی، استفاده کنند.

Cycle همچنین برای مشتریانی که به کنترل بیشتری بر روی سیستم عامل خود نیاز دارند، پشتیبانی از VM را ارائه می‌دهد، و یک راه جایگزین برای اجرای VM ها، به ویژه برای شرکت‌هایی که به دنبال گزینه ای ارزان‌تر از Broadcom هستند، ارائه می‌دهد. وارنر همچنین سه مورد استفاده دیگر را پیش بینی می‌کند. اولین مورد برای استارت آپ‌های هوش مصنوعی است. او به ما گفت: "ما شرکت‌هایی داشتیم که با هوش مصنوعی کار می‌کردند و به نسخه‌های خاصی از هسته و، مثلاً، اوبونتو نیاز داشتند." "قبلاً، شما این کنترل را نداشتید؛ شما نمی‌توانستید هسته خود را به Cycle بیاورید زیرا ما فقط کانتینر بودیم. اکنون می‌توانید سیستم عامل خود را به عنوان یک VM در بالای Cycle، موازی با کانتینرهای خود، در صورت نیاز، اجرا کنید."

مورد استفاده دوم شامل پشتیبانی از ویندوز است. وارنر گفت: "برخی از مشتریان ما می‌خواهند برنامه‌های قدیمی ویندوز را اجرا کنند و از Cycle برای اجرای تمام کانتینرهای خود، به علاوه برنامه ویندوز قدیمی، استفاده کنند." "اکنون آنها می‌توانند." مورد استفاده سوم برای VM ها، اجرای Kubernetes در بالای Cycle، با استفاده از Cycle به عنوان فقط یک صفحه کنترل خواهد بود. وارنر به ما گفت: "از نظر تئوری، کسی می‌تواند Cycle را روی تمام bare metal خود نصب کند و VM های Kubernetes را در بالا اجرا کند. این به آنها Kubernetes چند ابری و زیرساخت ترکیبی می‌دهد."

Cycle همچنین شامل کانتینرهای تابعی است که می‌توانند برای workload هایی استفاده شوند که در غیر این صورت در معماری serverless یا FaaS مستقر می‌شوند. اینها خود را به کارهای موقت، پردازش دسته‌ای یا کارهای رویداد محور مانند تبدیل فایل‌ها، پردازش تصاویر یا آموزش LLM ها اختصاص می‌دهند.

کانتینرهای تابعی با تعداد از پیش تعریف شده‌ای از نمونه‌های hot پیکربندی شده‌اند که همه چیز از پیش تعریف شده و پیکربندی شده است تا بتوانند تقریباً بلافاصله (با زمان شروع زیر 100 میلی ثانیه) شروع شوند. مهمتر از آن، از آنجایی که اینها کانتینر هستند، کاربران محدود به runtimes خاص نیستند. شما می‌توانید هر چیزی را که می‌خواهید در آنها قرار دهید.

اعتراف می‌کنم که از طرفداران Cycle هستم. در حالی که Kubernetes همچنان بر این فضا تسلط دارد، فکر می‌کنم Cycle یک جایگزین خوش طراحی برای شرکت‌هایی ارائه می‌دهد که در روش انجام کار Kubernetes قفل نشده‌اند یا به دنبال راهی برای خروج هستند.

مسلماً، پیاده سازی VM نسبت به عملکرد کانتینری موجود کمتر جامع است. وارنر اعتراف کرد: "این قابلیت‌های جدید VM نسبت به VMware سبک‌تر هستند." "هدف ما این بوده است که به 80٪ feature-complete برسیم، به اندازه کافی برای اجرای صحیح یک VM در Cycle. سپس ما تماشا خواهیم کرد که مشتریان ما با آن چه می‌کنند و بر این اساس بهینه سازی خواهیم کرد."

در مجموع، این سه قابلیت جدید می‌تواند نشان دهنده یک نقطه عطف برای Gartner Cool Vendor 2024 باشد، زیرا به دهمین سالگرد خود نزدیک می‌شود. به یاد یک مشتری خرده‌فروشی می‌افتم که به دنبال راهی آسان‌تر برای مدیریت سیستم‌های ePOS خود در یک فروشگاه بزرگ است و برای مثال، با Kubernetes در حال مبارزه است. به همین ترتیب، برای برخی از ارائه دهندگان ابری جایگزین که به دنبال استفاده از جنبش نرم افزاری پایدار در حال رشد هستند، Cycle می‌تواند بسیار مناسب باشد.