انتخاب زبان

COLA: مقیاس‌گذاری خودکار جمعی برای میکروسرویس‌های ابری

تحلیل COLA، یک مقیاس‌گذار خودکار نوآورانه برای برنامه‌های میکروسرویس که تخصیص ماشین‌های مجازی را به‌صورت سراسری بهینه‌سازی می‌کند تا ضمن برآوردن اهداف تأخیر انتها به انتها، هزینه را به حداقل برساند.
apismarket.org | PDF Size: 1.6 MB
امتیاز: 4.5/5
امتیاز شما
شما قبلاً به این سند امتیاز داده اید
جلد سند PDF - COLA: مقیاس‌گذاری خودکار جمعی برای میکروسرویس‌های ابری

1. مقدمه

تغییر از معماری یکپارچه به میکروسرویس‌های با اتصال سست در برنامه‌های ابری، پیچیدگی قابل توجهی در مدیریت منابع به وجود می‌آورد. توسعه‌دهندگان باید تصمیم بگیرند که چه مقدار از منابع محاسباتی (مانند کپی‌های کانتینر، ماشین‌های مجازی) را به هر میکروسرویس اختصاص دهند. این تصمیم به‌طور بحرانی هم بر هزینه عملیاتی توسعه‌دهنده و هم بر تأخیر انتها به انتهای تجربه شده توسط کاربر برنامه تأثیر می‌گذارد. روش‌های سنتی مقیاس‌گذاری خودکار، مانند مقیاس‌گذاری خودکار پاد افقی (HPA)، هر میکروسرویس را به‌طور مستقل بر اساس معیارهای محلی مانند استفاده از CPU مقیاس می‌دهند. با این حال، این رویکرد بهینه نیست زیرا ماهیت وابسته متقابل میکروسرویس‌ها درون گردش کار برنامه را نادیده می‌گیرد. COLA (مقیاس‌گذار خودکار جمعی) به عنوان راه‌حلی پیشنهاد شده است که منابع را در سراسر همه میکروسرویس‌ها با هدفی سراسری به‌طور جمعی تخصیص می‌دهد: حداقل کردن هزینه دلاری در حالی که اطمینان حاصل می‌کند تأخیر انتها به انتهای برنامه زیر یک هدف مشخص شده باقی بماند.

2. مشکل مقیاس‌گذاری خودکار مستقل

مقیاس‌گذاری خودکار استاندارد صنعت کنونی به‌صورت توزیع‌شده و برای هر میکروسرویس عمل می‌کند. هر سرویس هنگامی که استفاده از منابع خود (CPU، حافظه) از یک آستانه عبور کند، اقدامات مقیاس‌گذاری (افزودن/حذف ماشین‌های مجازی یا پادها) را فعال می‌کند. نقص اساسی این است که این دیدگاه محلی، عملکرد سراسری برنامه را در نظر نمی‌گیرد. بهبود تأخیر یک میکروسرویس ممکن است تأثیر ناچیزی بر تأخیر کلی درک شده توسط کاربر داشته باشد اگر سرویس دیگری در زنجیره همچنان یک گلوگاه باقی بماند. این امر منجر به تخصیص ناکارآمد منابع می‌شود - تأمین بیش از حد برخی سرویس‌ها در حالی که گلوگاه‌های بحرانی کمتر از حد نیاز تأمین می‌شوند - که نتیجه آن هزینه‌های بالاتر بدون دستیابی به هدف سطح سرویس (SLO) تأخیر مورد نظر است.

3. COLA: رویکرد مقیاس‌گذاری خودکار جمعی

COLA مسئله مقیاس‌گذاری خودکار را به عنوان یک مسئله بهینه‌سازی با قید بازتعریف می‌کند. این روش چندین مقیاس‌گذار خودکار مستقل را با یک کنترلر متمرکز واحد جایگزین می‌کند که دید سراسری نسبت به توپولوژی و عملکرد میکروسرویس‌های برنامه دارد.

3.1. چارچوب بهینه‌سازی هسته

هدف به صورت رسمی زیر تعریف می‌شود:

  • هدف: حداقل کردن کل هزینه محاسباتی.
  • قید: تأخیر میانگین یا دم انتها به انتهای برنامه ≤ تأخیر هدف.
  • متغیرهای تصمیم: تعداد ماشین‌های مجازی (یا کپی‌ها) تخصیص داده شده به هر میکروسرویس $i$، که با $n_i$ نشان داده می‌شود.

