১. ভূমিকা

সর্বশেষ হালনাগাদ: ২০২৬-০৫-১৩
SRE এক্সটেনশন ব্যবহার করে একটি GKE বিভ্রাট তদন্ত করুন এবং একটি চমৎকার পোস্ট মর্টেম তৈরি করুন।
গুগল ক্লাউডে SRE হারনেস নিয়ে পরীক্ষা-নিরীক্ষা করতে আগ্রহী অপারেটরদের জন্য এই SRE ওয়ার্কশপে স্বাগতম!
এই কোডল্যাবটি আপনাকে এই বিষয়ে নির্দেশনা দেবে:
- একটি সুপরিচিত ওপেন সোর্স মাইক্রোসার্ভিস-ডেমোর উপর ভিত্তি করে একটি GKE ক্লাস্টার ইনস্টল করুন।
- বিভিন্ন উপায়ে ভেঙে একটি বিভ্রাট তৈরি করুন (কিছুটা চোখে পড়ার মতো, কিছুটা সূক্ষ্ম)।
- নিম্নলিখিত অংশের জন্য Antigravity CLI (বা অনুরূপ হারনেস) + SRE এক্সটেনশন ইনস্টল ও ব্যবহার করুন।
- তদন্ত করুন এবং আশা করি বিভ্রাটটি সমাধান করতে পারবেন।
- একটি ময়নাতদন্ত তৈরি করুন।
- গ্রাফ তৈরির দক্ষতা ব্যবহার করে এমন একটি তথ্যসমৃদ্ধ গ্রাফ তৈরি করুন, যা দর্শকদের বুঝতে সাহায্য করবে কী এবং কখন ঘটেছিল।
নিচে কোডল্যাবটির ধাপে ধাপে কাঠামো দেওয়া হলো:

