1. ভূমিকা
ক্লাউড অ্যাপ্লিকেশনে মনোলিথিক আর্কিটেকচার থেকে আলগাভাবে যুক্ত মাইক্রোসার্ভিসে রূপান্তর সম্পদ ব্যবস্থাপনায় উল্লেখযোগ্য জটিলতা তৈরি করে। ডেভেলপারদের প্রতিটি মাইক্রোসার্ভিসে কতগুলি কম্পিউটিং সম্পদ (যেমন, কন্টেইনার প্রতিলিপি, VM) বরাদ্দ করতে হবে তা সিদ্ধান্ত নিতে হয়। এই সিদ্ধান্ত ডেভেলপারের পরিচালন খরচ এবং অ্যাপ্লিকেশন ব্যবহারকারীর অনুভূত শেষ-থেকে-শেষ লেটেন্সি উভয়ের উপরই গুরুত্বপূর্ণ প্রভাব ফেলে। ঐতিহ্যগত স্বয়ংক্রিয় স্কেলিং পদ্ধতি, যেমন হরাইজন্টাল পড অটোস্কেলিং (HPA), স্থানীয় মেট্রিক্স যেমন CPU ব্যবহারের উপর ভিত্তি করে প্রতিটি মাইক্রোসার্ভিসকে স্বাধীনভাবে স্কেল করে। যাইহোক, এই পদ্ধতিটি সর্বোত্তম নয় কারণ এটি একটি অ্যাপ্লিকেশন ওয়ার্কফ্লোর মধ্যে মাইক্রোসার্ভিসগুলির পারস্পরিক নির্ভরশীল প্রকৃতিকে উপেক্ষা করে। COLA (Collective Autoscaler) একটি সমাধান হিসাবে প্রস্তাবিত হয়েছে যা একটি বিশ্বব্যাপী উদ্দেশ্য নিয়ে সমস্ত মাইক্রোসার্ভিস জুড়ে সম্পদ সমষ্টিগতভাবে বরাদ্দ করে: ডলার খরচ কমানো এবং একই সাথে অ্যাপ্লিকেশনের শেষ-থেকে-শেষ লেটেন্সি একটি নির্দিষ্ট লক্ষ্যের নিচে রাখা নিশ্চিত করা।
2. স্বাধীন স্বয়ংক্রিয় স্কেলিং-এর সমস্যা
বর্তমান শিল্প-মানের স্বয়ংক্রিয় স্কেলিং একটি বিতরণকৃত, প্রতি-মাইক্রোসার্ভিস পদ্ধতিতে কাজ করে। প্রতিটি সার্ভিস তার নিজস্ব সম্পদ ব্যবহার (CPU, মেমরি) একটি থ্রেশহোল্ড অতিক্রম করলে স্কেলিং ক্রিয়া (VM বা পড যোগ/অপসারণ) ট্রিগার করে। মৌলিক ত্রুটি হল যে এই স্থানীয় দৃষ্টিভঙ্গি অ্যাপ্লিকেশনের বিশ্বব্যাপী কর্মক্ষমতা বিবেচনা করতে ব্যর্থ হয়। একটি মাইক্রোসার্ভিসের লেটেন্সি উন্নত করা সামগ্রিক ব্যবহারকারী-অনুভূত লেটেন্সির উপর নগণ্য প্রভাব ফেলতে পারে যদি চেইনের অন্য কোনও সার্ভিস বাধা হিসাবে থেকে যায়। এটি অদক্ষ সম্পদ বরাদ্দের দিকে নিয়ে যায়—কিছু সার্ভিসে অতিরিক্ত সরবরাহ করা হয় যখন গুরুত্বপূর্ণ বাধাগুলিতে অপর্যাপ্ত সরবরাহ করা হয়—ফলে কাঙ্ক্ষিত লেটেন্সি সার্ভিস লেভেল অবজেক্টিভ (SLO) অর্জন না করেই উচ্চতর খরচ হয়।
3. COLA: সমষ্টিগত স্বয়ংক্রিয় স্কেলিং পদ্ধতি
COLA স্বয়ংক্রিয় স্কেলিং সমস্যাটিকে একটি সীমাবদ্ধ অপ্টিমাইজেশন সমস্যা হিসাবে পুনর্বিন্যাস করে। এটি একাধিক স্বাধীন অটোস্কেলারকে একটি একক, কেন্দ্রীভূত নিয়ন্ত্রক দ্বারা প্রতিস্থাপন করে যার অ্যাপ্লিকেশনের মাইক্রোসার্ভিস টপোলজি এবং কর্মক্ষমতার উপর বিশ্বব্যাপী দৃশ্যমানতা রয়েছে।
3.1. মূল অপ্টিমাইজেশন কাঠামো
লক্ষ্যটি আনুষ্ঠানিকভাবে প্রকাশ করা হয়েছে:
- উদ্দেশ্য: মোট কম্পিউট খরচ কমানো।
- সীমাবদ্ধতা: অ্যাপ্লিকেশন শেষ-থেকে-শেষ গড় বা টেইল লেটেন্সি ≤ লক্ষ্য লেটেন্সি।
- সিদ্ধান্তের চলক: প্রতিটি মাইক্রোসার্ভিস $i$-এ বরাদ্দকৃত VM (বা প্রতিলিপি) এর সংখ্যা, $n_i$ হিসাবে চিহ্নিত।
এটি একটি জটিল, অ-রৈখিক অপ্টিমাইজেশন সমস্যা কারণ $n_i$ এবং শেষ-থেকে-শেষ লেটেন্সির মধ্যে সম্পর্ক সরল নয় এবং ওয়ার্কলোড প্যাটার্ন এবং আন্তঃ-সার্ভিস যোগাযোগের উপর নির্ভর করে।
3.2. অফলাইন অনুসন্ধান প্রক্রিয়া
প্রোভিশনিং এবং কর্মক্ষমতা স্থিতিশীলকরণের জন্য প্রয়োজনীয় সময়ের কারণে এই অপ্টিমাইজেশন অনলাইনে সমাধান করা অবাস্তব। তাই, COLA একটি অফলাইন অনুসন্ধান প্রক্রিয়া প্রয়োগ করে:
- ওয়ার্কলোড প্রয়োগ: অ্যাপ্লিকেশনে একটি প্রতিনিধিত্বমূলক ওয়ার্কলোড প্রয়োগ করুন।
- বাধা সনাক্তকরণ: সবচেয়ে ভিড়যুক্ত মাইক্রোসার্ভিস সনাক্ত করুন (লোডের অধীনে CPU ব্যবহারে সর্বাধিক বৃদ্ধি)।
- ব্যান্ডিট সমস্যার মাধ্যমে সম্পদ বরাদ্দ: বাধা সার্ভিসের জন্য, একটি মাল্টি-আর্মড ব্যান্ডিট সূত্রায়ন ব্যবহার করে সর্বোত্তম VM সংখ্যা নির্ধারণ করুন। "পুরস্কার" ফাংশনটি লেটেন্সি উন্নতি এবং খরচ বৃদ্ধির মধ্যে ভারসাম্য বজায় রাখে।
- পুনরাবৃত্তি: পরবর্তী সবচেয়ে ভিড়যুক্ত মাইক্রোসার্ভিসের জন্য ধাপ ২-৩ পুনরাবৃত্তি করুন যতক্ষণ না বিশ্বব্যাপী লেটেন্সি লক্ষ্য পূরণ হয়।
- নীতি উৎপাদন: ফলাফলটি একটি স্কেলিং নীতি (ওয়ার্কলোড বৈশিষ্ট্য থেকে সম্পদ বরাদ্দের একটি ম্যাপিং) যা অনলাইনে স্থাপন করা যেতে পারে।
COLA পরিচিত ওয়ার্কলোডগুলির মধ্যে ইন্টারপোলেট করতে পারে এবং যদি একটি অদেখা ওয়ার্কলোড প্যাটার্নের সম্মুখীন হয় তবে ডিফল্ট অটোস্কেলারগুলিতে ফিরে যেতে পারে।
4. প্রযুক্তিগত বিবরণ ও গাণিতিক সূত্রায়ন
মূল অপ্টিমাইজেশন সমস্যাটি বিমূর্তভাবে উপস্থাপন করা যেতে পারে:
$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{সাপেক্ষে: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ যেখানে:
- $M$: মাইক্রোসার্ভিসের সংখ্যা।
- $n_i$: মাইক্রোসার্ভিস $i$-এর জন্য সম্পদ ইউনিটের সংখ্যা (যেমন, VM)।
- $C_i(n_i)$: $n_i$ ইউনিট সহ মাইক্রোসার্ভিস $i$-এর জন্য খরচ ফাংশন।
- $L_{e2e}$: শেষ-থেকে-শেষ লেটেন্সি ফাংশন, সমস্ত $n_i$ এবং ওয়ার্কলোড তীব্রতা $\lambda$-এর উপর নির্ভরশীল।
- $L_{target}$: কাঙ্ক্ষিত লেটেন্সি SLO।
5. পরীক্ষামূলক ফলাফল ও মূল্যায়ন
COLA কে Google Kubernetes Engine (GKE)-এ বেশ কয়েকটি বেসলাইন অটোস্কেলারের (ব্যবহার-ভিত্তিক এবং ML-ভিত্তিক) বিরুদ্ধে কঠোরভাবে মূল্যায়ন করা হয়েছিল।
5.1. পরীক্ষামূলক সেটআপ
- অ্যাপ্লিকেশন: 5টি ওপেন-সোর্স মাইক্রোসার্ভিস অ্যাপ্লিকেশন (যেমন, Simple WebServer, BookInfo, Online Boutique)।
- প্ল্যাটফর্ম: GKE স্ট্যান্ডার্ড (ব্যবহারকারী-পরিচালিত নোড) এবং GKE অটোপাইলট (প্রদানকারী-পরিচালিত অবকাঠামো)।
- বেসলাইন: স্ট্যান্ডার্ড HPA (CPU-ভিত্তিক), উন্নত ML-ভিত্তিক অটোস্কেলার।
- ওয়ার্কলোড: 63টি স্বতন্ত্র ওয়ার্কলোড প্যাটার্ন।
- লক্ষ্য: একটি নির্দিষ্ট মধ্যমা বা টেইল (যেমন, p95) লেটেন্সি SLO পূরণ করা।
5.2. মূল কার্যক্ষমতা মেট্রিক্স
SLO অর্জন
53/63
ওয়ার্কলোড যেখানে COLA লেটেন্সি লক্ষ্য পূরণ করেছে।
গড় খরচ হ্রাস
19.3%
পরবর্তী সবচেয়ে সস্তা অটোস্কেলারের তুলনায়।
সবচেয়ে খরচ-কার্যকর নীতি
48/53
53টি সফল ওয়ার্কলোডের মধ্যে 48টির জন্য COLA ছিল সবচেয়ে সস্তা।
ছোট অ্যাপে সর্বোত্তমতা
~90%
ছোট অ্যাপ্লিকেশনের জন্য যেখানে সম্পূর্ণ অনুসন্ধান সম্ভব ছিল, COLA ~90% ক্ষেত্রে সর্বোত্তম কনফিগারেশন খুঁজে পেয়েছে।
5.3. ফলাফলের সারসংক্ষেপ
ফলাফলগুলি COLA-এর উল্লেখযোগ্য সুবিধা প্রদর্শন করে। এটি ধারাবাহিকভাবে কাঙ্ক্ষিত লেটেন্সি SLO অর্জন করেছে যেখানে অন্যেরা ব্যর্থ হয়েছে, এবং তা উল্লেখযোগ্যভাবে কম খরচে করেছে। খরচ সাশ্রয় এতটাই স্পষ্ট ছিল যে COLA-এর অফলাইন অনুসন্ধান চালানোর "প্রশিক্ষণ খরচ" কয়েক দিনের অপারেশনের মধ্যেই পুনরুদ্ধার করা হয়েছিল। GKE অটোপাইলটে, COLA-এর সুবিধাগুলি আরও স্পষ্ট ছিল, কারণ এটি খরচ কমানোর জন্য প্রদানকারী-পরিচালিত বিমূর্ততা কার্যকরভাবে নেভিগেট করেছে।
চার্ট বর্ণনা (কল্পিত): একটি বার চার্ট সম্ভবত Y-অক্ষে "প্রতি সফল অনুরোধের খরচ" বা "মোট ক্লাস্টার খরচ" এবং X-অক্ষে বিভিন্ন অটোস্কেলার (COLA, HPA, ML-A) দেখাবে। COLA-এর বার উল্লেখযোগ্যভাবে কম হবে। একটি দ্বিতীয় চার্ট "Latency SLO লঙ্ঘনের হার" দেখাতে পারে, যেখানে COLA-এর বার শূন্যের কাছাকাছি যাবে যখন অন্যরা উচ্চতর লঙ্ঘনের হার দেখায়।
6. বিশ্লেষণ কাঠামো ও উদাহরণ কেস
বিশ্লেষকের দৃষ্টিভঙ্গি: একটি চার-ধাপ বিশ্লেষণ
মূল অন্তর্দৃষ্টি: কাগজের মৌলিক অগ্রগতি একটি অভিনব নতুন অ্যালগরিদম নয়, কিন্তু দৃষ্টিভঙ্গির একটি গুরুত্বপূর্ণ পরিবর্তন: সমগ্র মাইক্রোসার্ভিস অ্যাপ্লিকেশনটিকে অপ্টিমাইজ করার জন্য একটি একক সিস্টেম হিসাবে বিবেচনা করা, স্বাধীন অংশগুলির একটি সংগ্রহ নয়। এটি কম্পিউটার ভিশনে CycleGAN (Zhu et al., 2017) এর মতো মডেল দ্বারা আনা পরিবর্তনের অনুরূপ, যা সম্পূর্ণ রূপান্তর ডোমেনের চক্র-সামঞ্জস্য বিবেচনা করে জোড়া চিত্র অনুবাদের বাইরে চলে গেছে। COLA সম্পদ ব্যবস্থাপনায় একটি অনুরূপ "বিশ্বব্যাপী সামঞ্জস্য" নীতি প্রয়োগ করে।
যুক্তিগত প্রবাহ: যুক্তিটি আকর্ষণীয়ভাবে সরল: ১) স্থানীয় সর্বোত্তম (প্রতি-সার্ভিস স্কেলিং) একটি বিশ্বব্যাপী অদক্ষতার সমষ্টি। ২) অতএব, একটি বিশ্বব্যাপী উদ্দেশ্য (খরচ) একটি বিশ্বব্যাপী সীমাবদ্ধতা (শেষ-থেকে-শেষ লেটেন্সি) সহ ব্যবহার করুন। ৩) যেহেতু এটি অনলাইনে সমাধান করা খুব ধীর, তাই অনুসন্ধানের মাধ্যমে অফলাইনে সমাধান করুন এবং নীতি স্থাপন করুন। সৌন্দর্য হল বাধার সর্বোত্তম বরাদ্দের জন্য অনুসন্ধানকে দক্ষ করতে ব্যান্ডিট সমস্যা ব্যবহার করা, একটি কৌশল যা সিস্টেম অপ্টিমাইজেশনের জন্য রিইনফোর্সমেন্ট লার্নিংয়ে ব্যাপক গবেষণা দ্বারা সমর্থিত (যেমন, UC Berkeley-এর RISELab-এর কাজ)।
শক্তি ও ত্রুটি: শক্তি: অভিজ্ঞতামূলক ফলাফলগুলি উজ্জ্বল—19.3% খরচ হ্রাস একটি বোর্ডরুম-স্তরের চিত্র। অফলাইন পদ্ধতিটি ব্যবহারিক, রানটাইম অস্থিরতা এড়ায়। কাঠামোটি প্ল্যাটফর্ম-নিরপেক্ষ। ত্রুটি: Achilles' heel হল প্রতিনিধিত্বমূলক অফলাইন ওয়ার্কলোডের উপর নির্ভরতা। দ্রুত বিকশিত অ্যাপ্লিকেশনগুলিতে বা "ব্ল্যাক সোয়ান" ট্র্যাফিক ইভেন্টের অধীনে, পূর্ব-গণিত নীতি অপ্রচলিত বা বিপর্যয়কর হতে পারে। কাগজের ডিফল্ট অটোস্কেলারে ফিরে যাওয়া এই রোবাস্টনেস ইস্যুর জন্য একটি প্লাস্টার, নিরাময় নয়। তদুপরি, অনুসন্ধানের জটিলতা সম্ভবত মাইক্রোসার্ভিসের সংখ্যার সাথে দুর্বলভাবে স্কেল করে, সম্ভাব্যভাবে অত্যন্ত বড়, জটিল অ্যাপ্লিকেশনগুলিতে এর ব্যবহার সীমিত করে।
কার্যকরী অন্তর্দৃষ্টি: ক্লাউড আর্কিটেক্টদের জন্য, বার্তাটি পরিষ্কার: বিচ্ছিন্নভাবে CPU থ্রেশহোল্ড সেট করা বন্ধ করুন। বিশ্বব্যাপী কর্মক্ষমতা পর্যবেক্ষণযোগ্যতা এবং একটি কেন্দ্রীভূত সিদ্ধান্ত ইঞ্জিন তৈরি বা গ্রহণে বিনিয়োগ করুন। একটি হাইব্রিড পদ্ধতি দিয়ে শুরু করুন: COLA-এর দর্শন ব্যবহার করে সমালোচনামূলক সার্ভিস চেইন সংজ্ঞায়িত করুন এবং সেখানে সমষ্টিগত স্কেলিং প্রয়োগ করুন, যখন কম সমালোচনামূলক, স্বাধীন সার্ভিসগুলিকে ঐতিহ্যগত HPA-তে রেখে দিন। দেখানো হয়েছে, ROI দ্রুত হতে পারে। ক্লাউড প্রদানকারীদের খেয়াল করা উচিত; GKE অটোপাইলটের মতো সরঞ্জামগুলির জন্য সত্যিই "পরিচালিত" অবকাঠামোর প্রতিশ্রুতি পূরণ করার জন্য এই ধরনের বুদ্ধিমান অর্কেস্ট্রেশন স্তরের প্রয়োজন।
7. প্রয়োগের সম্ভাবনা ও ভবিষ্যৎ দিকনির্দেশনা
COLA-এর পিছনের নীতিগুলির মৌলিক VM স্কেলিংয়ের বাইরে বিস্তৃত প্রয়োগযোগ্যতা রয়েছে:
- মাল্টি-রিসোর্স ও ভিন্নধর্মী স্কেলিং: ভবিষ্যতের সংস্করণগুলি VM আকার (মেমরি-বনাম কম্পিউট-অপ্টিমাইজড), GPU বরাদ্দ এবং এমনকি খরচ এবং স্থিতিস্থাপকতার জন্য প্রাপ্যতা জোন বা ক্লাউড প্রদানকারীদের মধ্যে প্লেসমেন্ট সমষ্টিগতভাবে সিদ্ধান্ত নিতে পারে।
- সার্ভিস মেশের সাথে একীকরণ: COLA কে একটি সার্ভিস মেশ (Istio-এর মতো) এর সাথে যুক্ত করা সমৃদ্ধ টেলিমেট্রি (অনুরোধ-স্তরের ট্রেসিং, নির্ভরতা গ্রাফ) প্রদান করবে এবং অপ্টিমাইজেশনের অংশ হিসাবে ট্র্যাফিক রাউটিং এবং সার্কিট ব্রেকিংয়ের উপর সরাসরি নিয়ন্ত্রণ সক্ষম করবে।
- অনলাইন অভিযোজন ও মেটা-লার্নিং: প্রধান গবেষণা সীমান্ত হল অফলাইন সীমাবদ্ধতা কাটিয়ে ওঠা। মেটা-লার্নিং থেকে কৌশলগুলি COLA কে রিয়েল-টাইম প্রতিক্রিয়ার ভিত্তিতে দ্রুত তার নীতি অনলাইনে অভিযোজিত করতে বা কম ট্র্যাফিকের সময়কালে নতুন কনফিগারেশন নিরাপদে অন্বেষণ করতে দিতে পারে।
- গ্রীন কম্পিউটিং উদ্দেশ্য: অপ্টিমাইজেশন উদ্দেশ্যটিকে কার্বন পদচিহ্ন বা শক্তি খরচ কমানোর জন্য বর্ধিত করা যেতে পারে, টেকসই কম্পিউটিং উদ্যোগের সাথে সামঞ্জস্য রেখে, Cloud Carbon Footprint project এর মতো উৎস থেকে ডেটা অন্তর্ভুক্ত করে।
- নীতির জন্য মার্কেটপ্লেস: সাধারণ অ্যাপ্লিকেশন প্যাটার্নের জন্য (যেমন, ই-কমার্স, মিডিয়া স্ট্রিমিং), পূর্ব-অপ্টিমাইজড COLA নীতি ভাগ বা বিক্রি করা যেতে পারে, পৃথক প্রশিক্ষণ রান করার প্রয়োজনীয়তা হ্রাস করে।
8. তথ্যসূত্র
- Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
- 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).
- Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
- 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). (অনলাইন অভিযোজনের জন্য প্রাসঙ্গিক উন্নত RL-এর উদাহরণ)।
- 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/.
- 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).