این یک مسئله بهینه‌سازی غیرخطی پیچیده است زیرا رابطه بین $n_i$ و تأخیر انتها به انتها سرراست نیست و به الگوهای بار کاری و ارتباط بین سرویس‌ها بستگی دارد.

3.2. فرآیند جستجوی آفلاین

حل این بهینه‌سازی به‌صورت آنلاین به دلیل زمان مورد نیاز برای تأمین و تثبیت عملکرد، عملی نیست. بنابراین، COLA از یک فرآیند جستجوی آفلاین استفاده می‌کند:

  1. اعمال بار کاری: اعمال یک بار کاری نماینده به برنامه.
  2. شناسایی گلوگاه: شناسایی متراکم‌ترین میکروسرویس (بیشترین افزایش در استفاده از CPU تحت بار).
  3. تخصیص منابع از طریق مسئله راهزن: برای سرویس گلوگاه، تعیین تعداد بهینه ماشین‌های مجازی با استفاده از فرمول‌بندی مسئله راهزن چند بازویی. تابع "پاد"، بهبود تأخیر را در برابر افزایش هزینه متعادل می‌کند.
  4. تکرار: تکرار مراحل ۲ و ۳ برای متراکم‌ترین میکروسرویس بعدی تا زمانی که هدف تأخیر سراسری برآورده شود.
  5. تولید سیاست: نتیجه یک سیاست مقیاس‌گذاری (یک نگاشت از ویژگی‌های بار کاری به تخصیص‌های منابع) است که می‌تواند به‌صورت آنلاین مستقر شود.

COLA می‌تواند بین بارهای کاری شناخته شده درون‌یابی کند و در صورت مواجهه با الگوی بار کاری دیده نشده، به مقیاس‌گذارهای پیش‌فرض بازگردد.

4. جزئیات فنی و فرمول‌بندی ریاضی

مسئله بهینه‌سازی هسته را می‌توان به‌طور انتزاعی به صورت زیر نمایش داد:

$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{subject to: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ جایی که:

  • $M$: تعداد میکروسرویس‌ها.
  • $n_i$: تعداد واحدهای منابع (مانند ماشین‌های مجازی) برای میکروسرویس $i$.
  • $C_i(n_i)$: تابع هزینه برای میکروسرویس $i$ با $n_i$ واحد.
  • $L_{e2e}$: تابع تأخیر انتها به انتها، وابسته به همه $n_i$ و شدت بار کاری $\lambda$.
  • $L_{target}$: SLO تأخیر مورد نظر.
"مسئله راهزن" در مرحله ۳ جستجوی COLA شامل در نظر گرفتن هر تخصیص ممکن ماشین مجازی برای سرویس گلوگاه به عنوان یک "بازو" است. کشیدن یک بازو متناظر با تأمین آن پیکربندی و اندازه‌گیری مبادله هزینه-تأخیر حاصل است. الگوریتم‌هایی مانند حد بالایی اطمینان (UCB) می‌توانند برای کاوش و بهره‌برداری کارآمد از فضای پیکربندی استفاده شوند.

5. نتایج آزمایشی و ارزیابی

COLA در برابر چندین مقیاس‌گذار خودکار پایه (بر اساس استفاده و مبتنی بر یادگیری ماشین) روی موتور کوبرنتیس گوگل (GKE) به‌طور دقیق ارزیابی شد.

5.1. تنظیمات آزمایش

  • برنامه‌ها: ۵ برنامه میکروسرویس متن‌باز (مانند Simple WebServer، BookInfo، Online Boutique).
  • پلتفرم‌ها: GKE Standard (نودهای مدیریت‌شده توسط کاربر) و GKE Autopilot (زیرساخت مدیریت‌شده توسط ارائه‌دهنده).
  • خطوط پایه: HPA استاندارد (بر اساس CPU)، مقیاس‌گذارهای خودکار پیشرفته مبتنی بر یادگیری ماشین.
  • بارهای کاری: ۶۳ الگوی بار کاری متمایز.
  • هدف: برآوردن یک SLO تأخیر میانه یا دم (مانند p95) مشخص شده.

5.2. معیارهای کلیدی عملکرد

دستیابی به SLO

۵۳/۶۳

بارهای کاری که COLA به هدف تأخیر دست یافت.

کاهش هزینه متوسط

۱۹.۳٪

در مقایسه با ارزان‌ترین مقیاس‌گذار خودکار بعدی.

مقرون‌به‌صرفه‌ترین سیاست

۴۸/۵۳

COLA برای ۴۸ مورد از ۵۳ بار کاری موفق، ارزان‌ترین بود.

بهینگی در برنامه‌های کوچک

~۹۰٪

برای برنامه‌های کوچکتر که جستجوی جامع ممکن بود، COLA در ~۹۰٪ موارد پیکربندی بهینه را یافت.

5.3. خلاصه نتایج

نتایج برتری قابل توجه COLA را نشان می‌دهد. این روش به‌طور مداوم به SLO تأخیر مورد نظر دست یافت در حالی که دیگران شکست خوردند، و این کار را با هزینه‌ای به‌طور قابل توجهی پایین‌تر انجام داد. صرفه‌جویی در هزینه آنقدر چشمگیر بود که "هزینه آموزش" اجرای جستجوی آفلاین COLA در عرض چند روز از عملیات جبران شد. در GKE Autopilot، مزایای COLA حتی آشکارتر بود، زیرا به‌طور مؤثری از انتزاع مدیریت‌شده توسط ارائه‌دهنده عبور کرد تا هزینه‌ها را به حداقل برساند.

توضیح نمودار (تصوری): یک نمودار میله‌ای احتمالاً "هزینه به ازای هر درخواست موفق" یا "هزینه کل خوشه" را روی محور Y نشان می‌دهد، با مقیاس‌گذارهای خودکار مختلف (COLA، HPA، ML-A) روی محور X. میله مربوط به COLA به‌طور قابل توجهی پایین‌تر خواهد بود. یک نمودار دوم ممکن است "نرخ نقض SLO تأخیر" را نشان دهد، جایی که میله COLA به صفر نزدیک می‌شود در حالی که دیگران نرخ نقض بالاتری نشان می‌دهند.

6. چارچوب تحلیلی و مثال موردی

دیدگاه تحلیلگر: یک تجزیه چهار مرحله‌ای

بینش هسته‌ای: پیشرفت بنیادی مقاله یک الگوریتم جدید فانتزی نیست، بلکه یک تغییر دیدگاه بحرانی است: در نظر گرفتن کل برنامه میکروسرویس به عنوان یک سیستم واحد برای بهینه‌سازی، نه مجموعه‌ای از بخش‌های مستقل. این مشابه تغییر در بینایی کامپیوتری است که توسط مدل‌هایی مانند CycleGAN (Zhu et al., 2017) به وجود آمد، که با در نظر گرفتن سازگاری چرخه‌ای کل دامنه تبدیل، فراتر از ترجمه تصویر جفت‌شده حرکت کرد. COLA یک اصل مشابه "سازگاری سراسری" را در مدیریت منابع اعمال می‌کند.

جریان منطقی: استدلال به‌طور قانع‌کننده‌ای ساده است: ۱) بهینه‌های محلی (مقیاس‌گذاری هر سرویس) در مجموع به یک ناکارایی سراسری منجر می‌شوند. ۲) بنابراین، از یک هدف سراسری (هزینه) با یک قید سراسری (تأخیر انتها به انتها) استفاده کنید. ۳) از آنجایی که حل این مسئله به‌صورت آنلاین بسیار کند است، آن را به‌صورت آفلاین از طریق جستجو حل کنید و سیاست را مستقر کنید. زیبایی در استفاده از مسئله راهزن برای کارآمد کردن جستجوی تخصیص بهینه گلوگاه نهفته است، تکنیکی که توسط تحقیقات گسترده در یادگیری تقویتی برای بهینه‌سازی سیستم‌ها (مانند کار از RISELab دانشگاه برکلی) پشتیبانی می‌شود.

نقاط قوت و ضعف: نقاط قوت: نتایج تجربی درخشان هستند - کاهش ۱۹.۳٪ هزینه یک رقم در سطح هیئت مدیره است. رویکرد آفلاین عمل‌گرایانه است و از ناپایداری زمان اجرا اجتناب می‌کند. چارچوب مستقل از پلتفرم است. نقاط ضعف: نقطه آسیب‌پذیر، وابستگی به بارهای کاری نماینده آفلاین است. در برنامه‌های با تکامل سریع یا تحت رویدادهای ترافیکی "قوی سیاه"، سیاست از پیش محاسبه شده ممکن است منسوخ یا فاجعه‌بار باشد. بازگشت مقاله به مقیاس‌گذارهای خودکار پیش‌فرض برای این مسئله استحکام، یک چسب زخم است، نه یک درمان. علاوه بر این، پیچیدگی جستجو احتمالاً با تعداد میکروسرویس‌ها به خوبی مقیاس نمی‌شود و ممکن است استفاده از آن را در برنامه‌های بسیار بزرگ و پیچیده محدود کند.