এই কর্মশালার উদ্দেশ্য হলো:
- SRE এক্সটেনশনের সক্ষমতাগুলো তুলে ধরা এবং এর মাধ্যমে কী কী করা সম্ভব তা দেখানো: OneMCP সেটআপ, সেফ এক্সিকিউটর, ইনভেস্টিগেশন, পোস্ট মর্টেম জেনারেশন, গ্রাফ এবং CSV জিস্ট।
- আপনাকে আপনার নিজস্ব গুগল ক্লাউড পরিস্থিতি তদন্ত করার দক্ষতা শেখানো হবে।
মাইলস্টোন ১: পরিবেশ স্থাপন এবং বিভ্রাট সিমুলেশন
এই মাইলস্টোনের লক্ষ্য হলো GKE Autopilot-এ একটি Kubernetes ডেমো অ্যাপ্লিকেশন সেট আপ করা, Antigravity CLI ইনস্টল করা এবং প্রোডাকশনের ঘটনা অনুকরণ করার জন্য কৃত্রিমভাবে GKE ক্লাস্টার বিকল হওয়ার পরিস্থিতি তৈরি করা।
মাইলস্টোন ২: এসআরই সম্প্রসারণের মাধ্যমে অনুসন্ধান ও প্রশমন
পরিবেশটি ভেঙে ফেলার পর, আপনি SRE এক্সটেনশন সহ agentic CLI টুল ব্যবহার করে পদ্ধতিগতভাবে পরিকাঠামো আবিষ্কার করবেন, সমস্যাগুলির অগ্রাধিকার নির্ধারণ করবেন, সমাধানের জন্য নিরাপদ এক্সিকিউশন প্যাটার্ন প্রয়োগ করবেন এবং ক্লাস্টারের স্বাস্থ্য যাচাই করবেন।
মাইলস্টোন ৩: মরণোত্তর বিশ্লেষণ এবং গ্রাফ তৈরি
সমাধান হয়ে গেলে, আপনি একটি সুসংগঠিত ঘটনা-পরবর্তী পর্যালোচনা নথি তৈরি করবেন এবং GCM (গুগল ক্লাউড মনিটরিং) API ব্যবহার করে প্রকৃত মেট্রিক্স ডেটা সংগ্রহ করবেন, এবং বিভ্রাটটি কখন ও কীভাবে ঘটেছিল তা নথিভুক্ত করার জন্য ভিজ্যুয়াল চার্ট তৈরি করবেন।
আপনি যা তৈরি করবেন
এই কোডল্যাবে, আপনি SRE এক্সটেনশন ব্যবহার করে GKE বিভ্রাট অনুসন্ধান ও সমাধান করবেন। আপনাকে যা করতে হবে:
- নেটওয়ার্ক পলিসি ব্লকেজ, ত্রুটিপূর্ণ ক্যানারি ডেপ্লয়মেন্ট এবং ফায়ারওয়াল রুল আপডেট ব্যবহার করে একটি GKE বিভ্রাট অনুকরণ করুন।
- SRE এক্সটেনশন দ্বারা চালিত একটি CLI অ্যাসিস্ট্যান্ট ব্যবহার করে ক্লাস্টার বিভ্রাটের সমস্যা নির্ণয় করুন।
- সেফ এক্সিকিউটর প্যাটার্ন ব্যবহার করে নিরাপদে প্রতিকারমূলক পদক্ষেপগুলি বাস্তবায়ন করুন।
- একটি বিশদ ময়নাতদন্ত নথি তৈরি করুন।
- গুগল ক্লাউড মনিটরিং টাইম-সিরিজ কোয়েরি ব্যবহার করে ঘটনার মেট্রিক্সের গ্রাফ তৈরি করুন।
আপনি যা শিখবেন
- SRE এক্সটেনশন স্কিল ব্যবহার করে কীভাবে GKE Kubernetes রিসোর্স এবং পলিসি পরিদর্শন করা যায়।
- যথাযথ ঝুঁকি মূল্যায়নের মাধ্যমে এজেন্ট-প্রস্তাবিত কমান্ড চালানোর জন্য কীভাবে সেফ এক্সিকিউটর প্যাটার্ন ব্যবহার করা যায়।
- GCM থেকে সরাসরি মেট্রিক্সের গ্রাউন্ডেড চার্ট তৈরি করতে
monitoring-graphsস্কিলটি কীভাবে ব্যবহার করবেন। - একটি কাঠামোগত ময়নাতদন্ত বিন্যাসে ঘটনার প্রাপ্ত তথ্য কীভাবে নথিভুক্ত করতে হয়।
আপনার যা যা লাগবে
- বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট।
- কমান্ড-লাইন টুলসমূহ:
gcloud,kubectl,terraform। - Antigravity CLI স্থানীয়ভাবে অথবা ক্লাউড শেলে ইনস্টল করা আছে।
- একটি IDE (যেমন, vscode, IntelliJ, RubyMine, বা Vim)।
কেন SRE এক্সটেনশন + Agentic CLI?
প্রোডাকশন বিভ্রাটগুলো দ্রুত পরিবর্তনশীল এবং এর জন্য একাধিক সাবসিস্টেমের (যেমন কুবারনেটিস রিসোর্স, ভিপিসি নেটওয়ার্ক, ক্লাউড মনিটরিং মেট্রিক্স, আইএএম পারমিশন) মধ্যে সমন্বয়ের প্রয়োজন হয়। এসআরই এক্সটেনশনটি এজেন্টিক সিএলআই হেল্পারগুলোকে (যেমন অ্যান্টিগ্র্যাভিটি সিএলআই) স্বয়ংক্রিয় সহ-পাইলট হিসেবে কাজ করার সুযোগ দেয়, যা আগে থেকে কম্পাইল করা প্লেবুক এক্সিকিউট করে, মনিটরিং গ্রাফ কোয়েরি করে এবং নিরাপদ প্রতিকারের পরামর্শ দেয়, আর এই পুরো প্রক্রিয়ায় মানব অপারেটরকে অবগত রাখে।
২. প্রস্তুতি গ্রহণ
নিম্নলিখিত বিকল্পগুলির মধ্যে একটি বেছে নিন: আপনি যদি এটি চালাতে চান তবে স্ব-গতিসম্পন্ন পরিবেশ সেটআপ করুন।
আপনার নিজের মেশিনে কোডল্যাবটি চালান, অথবা; যদি এই কোডল্যাবটি সম্পূর্ণভাবে ক্লাউডে চালাতে চান, তাহলে ক্লাউড শেল চালু করুন ।
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে। - আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
- এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।
গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।
৩. পূর্বশর্ত (স্থাপন)
এই টিউটোরিয়ালটির জন্য আপনাকে ইনস্টল করতে হবে:
১. পাইথন এবং ইউভি
python এবং uv ( পাইথনের প্যাকেজ ম্যানেজার)। নিশ্চিত করুন যে আপনার সিস্টেমে ইউভি ইনস্টল করা আছে:
$ curl -LsSf https://astral.sh/uv/install.sh | sh
কেন uv? যদিও আপনি আপনার পছন্দের যেকোনো পাইথন ম্যানেজার ব্যবহার করতে পারেন, uv ব্যবহার করলে আপনার এবং Antigravity CLI-এর জন্য পাইথনের ENV/PATH সেটআপ একই থাকবে, ফলে আপনার শেল অভিজ্ঞতা অনেকটাই Antigravity CLI-এর মতোই হবে। উদাহরণস্বরূপ, আপনি যদি virtualenv ব্যবহার করেন, তাহলে আপনার পরিবেশ অনুকরণ করার জন্য Antigravity CLI "source .env/venv/bin/activate && my-original-command"-এর মতো কাজগুলো করতে বাধ্য হবে।
২. অ্যান্টিগ্র্যাভিটি সিএলআই ( agy )
অফিসিয়াল Antigravity CLI ( agy কমান্ড) ইনস্টল করতে, আপনার টার্মিনাল খুলুন এবং বুটস্ট্র্যাপ ইনস্টলারটি চালান:
ম্যাকওএস এবং লিনাক্সের জন্য:
$ curl -fsSL https://antigravity.google/cli/install.sh | bash
উইন্ডোজের জন্য (পাওয়ারশেল):
irm https://antigravity.google/cli/install.ps1 | iex
এই স্ক্রিপ্টটি গতিশীলভাবে আপনার অপারেটিং সিস্টেম এবং আর্কিটেকচার সনাক্ত করবে এবং সর্বশেষ সংকলিত সংস্করণটি ডাউনলোড করবে।
agy
বাইনারি, এবং আপনার PATH কনফিগার করুন। পরিবর্তনগুলি কার্যকর করার জন্য আপনার টার্মিনাল পুনরায় চালু করুন অথবা আপনার শেল কনফিগারেশন রিলোড করুন।

