
VM Extension Manager-এ script কমবে—ভুল policy পুরো fleet-এ ছড়াতে পারে

GA VM Extension Manager দিয়ে Compute Engine fleet-এর extension lifecycle declarative policy-তে আনা যায়; ফলে প্রতিটি VM-এর startup script বা আলাদা install command ধরে রাখার প্রয়োজন কমে। নিরাপদ setup-এর ক্রম হলো ছোট label-targeted zonal canary, নির্দিষ্ট version ও config, পর্যবেক্ষণযোগ্য health gate, তারপর একই desired state-এর ধীর global rollout।
Google Cloud-এর GA ঘোষণায় project-wide policy, continuous drift detection, self-healing, multi-zone phased rollout, rollout failure-এ automated rollback এবং Cloud Monitoring visibility নিশ্চিত করা হয়েছে। এই বিস্তৃত automation-ই ঝুঁকির কারণও: selector বাদ পড়লে বা অযাচাইকৃত config global policy-তে গেলে matching fleet জুড়ে সেটি প্রয়োগ হতে পারে।
১. আগে policy-র blast radius বেঁধে দিন
প্রথমে extension, target VM এবং desired version—এই তিনটি বিষয় স্থির করুন। VM Extension Manager-এর lifecycle documentation বলছে, policy নির্দিষ্ট label-সহ পুরোনো ও নতুন উভয় VM-এ প্রযোজ্য হতে পারে; policy থাকলে manager extension install ও run করে, আর policy মুছলে managed extension সরিয়ে দেয়। ফলে আজ fleet-এর বাইরে থাকা নতুন VM-ও পরে matching label পেলে scope-এ ঢুকবে।
প্রথম production policy-তে শুধু env=prod-এর মতো বিস্তৃত label ব্যবহার না করে আলাদা opt-in cohort রাখুন—যেমন extension-canary=true। এটি product requirement নয়; ভুল configuration-এর প্রভাব সীমিত রাখার operational control। Canary VM-এ production-এর OS, architecture, service account, network egress এবং resource constraint যতটা সম্ভব মিলিয়ে না নিলে সফল পরীক্ষা representative হবে না।
- যে extension চালানো হবে, তার supported OS ও configuration requirement যাচাই করুন।
- label inventory export করে অনিচ্ছাকৃত match আছে কি না peer review করুন।
- policy creator-কে প্রয়োজনীয় VM Extension Policy Admin role দিন; পর্যবেক্ষকের জন্য Viewer role যথেষ্ট রাখুন।
- config source control-এ রেখে revision বা checksum change record-এ ধরুন।
২. zonal canary-তে selector, version ও config স্থির করুন

একটি কম-ঝুঁকির zone-এ অল্প কয়েকটি representative VM নিয়ে zonal policy বানান। Google Cloud-এর policy creation reference অনুযায়ী একটি selector-এর সব label pair মিলতে হয়, কিন্তু একাধিক selector logical OR হিসেবে কাজ করে; selector বাদ দিলে zonal policy ওই zone-এর সব VM এবং global policy project-এর সব zone-এর VM target করতে পারে। একই reference-এ কম সংখ্যার priority-কে বেশি অগ্রাধিকার, Ops Agent-এর জন্য 2.58.0 বা পরের version pin করা এবং SAP ও Compute Workload extension-এর জন্য শুধু latest version ব্যবহারের সীমা দেওয়া আছে।
Ops Agent-এর version ফাঁকা রাখলে সর্বশেষ উপলভ্য release ব্যবহৃত হয় এবং নতুন release এলে automatic upgrade হতে পারে। Production canary-তে তাই পরিচিত কার্যকর version pin করুন; latest-only extension হলে সেই পরিবর্তনশীলতা আলাদা risk হিসেবে গ্রহণ ও পর্যবেক্ষণ করুন। Global policy-র default slow_rollout পাঁচ দিনে deployment ছড়ায়, আর fast_rollout সব target zone-এ তাৎক্ষণিকভাবে প্রয়োগ করে; custom plan-এ zone বা region-ভিত্তিক wave, অপেক্ষার সময় এবং concurrency limit নির্ধারণ করা যায়।
Copy-ready canary sequence:
- নির্বাচিত VM-এ extension-canary=true label দিন এবং label query-র ফল সংরক্ষণ করুন।
- gcloud compute zone-vm-extension-policies create command-এ policy name, project, zone, extension, version, config file, inclusion label ও priority স্পষ্টভাবে দিন।
- একই extension পরিচালনাকারী অন্য policy থাকলে priority সংঘাত আগেই যাচাই করুন।
- Policy describe output, resolved target list এবং config revision change record-এ রাখুন।
- Canary-র extension installed ও healthy না হওয়া পর্যন্ত global policy তৈরি করবেন না।
৩. command success নয়, health gate দিয়ে canary বিচার করুন