بینش‌های قابل اجرا: برای معماران ابری، پیام روشن است: تنظیم آستانه‌های CPU به‌صورت جداگانه را متوقف کنید. در ساخت یا اتخاذ قابلیت مشاهده عملکرد سراسری و یک موتور تصمیم‌گیری متمرکز سرمایه‌گذاری کنید. با یک رویکرد ترکیبی شروع کنید: از فلسفه COLA برای تعریف زنجیره‌های سرویس بحرانی استفاده کنید و مقیاس‌گذاری جمعی را در آنجا اعمال کنید، در حالی که سرویس‌های کم‌اهمیت‌تر و مستقل را روی HPA سنتی باقی می‌گذارید. بازده سرمایه‌گذاری، همانطور که نشان داده شد، می‌تواند سریع باشد. ارائه‌دهندگان ابری باید توجه کنند؛ ابزارهایی مانند GKE Autopilot به چنین لایه‌های ارکستراسیون هوشمندی نیاز دارند تا واقعاً به وعده زیرساخت "مدیریت‌شده" عمل کنند.

7. چشم‌انداز کاربرد و جهت‌های آینده

اصول پشت COLA کاربرد گسترده‌ای فراتر از مقیاس‌گذاری پایه ماشین مجازی دارند:

  • مقیاس‌گذاری چندمنبعی و ناهمگن: نسخه‌های آینده می‌توانند به‌طور جمعی در مورد اندازه ماشین مجازی (بهینه‌شده برای حافظه در مقابل محاسبه)، تخصیص GPU، و حتی قرارگیری در مناطق دسترسی یا ارائه‌دهندگان ابری مختلف برای هزینه و تاب‌آوری تصمیم بگیرند.
  • ادغام با مش‌های سرویس: اتصال COLA با یک مش سرویس (مانند Istio) تله‌متری غنی‌تری (ردیابی سطح درخواست، گراف‌های وابستگی) فراهم می‌کند و حتی کنترل مستقیم بر مسیریابی ترافیک و قطع مدار را به عنوان بخشی از بهینه‌سازی ممکن می‌سازد.
  • سازگاری آنلاین و فرا‌یادگیری: مرز اصلی تحقیقات، غلبه بر محدودیت آفلاین است. تکنیک‌های فرا‌یادگیری می‌توانند به COLA اجازه دهند تا سیاست خود را به‌سرعت بر اساس بازخورد بلادرنگ به‌صورت آنلاین تطبیق دهد، یا پیکربندی‌های جدید را در دوره‌های ترافیک کم به‌طور ایمن کاوش کند.
  • اهداف محاسبات سبز: هدف بهینه‌سازی را می‌توان برای حداقل کردن ردپای کربن یا مصرف انرژی گسترش داد، که با ابتکارات محاسبات پایدار همسو است، با گنجاندن داده‌هایی از منابعی مانند پروژه ردپای کربن ابری.
  • بازار برای سیاست‌ها: برای الگوهای برنامه رایج (مانند تجارت الکترونیک، پخش رسانه‌ای)، سیاست‌های COLA از پیش بهینه‌شده می‌توانند به اشتراک گذاشته یا فروخته شوند و نیاز به اجراهای آموزشی فردی را کاهش دهند.

8. مراجع

  1. Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
  2. Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
  3. Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
  4. Hoffman, M., Shahriari, B., & Aslanides, J. (2020). Addressing Function Approximation Error in Actor-Critic Methods. Proceedings of the 37th International Conference on Machine Learning (ICML). (Example of advanced RL relevant for online adaptation).
  5. Cloud Carbon Footprint. (n.d.). An open source tool to measure and visualize the carbon footprint of cloud usage. Retrieved from https://www.cloudcarbonfootprint.org/.
  6. Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at Google with Borg. Proceedings of the European Conference on Computer Systems (EuroSys).