প্রমাণীকরণ
আপনার একটি গুগল এআই স্টুডিও এপিআই কী প্রয়োজন।
আপনার এপিআই কী রপ্তানি করুন:
export GEMINI_API_KEY="your-api-key"
gcloud দিয়ে প্রমাণীকরণ করুন:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
gcloud auth application-default login
আপনার কাজের পরিবেশ সেট আপ করুন এবং মাইক্রোসার্ভিসেস ডেমো অ্যাপ্লিকেশনটি স্থাপন করুন।
চলুন microservices-demo অ্যাপ্লিকেশনটি ক্লোন করি এবং টেরাফর্মের মাধ্যমে ইনফ্রাস্ট্রাকচার ও অ্যাপ্লিকেশনটি ডেপ্লয় করি।
এই মুহূর্তে আপনি আপনার IDE (Visual Studio Code, IntelliJ, RubyMine, ..) খুলে ফোল্ডারটি খুলতে পারেন।
# 1. Find an empty directory, and download this repo.
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
cd microservices-demo/terraform
# 2. Update project ID to your gcloud project ID
sed -i 's/<project_id_here>/YOUR_ACTUAL_PROJECT_ID/g' terraform.tfvars
# 3. Deploy the microservices-demo application in GKE autopilot
# If there is a prompt answer yes and continue. This step can take up to 10 mins for provision gke autopilot cluster and deploy microservices-demo application
terraform init
terraform plan
terraform apply
# 4. Verify the IP address of frontend-service to access the online-boutique application
kubectl get service frontend-external | awk '{print $4}'
# 5. Find an empty directory , and download this repo.
git clone https://github.com/palladius/sre-testing-suite.git
cd sre-testing-suite/test-scenarios/microservices-demo-gke/breakage-scenarios
আপনার সেটআপ পরীক্ষা করার জন্য, আপনি http://[IP ADDRESS]-এ প্রবেশ করে অনলাইন-বুটিক অ্যাপটি লোড করতে পারেন।
sre-antigravity-cli-extension-এর জন্য আপনার কাজের পরিবেশ সেট আপ করুন।
# 1. Install the SRE Extension plugin globally
git clone https://github.com/gemini-cli-extensions/sre.git ~/.gemini/config/plugins/sre-extension
# 2. Launch the Antigravity CLI (agy)
agy # This runs the CLI under your current breakage-scenarios folder.
# Login with your corporate or personal account when prompted.
# 3. Within the agy agent prompt, configure your MCP servers and GCP project
Use the gcp-mcp-setup skill to setup my GCP project "<gcp_project_id>" with email jane-doe-sre@credible-company.com
৪. ধাপ ১: বিভ্রাটের অনুকরণ (বিঘ্নের পরিস্থিতি)
এই ধাপে, আমরা ইচ্ছাকৃতভাবে ডেপ্লয় করা GKE ক্লাস্টারটি ভেঙে দেবো, যাতে একটি বাস্তব প্রোডাকশন ঘটনার অনুকরণ করা যায়। আপনার কাছে বেছে নেওয়ার জন্য তিনটি সিনারিও রয়েছে (অথবা আপনি ক্রমানুসারে তিনটিই চেষ্টা করতে পারেন):
দৃশ্যকল্প ১: চেকআউট পরিষেবা নেটওয়ার্ক অবরোধ (সাধারণ/অটোপাইলট)
এই সিনারিওটি একটি Kubernetes NetworkPolicy প্রয়োগের মাধ্যমে ফ্রন্টএন্ড এবং চেকআউট সার্ভিসের মধ্যে একটি বিচ্ছিন্ন সংযোগের পরিস্থিতি অনুকরণ করে, যা একটি ট্র্যাফিক "ব্ল্যাক হোল" হিসেবে কাজ করে।
- সিনারিও ফোল্ডারে যান:
cd breakage1-checkout
- ভাঙনটি ঘটান:
এটি./break.sh
defaultনেমস্পেসেupdate-checkout-from-frontendনামের একটি NetworkPolicy তৈরি করে, যাcheckoutserviceএ ইনগ্রেস ট্র্যাফিককে বাধা দেয়, যদি না তাapp: frontend-checkout-testলেবেলযুক্ত কোনো পড থেকে আসে (যার কোনো অস্তিত্ব নেই)। - অনলাইন বুটিকের ফ্রন্টএন্ড থেকে পণ্য কেনার চেষ্টা করুন। চেকআউট পেজটি আটকে যাবে অথবা একটি HTTP 500 ত্রুটি দেখাবে।
দৃশ্যকল্প ২: ত্রুটিপূর্ণ ক্যানারি রোলআউট (ইস্টিও সহ অটোপাইলট)
এই সিনারিওটি একটি ত্রুটিপূর্ণ ডেপ্লয়মেন্টের অনুকরণ করে, যেখানে কুবারনেটিস ক্যানারি ডেপ্লয়মেন্টের মাধ্যমে ফ্রন্টএন্ডের একটি বাগযুক্ত সংস্করণ রোল আউট করা হয়।
- সিনারিও ফোল্ডারে যান:
cd ../breakage2-canary
- ভাঙনটি ঘটান:
এটি./break.sh
frontend-canaryএকটি ক্যানারি ডিপ্লয়মেন্ট স্থাপন করে, যার এনভায়রনমেন্ট ভেরিয়েবলগুলিতে একটি টাইপো রয়েছে:PRODUCT_CATALOG_SERVICE_ADDRproductcatalogservices:3550এর পরিবর্তেproductcatalogservice:3550হিসেবে কনফিগার করা হয়েছে। - ফ্রন্টএন্ড হোমপেজটি লোড করুন। এটি মাঝে মাঝে ব্যর্থ হবে (রাউটিং ওয়েটের উপর নির্ভর করে), কারণ ক্যানারি সার্ভিসটি প্রোডাক্ট ক্যাটালগটি রিজলভ করতে পারে না।
দৃশ্যকল্প ৩: ভিপিসি ফায়ারওয়াল ক্লাস্টার ব্লকেজ
এই সিনারিওটি ভিপিসি ফায়ারওয়াল কনফিগারেশনের এমন একটি ত্রুটিকে অনুকরণ করে, যা জিকেই ক্লাস্টারে সমস্ত ইনগ্রেস ট্র্যাফিককে ব্লক করে দেয়।
- সিনারিও ফোল্ডারে যান:
cd ../breakage3-firewall
- ভাঙনটি ঘটান:
এটি./break.sh
frontend-ingress-v2নামের একটি VPC-স্তরের ফায়ারওয়াল নিয়ম তৈরি করে, যারpriority=1এবং actionDENYথাকে এবং এটি80,443ও8080পোর্টের ইনগ্রেস ট্র্যাফিককে লক্ষ্য করে। - অনলাইন বুটিক ওয়েবসাইটটি সম্পূর্ণরূপে অচল হয়ে যাবে এবং অনুরোধগুলোর সময়সীমা শেষ হয়ে যাবে।
৫. ধাপ ২: এসআরই এক্সটেনশনের মাধ্যমে বিভ্রাট তদন্ত
এখন যেহেতু অ্যাপ্লিকেশনটি ডাউনলোড হয়ে গেছে, চলুন আপনার সিএলআই অ্যাসিস্ট্যান্ট (অ্যান্টিগ্র্যাভিটি সিএলআই) ব্যবহার করে তদন্ত শুরু করা যাক।
- মূল ব্রেকএজ সিনারিও ফোল্ডারে ফিরে যান এবং আপনার CLI হেল্পারটি চালু করুন:
cd .. agy
- সহকারীকে একটি পরিকাঠামো অনুসন্ধান ও রোগনির্ণয়মূলক পরীক্ষা করতে বলুন:
Investigate my GKE cluster for outages. Are all services healthy? - এজেন্ট যা করে:
- এটি
investigation-entrypointএবংgcp-playbooksস্কিলগুলোকে সক্রিয় করে। - এটি ব্যর্থ হওয়া টার্গেটগুলো সনাক্ত করতে কুবারনেটিস পড, ডিপ্লয়মেন্ট এবং সার্ভিসগুলোর তালিকা দেখায়।
- এটি নেটওয়ার্ক পলিসি (সিনারিও ১-এর জন্য), ডেপ্লয়মেন্ট কনফিগারেশন (সিনারিও ২-এর জন্য) অথবা ফায়ারওয়াল রুল (সিনারিও ৩-এর জন্য) পরীক্ষা করে।
- এটি
- সিনারিও ১-এর জন্য, এজেন্টের রিপোর্ট করা উচিত: 🔴 ঘটনা শনাক্ত হয়েছে :
update-checkout-from-frontendনামের একটিNetworkPolicycheckoutserviceপডগুলোকে বিচ্ছিন্ন করে রাখছে। - সিনারিও ২-এর জন্য, এজেন্টের রিপোর্ট করা উচিত: 🔴 ঘটনা শনাক্ত করা হয়েছে : Deployment
frontend-canaryproductcatalogserviceproductcatalogservices:3550productcatalogservice:3550দিয়ে কনফিগার করা হয়েছে। - সিনারিও ৩-এর জন্য, এজেন্টকে রিপোর্ট করতে হবে: 🔴 ঘটনা শনাক্ত করা হয়েছে : একটি VPC ফায়ারওয়াল রুল
frontend-ingress-v2পোর্ট80,443এবং8080-এ ইনগ্রেস ট্র্যাফিক বাধা দিচ্ছে।
৬. ধাপ ৩: বিভ্রাটের প্রশমন ও সমাধান
চলুন, বিভ্রাটটি সমাধান করতে CLI-এর সেফ এক্সিকিউটর প্যাটার্ন ব্যবহার করি।
- আপনার CLI সহকারীকে একটি সমাধান প্রস্তাব করতে ও প্রয়োগ করতে বলুন:
Propose a fix for the outage and apply it. - সেফ এক্সিকিউটরের কার্যপ্রক্রিয়া:
- কমান্ড সাজেশনগুলো কার্যকর করার আগে, SRE এক্সটেনশনটি
safe-sre-investigatorস্কিলটি ব্যবহার করে একটি নিরাপত্তা নিরীক্ষা চালায়। - এটি আপনাকে ঠিক কোন কমান্ডটি চালাতে চায় তা দেখাবে এবং ঝুঁকির মাত্রা (যেমন, কম, মাঝারি, বেশি) নির্ধারণ করবে।
- সিনারিও ১-এর জন্য এটি প্রস্তাব করবে:
kubectl delete networkpolicy update-checkout-from-frontend
- সিনারিও ২-এর জন্য এটি প্রস্তাব করবে:
kubectl delete deployment frontend-canary
- সিনারিও ৩-এর জন্য এটি প্রস্তাব করবে:
gcloud compute firewall-rules delete frontend-ingress-v2 --quiet
- কমান্ড সাজেশনগুলো কার্যকর করার আগে, SRE এক্সটেনশনটি
- CLI থেকে অনুরোধ করা হলে কমান্ড কার্যকর করা নিশ্চিত করুন।
- অনলাইন বুটিক হোমপেজটি রিফ্রেশ করে যাচাই করুন যে ওয়েবসাইটটি পুনরায় চালু হয়েছে এবং সম্পূর্ণরূপে কার্যকর রয়েছে।
- আপনার শেলে, স্বাস্থ্য যাচাই করার জন্য আপনি সংশ্লিষ্ট সিনারিও চেক স্ক্রিপ্টটি চালাতে পারেন:
./breakage1-checkout/check.sh # or ./breakage2-canary/check.sh # or ./breakage3-firewall/check.sh
৭. ধাপ ৪: ঘটনার ময়নাতদন্ত প্রতিবেদন তৈরি করা
SRE লাইফসাইকেলের একটি অপরিহার্য অংশ হলো ইনসিডেন্টটি নথিভুক্ত করা, যাতে টিম তা থেকে শিখতে পারে। চলুন postmortem-create স্কিলটি ব্যবহার করে এই কাজটি স্বয়ংক্রিয় করে ফেলি।
- আপনার CLI অ্যাসিস্ট্যান্টকে পোস্টমর্টেম ডকুমেন্টটি লিখতে বলুন:
Create a postmortem for the checkout service network policy outage. - এজেন্ট নিম্নলিখিত বিষয়গুলো সম্পর্কে বিস্তারিত তথ্য সংগ্রহ করবে:
- ঘটনাটির শুরুর সময় (আপনার CLI কমান্ড হিস্ট্রি/লগ থেকে সংগৃহীত)।
- মূল কারণ (বাধা সৃষ্টিকারী নেটওয়ার্ক পলিসি)।
- এটি প্রশমিত করার জন্য গৃহীত পদক্ষেপসমূহ।
- এটি আপনার ওয়ার্কস্পেসে
postmortem.mdনামের একটি নতুন মার্কডাউন ফাইল তৈরি করবে। - বিস্তারিত পর্যালোচনা করতে
postmortem.mdখুলুন। আপনি এই ধরনের বিভাগ দেখতে পাবেন:- ঘটনার সারসংক্ষেপ
- ঘটনাক্রম
- মূল কারণ বিশ্লেষণ (RCA)
- করণীয় বিষয়সমূহ / প্রতিরোধমূলক ব্যবস্থা
৮. ধাপ ৫: ভিত্তিযুক্ত মেট্রিক্স গ্রাফ যোগ করা
পোস্টমর্টেমকে পেশাদারী রূপ দিতে, আমাদের ঘটনাটির চাক্ষুষ প্রমাণ প্রয়োজন। আমরা গুগল ক্লাউড মনিটরিং (GCM) থেকে টাইম-সিরিজ ডেটা আনতে এবং এরর স্পাইক দেখানো একটি PNG চার্ট তৈরি করতে monitoring-graphs স্কিলটি ব্যবহার করব।
- আপনার CLI হেল্পারকে গ্রাফটি তৈরি করতে এবং পোস্টমর্টেমে যোগ করতে বলুন:
Query GCM for frontend HTTP request error rates over the last 1 hour, generate a line chart, and embed it into postmortem.md. - ভেতরের খবর:
- এজেন্ট ক্লাউড মনিটরিং-এ কোয়েরি করার জন্য
monitoring-graphsপাইথন স্ক্রিপ্টটি কল করে। - এটি মেট্রিক সংগ্রহ করে (যেমন,
kubernetes.io/container/restart_countঅথবাloadbalancing.googleapis.com/https/request_count)। - এটি
matplotlibব্যবহার করে চার্টটি অঙ্কন করে এবংincident_metrics.pngনামে সংরক্ষণ করে। - এটি একটি ছবির লিঙ্ক যুক্ত করে
postmortem.mdফাইলটি আপডেট করে:
- এজেন্ট ক্লাউড মনিটরিং-এ কোয়েরি করার জন্য
- ক্লাস্টারটি ঠিক কখন ডাউন হয়েছিল এবং ট্র্যাফিক কখন স্বাভাবিক অবস্থায় ফিরে এসেছিল, সেই সঠিক মুহূর্তগুলো দেখানো চার্টটি দেখতে তৈরি হওয়া
incident_metrics.pngফাইলটি খুলুন।
৯. ধাপ ৬: পরিষ্কার-পরিচ্ছন্নতা
আপনার গুগল ক্লাউড অ্যাকাউন্টে যাতে অপ্রয়োজনীয় চার্জ যুক্ত না হয়, তা নিশ্চিত করতে চলুন স্থাপন করা পরিকাঠামোটি পরিষ্কার করে নিই।
- টেরাফর্ম ফোল্ডারে যান:
cd ../../microservices-demo/terraform
- ধ্বংস করার কমান্ডটি চালান:
terraform destroy -auto-approve
- যাচাই করুন যে সমস্ত GCP GKE রিসোর্স সফলভাবে মুছে ফেলা হয়েছে।
১০. অভিনন্দন!
আপনি GKE ক্লাস্টার ভাঙন ও বিভ্রাট তদন্ত কোডল্যাবটি সম্পন্ন করেছেন!
আপনি যা যা আলোচনা করেছেন:
- GKE-তে ১০-স্তর বিশিষ্ট অনলাইন বুটিক মাইক্রোসার্ভিস ডেমোটি ডেপ্লয় করা হয়েছে।
- বাস্তব জগতের তিনটি SRE বিভ্রাট অনুকরণ করা হয়েছে (নেটওয়ার্ক পলিসি ডিনায়াল, ত্রুটিপূর্ণ ক্যানারি রোলআউট, VPC ফায়ারওয়াল রুল ডিনায়াল)।
- বিভ্রাটগুলো শনাক্ত ও নির্ণয় করার জন্য Antigravity CLI-এর SRE এক্সটেনশনটি ব্যবহার করা হয়েছে।
- প্রতিকারমূলক কমান্ড পর্যালোচনা ও কার্যকর করার জন্য সেফ এক্সিকিউটর প্যাটার্ন ব্যবহার করা হয়েছে।
- একটি পেশাদার মার্কডাউন পোস্টমর্টেম তৈরি করা হয়েছে।
- স্বয়ংক্রিয়ভাবে একটি বাস্তব ঘটনা গ্রাফ তৈরি ও অন্তর্ভুক্ত করার জন্য ক্লাউড মনিটরিং মেট্রিক্স কোয়েরি করা হয়েছে।
আপনার CLI এজেন্টকে আরও সম্প্রসারণ করার বিষয়ে বিস্তারিত জানতে SRE এক্সটেনশন গিটহাব পেজটি দেখুন।