Policy create command সফল হওয়া শুধু request গ্রহণের প্রমাণ; extension ঠিকভাবে চলছে কি না তা আলাদা করে দেখতে হবে। VM extension monitoring reference enforcement state হিসেবে INSTALLING, INSTALL_FAILED, INSTALLED, ROLLING_BACK, ROLLBACK_FAILED, ROLLED_BACK ও INCOMPATIBLE এবং health state হিসেবে STARTING, RUNNING, STOPPED ও CRASHED প্রকাশ করে। একই সঙ্গে extension-এর সর্বোচ্চ CPU usage ও ব্যবহৃত memory bytes পর্যবেক্ষণ করা যায়।
নিজেদের workload অনুযায়ী observation window ঠিক করুন। সেই সময়ে সব canary-র enforcement state INSTALLED, health state RUNNING এবং application-level smoke test সফল হওয়া উচিত। INSTALL_FAILED, INCOMPATIBLE, CRASHED বা ROLLBACK_FAILED দেখা গেলে promotion বন্ধ রেখে permission, disk space, network access, guest agent এবং config parsing পরীক্ষা করুন।
Cloud Monitoring alert-এ extension_name ও status label ব্যবহার করে ব্যর্থ state ধরুন। কিন্তু extension process চলাই application সুস্থ থাকার নিশ্চয়তা নয়; request error, latency, log-ingestion gap বা workload-specific health check-ও rollout stop condition করুন। Product-এর automated rollback rollout failure সামলাতে পারে, কিন্তু কোন application signal গ্রহণযোগ্য—সেই operational সিদ্ধান্ত administrator-কেই নির্ধারণ করতে হবে।
৪. canary থেকে global policy-তে একই desired state তুলুন
Canary পাস করলে নতুন করে config বানাবেন না; পরীক্ষিত extension version, config revision এবং selector logic global policy-তে তুলুন। প্রথমে canary cohort-এর বাইরের target VM তালিকা review করুন। তারপর production-এর জন্য slow rollout বা ছোট custom wave নিন; fast rollout কেবল এমন পরিবর্তনে ব্যবহার করুন যার তাৎক্ষণিক বিস্তারের ঝুঁকি দল বুঝেছে ও গ্রহণ করেছে।
Custom rollout-এ প্রথম wave-এ কম-ঝুঁকির zone, পরের wave-এ সীমিত production zone এবং শেষে বাকি location রাখুন। Wave-এর অপেক্ষার সময় application-এর স্বাভাবিক load cycle ধরার মতো দীর্ঘ করুন এবং একসঙ্গে কত location ও VM বদলাবে তা সীমিত রাখুন। এটি Google নির্ধারিত universal threshold নয়; fleet size, recovery time এবং service objective অনুযায়ী নির্ধারণযোগ্য change control।
Global rollout zonal policy তৈরি ও পরিচালনা করে। একই নামের zonal policy আলাদাভাবে বদলানো থাকলে conflict হতে পারে; default আচরণ সেই local value overwrite করে না। কারণ না বুঝে overwrite বেছে নিলে zone-specific exception হারাতে পারে, তাই conflict আগে inventory করে global ও local ownership পরিষ্কার করুন।
৫. rollback-এ policy delete নয়, known-good state পুনরায় দিন

খারাপ update ধরা পড়লে পরবর্তী promotion বন্ধ করুন এবং আগের known-good version, config ও selector দিয়ে policy update করুন। Policy management documentation সতর্ক করে যে gcloud update সম্পূর্ণ replacement হিসেবে কাজ করে—বাদ দেওয়া optional field default value-তে ফিরে যায়। একই documentation অনুযায়ী policy delete করলে managed VM থেকে extension uninstall হয়; তবে একই extension ঘোষণাকারী lower-priority active policy প্রযোজ্য থাকলে সেটি installed থাকে।
তাই rollback command-এ extensions, version, config, inclusion labels, priority এবং global policy হলে rollout plan—প্রয়োজনীয় সব field পুনরায় দিন। Delete কেবল extension সত্যিই সরানোর সিদ্ধান্ত হলে ব্যবহার করুন। সীমিত cohort ব্যর্থ হলে আলাদা recovery label ও known-good config-সহ temporary higher-priority zonal policy ব্যবহার করা যেতে পারে; recovery শেষে temporary policy ও label সরিয়ে মূল desired state-এ ফিরুন।
Production change অনুমোদনের আগে নিশ্চিত করুন: target query review হয়েছে, canary representative, Ops Agent হলে version pin করা, latest-only সীমা নথিভুক্ত, INSTALLED ও RUNNING state-এর সঙ্গে workload smoke test পাস, application alert সক্রিয় এবং আগের সম্পূর্ণ policy specification পুনঃপ্রয়োগের জন্য প্রস্তুত। এই নিয়ন্ত্রণগুলো থাকলে VM Extension Manager repetitive script কমায়, অথচ ভুল policy-র fleet-wide blast radius অনিয়ন্ত্রিত থাকে না।
আরও পড়ুন:
সম্পর্কিত নিবন্ধ


GitHub Copilot-এর ছয় model ১ সেপ্টেম্বর বন্ধ—workflow এখনই সরান

AI-এর security patch সরাসরি merge নয়—৭ ধাপে false fix ধরুন

Zoho Invoice না Wave—দুটিই free, কিন্তু ভারতীয় করেই পছন্দ বদলায়

AI assistant বন্ধ হলে কাজও থামে? ৩০ মিনিটে fallback চালুর পরিকল্পনা

Gemini Live-এ turnComplete মানেই শেষ নয়—ভুলে tool response হারাতে পারেন
আমাদের নিউজলেটার নিন
সর্বশেষ Web3, AI ও ক্রিপ্টো সংবাদ সরাসরি আপনার ইনবক্সে পান।