১. সংক্ষিপ্ত বিবরণ
ক্লাউড শেল হলো একটি অনলাইন ডেভেলপমেন্ট এবং অপারেশনস এনভায়রনমেন্ট, যা আপনার ব্রাউজারের মাধ্যমে যেকোনো জায়গা থেকে অ্যাক্সেস করা যায়। আপনি এর অনলাইন টার্মিনাল দিয়ে আপনার রিসোর্সগুলো পরিচালনা করতে পারেন, যেখানে gcloud কমান্ড-লাইন টুল, kubectl-এর মতো ইউটিলিটি আগে থেকেই লোড করা থাকে। এছাড়াও, আপনি অনলাইন ক্লাউড শেল এডিটর ব্যবহার করে আপনার ক্লাউড-ভিত্তিক অ্যাপগুলো ডেভেলপ, বিল্ড, ডিবাগ এবং ডিপ্লয় করতে পারেন।
এই ল্যাবে আপনি ক্লাউড শেল ও ক্লাউড শেল এডিটর নিয়ে কাজ করবেন এবং ক্লাউড কোড ব্যবহার করে স্থানীয় এমুলেটর ও আসল সার্ভিসগুলোতে কন্টেইনার-ভিত্তিক অ্যাপ্লিকেশন তৈরি, ডেপ্লয় ও পরীক্ষা করবেন।
আপনি যা শিখবেন
- ক্লাউড শেলের প্রধান বৈশিষ্ট্যগুলো সম্পর্কে জানুন ও জেনে নিন।
- বিভিন্ন ক্লাউড শেল ব্যবহারের ধরণ নিয়ে অনুশীলন করুন
- উন্নত ব্যবহারের জন্য আপনার ক্লাউড শেল পরিবেশটি কাস্টমাইজ করুন।
- ক্লাউড কোডের অপশন এবং ফিচারগুলো সম্পর্কে জেনে নিন।
- Kubernetes অ্যাপ্লিকেশনের জন্য Cloud Code-এর বিস্তারিত জানুন।
- Minikube-এর মতো স্থানীয় এমুলেটর ব্যবহার করুন
পূর্বশর্ত
- আপনার এডিটর পারমিশনসহ একটি GCP প্রজেক্ট, একটি GCP অ্যাকাউন্ট এবং ক্লাউড শেল-এ অ্যাক্সেস প্রয়োজন হবে।
- ঐচ্ছিক অংশগুলোর জন্য আপনার একটি টার্মিনাল এমুলেটর এবং গুগল ক্লাউড এসডিকে ইনস্টল করা প্রয়োজন হবে।
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।



- প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
- প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর প্রয়োজন হয় না। বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত
PROJECT_IDহিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে। - আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নাম্বার এবং কিছু এপিআই এটি ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
- এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর যাতে কোনো বিলিং না হয়, সেজন্য রিসোর্সগুলো বন্ধ করতে আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা পুরো প্রজেক্টটিই ডিলিট করে দিতে পারেন। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
৩. ক্লাউড শেল টার্মিনাল নিয়ে কাজ করা
এই অংশে আপনি ক্লাউড শেল টার্মিনাল সম্পর্কে জানতে পারবেন, এর ইউজার ইন্টারফেস (UI) কীভাবে ব্যবহার করতে হয়, এর ফিচারগুলো কীভাবে কাজে লাগাতে হয়, এবং এর কনফিগারেশন অপশন ও বিভিন্ন উপায় সম্পর্কে জানবেন যা আপনার কর্মদক্ষতা বাড়াতে সাহায্য করবে।
ক্লাউড শেলের দুটি প্রধান টুল রয়েছে, ক্লাউড শেল টার্মিনাল এবং ক্লাউড শেল এডিটর । এই ল্যাবে ক্লাউড শেল টার্মিনাল এবং ক্লাউড শেল শব্দ দুটি একই অর্থে ব্যবহৃত হবে, তবে টার্মিনাল এমুলেটর এবং IDE-এর মধ্যে স্পষ্ট পার্থক্য করার জন্য এডিটরটিকে সর্বদা ক্লাউড শেল এডিটর হিসাবে উল্লেখ করা হবে।
ক্লাউড শেল হলো একটি সম্পূর্ণ কার্যকরী ক্লাউড-ভিত্তিক শেল, যা একটি ক্ষণস্থায়ী গুগল কম্পিউট ইঞ্জিন ডেবিয়ান-ভিত্তিক লিনাক্স মেশিনের উপর নির্মিত এবং আপনার ব্যবহারের জন্য সর্বদা উপলব্ধ। এতে গুগল ক্লাউড এসডিকে ইনস্টল করা থাকে এবং সাথে git , kubectl , kubectx , curl , python3 , tmux মতো বেশ কিছু প্রাসঙ্গিক টুলও থাকে।
আপনার $HOME ডিরেক্টরিটি গুগল ক্লাউডের ক্লাউড স্টোরেজে সংরক্ষিত থাকে এবং প্রতিবার ক্লাউড শেল মেশিন চালু হওয়ার সময় এটি স্বয়ংক্রিয়ভাবে মাউন্ট হয়। তাই, ক্লাউড শেল মেশিন বন্ধ হয়ে গেলেও এর অধীনে রাখা কোনো তথ্য হারাবে না। এর মানে হলো, আপনি যদি আবার ক্লাউড শেল চালু করেন, তাহলে আপনার $HOME ডিরেক্টরি এবং এতে করা আপনার যেকোনো কাস্টমাইজেশন ব্যবহারের জন্য আগের মতোই থাকবে।
ক্লাউড শেল চালু করা হচ্ছে
-
console.cloud.google.comএ যান এবং যদি আগে থেকে GCP কনসোলে লগ ইন করা না থাকে, তাহলে আপনার Google ক্রেডেনশিয়ালস দিন। আপনার সামনে Google Cloud Platform-এর কনসোলের মূল UI প্রদর্শিত হবে। - ক্লাউড কনসোল মেনু বার সিলেক্টর থেকে আপনি যে GCP প্রজেক্ট আইডি নিয়ে কাজ করবেন সেটি নির্বাচন করুন:

- মেনু বারের ডানদিকে, আপনার অ্যাকাউন্টের অ্যাভাটারের পাশে ক্লাউড শেল সক্রিয় করার বাটনটি খুঁজুন:

- ক্লাউড শেল আইকনে ক্লিক করুন এবং ক্লাউড শেল টার্মিনালটি খুলে যাবে, যা GCP কনসোল UI-এর ঠিক নিচে একটি নতুন প্যানে প্রদর্শিত হবে: UI:

এই প্যানে যা আছে, তাকে ক্লাউড শেল টার্মিনাল বলা হয়।
- ক্লাউড শেল টার্মিনালে যান এবং লক্ষ্য করুন যে, যেহেতু আপনি জিসিপি কনসোল থেকে সঠিক জিসিপি প্রজেক্ট আইডি নির্বাচন করেছেন, ক্লাউড শেল তা জানে, তাই আপনাকে এটি আবার উল্লেখ করতে হবে না:
echo $GOOGLE_CLOUD_PROJECT
এর মাধ্যমে আপনার GCP প্রজেক্ট আইডি আউটপুট হবে, যা ক্লাউড শেল প্রম্পটেও দেখানো হয়।
টুলগুলির মধ্যে পরিবর্তন করা
ক্লাউড শেল আপনাকে বিভিন্ন টুল এবং কনফিগারেশন অপশন প্রদান করে। ক্লাউড শেল মেনুতে উপলব্ধ অপশনগুলোর মাধ্যমে সেগুলো পর্যালোচনা করুন:

- বোতামে ক্লিক করুন
সেই বারে যা আপনাকে ক্লাউড শেল টার্মিনাল ম্যাক্সিমাইজ করতে এবং আপনার ব্রাউজারের ট্যাবের পুরো জায়গা দখল করতে দেবে:

- ক্লাউড শেল ব্রাউজার ট্যাবটিকে ম্যাক্সিমাইজ করে এবং এর সম্পূর্ণ জায়গা দখল করে নেয়:

- এটিতে আবার ক্লিক করুন। ব্রাউজার ট্যাবের জায়গাটি আবার ক্লাউড কনসোল এবং ক্লাউড শেলের মধ্যে ভাগ হয়ে যাবে।
নতুন ট্যাব খোলা
ক্লাউড শেল টার্মিনাল আপনাকে প্রয়োজনমতো যত খুশি ট্যাব খোলার সুযোগ দেয়।
- নিচের বাটনটিতে ক্লিক করে একটি নতুন ট্যাব খুলুন।

- এখন ট্যাবের নামের পাশে থাকা x-এ ক্লিক করে অথবা সংশ্লিষ্ট শেল-এ
exitটাইপ করে নতুন ট্যাবটি বন্ধ করুন:

একটি নতুন উইন্ডো খোলা
একটি নতুন ব্রাউজার উইন্ডোতে ক্লাউড শেল খুললে আপনি একটি উইন্ডোতে ক্লাউড কনসোল এবং অন্যটিতে ক্লাউড শেল রাখতে পারবেন।
- নিচের বাটনটিতে ক্লিক করুন এবং দেখুন কিভাবে ক্লাউড শেল একটি নতুন ব্রাউজার ট্যাবে খোলে:

- লক্ষ্য করুন যে ক্লাউড শেল এখন একই টুলবার অপশনগুলো দিচ্ছে, কিন্তু চেহারাটা কিছুটা ভিন্ন:

- পরবর্তী বিভাগগুলো পড়ার সময় এই নতুন ব্রাউজার ট্যাবেই থাকুন।
Tmux ব্যবহার করে সেশন স্থানান্তর করা
ক্লাউড শেলের সাথে tmux অন্তর্ভুক্ত থাকে। Tmux হলো GNU Screen-এর মতো একটি অত্যন্ত জনপ্রিয় টার্মিনাল মাল্টিপ্লেক্সার। tmux-এর সাথে এই ইন্টিগ্রেশনের ফলে আপনি যেখানেই থাকুন না কেন, ক্লাউড শেল আপনার সেশনটি অক্ষুণ্ণ রাখতে পারে।
পরবর্তী ধাপগুলোতে আপনি এই ধারণাটি নিয়ে অনুশীলন করবেন, যাতে ফিচারটি আরও ভালোভাবে বুঝতে পারেন।
ক্লাউড শেল টার্মিনাল সরানো
- আপনি এইমাত্র যে ক্লাউড শেল ট্যাবটি খুলেছেন, সেখানে `
topকমান্ডটি টাইপ করুন:

`top` কমান্ডটি আপনার ক্লাউড শেল টার্মিনালে চলমান প্রসেসগুলোর একটি রিয়েল-টাইম চিত্র প্রদান করে। `tmux` দ্বারা প্রদত্ত ক্লাউড শেলে সেশনের স্থায়িত্ব পর্যবেক্ষণ করার জন্য আপনি এটি ব্যবহার করবেন।
- আপনার ব্রাউজারের প্রথম ট্যাবে ফিরে যান (যেটিতে ক্লাউড কনসোল রয়েছে)।
- লক্ষ্য করুন যে, যেহেতু আপনি আগে ক্লাউড শেল একটি নতুন উইন্ডোতে খোলার সিদ্ধান্ত নিয়েছিলেন, তাই একটি বার্তা দেখা যাচ্ছে যেখানে লেখা আছে, "
Your session was transferred to another browser tab. You can disable this from the "Tmux Settings" option in the Cloud Shell settings menu." - পুনরায় সংযোগ বোতামে ক্লিক করুন:

এরপর আপনি দ্বিতীয় ট্যাবে চলমান শেলটিতে প্রবেশাধিকার পাবেন এবং টপ (top) ঠিক যেমনভাবে আপনি রেখে গিয়েছিলেন, সেভাবেই এখানে চলতে থাকবে।
- আপনার ব্রাউজারের দ্বিতীয় ট্যাবে যান, যেখানে আপনি একটি নতুন উইন্ডোতে ক্লাউড শেল খুলেছিলেন,
- পুনরায় সংযোগ করুন- এ ক্লিক করুন। উইন্ডোটি বন্ধ করার আগে শীর্ষ প্রসেসটি ঠিক যেমন চলছিল, তেমনই ফিরে আসবে।
Tmux ব্যবহার করে উইন্ডো বিভক্ত করা
আপনি এইমাত্র যে কাজে Tmux ব্যবহার করেছেন, এটি তার চেয়ে অনেক বেশি দরকারি। এই ল্যাবের আওতার বাইরে একটি Tmux টিউটোরিয়াল দেওয়া হচ্ছে, আপনি অফিসিয়াল Tmux গেটিং স্টার্টেড -এ এ সম্পর্কে আরও তথ্য পেতে পারেন।
তবে, tmux ক্লাউড শেলকে এমন কিছু অতিরিক্ত বৈশিষ্ট্য দেয় যা স্থানীয় টার্মিনাল এমুলেটরগুলিতেও পাওয়া যায়। এর একটি উদাহরণ দেখানোর জন্য, আপনি পাশাপাশি দুটি টার্মিনালকে বিভক্ত করে দেখবেন।
- ক্লাউড শেলের ভিতরে,
Ctrl + bচাপুন, এবং তারপর%চাপুন। - লক্ষ্য করুন কিভাবে tmux মূল প্যানেটির ঠিক পাশেই একটি নতুন প্যানে তৈরি করে:

- দ্বিতীয় প্যানে ক্লিক করুন এবং
exitটাইপ করুন।
ওয়েব প্রিভিউ ব্যবহার করুন
ক্লাউড শেল আপনার কম্পিউটারে চলমান লোকাল ব্রাউজারের মাধ্যমে ক্লাউডে চলমান ক্লাউড শেল মেশিন থেকে স্বয়ংক্রিয় পোর্ট ফরওয়ার্ডিংও স্থাপন করতে পারে।
- ক্লাউড শেলে টাইপ করুন:
python3 -m http.server 8080
- উপরের ডান কোণায় থাকা ওয়েব প্রিভিউ অপশনে গিয়ে পোর্ট ৮০৮০-তে প্রিভিউ নির্বাচন করুন:

একটি নতুন ট্যাব খুলবে এবং সেখানে সেই পোর্টে পরিবেশিত ডিফল্ট পৃষ্ঠাটি দেখা যাবে।
মনে রাখবেন যে, আপনি ক্লাউড শেলে আপনার অ্যাপ্লিকেশনটি যে কোনো পোর্ট ব্যবহার করুক না কেন, শুধু পোর্ট 8080 জন্যই নয়, বরং সেই পোর্টটিও পরিবর্তন করতে এবং প্রিভিউ দেখতে পারবেন।
অতিরিক্ত ক্লাউড শেল বিকল্পগুলি অ্যাক্সেস করা
ক্লাউড শেলে অতিরিক্ত সেটিংস ও অপশন রয়েছে।
- অপশনগুলো অ্যাক্সেস করতে ক্লাউড শেল মেনুতে থাকা তিনটি ডটে ক্লিক করুন:

এখানে সবচেয়ে প্রাসঙ্গিক বিকল্পগুলো হলো ক্লাউড শেলে ফাইল আপলোড বা ডাউনলোড করার সুবিধা এবং কোনো সমস্যা দেখা দিলে ক্লাউড শেল মেশিনটি রিস্টার্ট করা।
৪. ক্লাউড শেল এডিটর নিয়ে কাজ করা
ক্লাউড শেলের অন্যতম গুরুত্বপূর্ণ একটি বৈশিষ্ট্য হলো ক্লাউড শেল এডিটর। এটি ওপেন সোর্স প্রজেক্ট এক্লিপ্স থেইয়া-এর উপর ভিত্তি করে নির্মিত একটি পূর্ণাঙ্গ আইডিই (IDE), যেখানে গুগলসহ আরও অনেকে অবদান রেখেছে। এর গঠন ও অনুভূতি ভিএসকোড (VSCode)-এর সাথে অনেকটাই সাদৃশ্যপূর্ণ, কারণ উভয়ই বেশ কিছু সাধারণ ওপেন সোর্স ভিত্তিক উপাদান ব্যবহার করে, যেমন মোনাকো এডিটর, এক্সটেনশন মডেল, ল্যাঙ্গুয়েজ সার্ভার প্রোটোকল এবং ডিবাগ অ্যাডাপ্টার প্রোটোকল।
যেহেতু Theia/Cloud Shell Editor একটি বেশ জটিল টুল, তাই Cloud Shell Editor-এর সমস্ত বৈশিষ্ট্য বর্ণনা করা এই ল্যাবের আওতার বাইরে। এই অংশে আপনি এই গুগল ক্লাউড ইমপ্লিমেন্টেশনে উপলব্ধ কিছু মূল ধারণা এবং অনন্য বৈশিষ্ট্য সম্পর্কে জানবেন।
ক্লাউড শেল এডিটর অ্যাক্সেস করা
ক্লাউড শেল এডিটর তিনটি ভিন্ন উপায়ে অ্যাক্সেস করা যায়:
- কমান্ড লাইন থেকে অ্যাক্সেস
- ক্লাউড শেল মেনুর মাধ্যমে অ্যাক্সেস করুন
- আপনার ব্রাউজারে একটি URL ভিজিট করা
নিম্নলিখিত ধাপগুলোর মাধ্যমে এই পদ্ধতিগুলো অভিজ্ঞতা করুন।
- নিম্নলিখিত কমান্ডটি ব্যবহার করে কমান্ড লাইন থেকে .bashrc ফাইলটি খুলুন:
cloudshell edit $HOME/.bashrc
- মেনু থেকে ওপেন এডিটর-এ ক্লিক করে ক্লাউড শেল খুলুন ।
বোতাম:
এটি ক্লাউড শেল টার্মিনাল খোলা রেখেই ক্লাউড শেল এডিটর খোলে। আপনি যদি ট্যাবের পুরো জায়গাটি শুধু ক্লাউড শেল এডিটরের জন্য ব্যবহার করতে চান, তাহলে টার্মিনালটি বন্ধ করতে এডিট বাটনের ডানদিকের বাটনে ক্লিক করুন। এই দুটি বাটন (এডিটর খুলুন/বন্ধ করুন এবং টার্মিনাল খুলুন/বন্ধ করুন) নির্ধারণ করবে ব্রাউজার ট্যাবে কোন টুলটি থাকবে। এর কৌশলটি আয়ত্ত করতে দুটিতেই ক্লিক করার অভ্যাস করুন। - ব্রাউজারের ইউআরএল বারে
ide.cloud.google.comটাইপ করে ক্লাউড শেল এডিটর চালু করুন।
ক্লাউড শেল এডিটর থেকে কমান্ড লাইন ব্যবহার করে
যদিও একই ব্রাউজার ট্যাবে ক্লাউড শেল টার্মিনাল এবং ক্লাউড শেল এডিটর একসাথে থাকে, আপনি ক্লাউড শেল টার্মিনাল বাদ দিয়ে আপনার সমস্ত প্রয়োজনের জন্য শুধুমাত্র ক্লাউড শেল এডিটর এবং এর ভেতরের টার্মিনালটি ব্যবহার করতে পারেন। আপনি যদি IDE-এর ভেতরে কাজ করতে অভ্যস্ত হন এবং VSCode-এর বিভিন্ন শর্টকাট ও পেনের গতিশীলতা সম্পর্কে জানেন, তবে এই বিষয়টি আপনার কাছে যুক্তিযুক্ত মনে হতে পারে।
উপরে উল্লিখিত যেকোনো একটি পদ্ধতি ব্যবহার করে ক্লাউড শেল এডিটর খুলুন। তারপর, এডিটর মেনুতে যান এবং টার্মিনাল > নিউ টার্মিনাল নির্বাচন করুন (অথবা আপনার কীবোর্ডে `Ctrl + `` চাপুন)। ক্লাউড শেল এডিটরের নিচের অংশে একটি নতুন টার্মিনাল প্যানে খুলবে যা আপনি আপনার সমস্ত শেল প্রয়োজনের জন্য ব্যবহার করতে পারবেন:

এর ফলে আপনি tmux পেইন ম্যানেজমেন্ট ব্যবহার না করেই বিভিন্ন টার্মিনাল পেইন পরিচালনা করার সুযোগ পাবেন, যেমনটা ক্লাউড শেল টার্মিনালের ক্ষেত্রে করতে হতো।
ক্লাউড শেল সেটিংস কাস্টমাইজ করা
ক্লাউড শেল এর বাহ্যিক রূপ ও মৌলিক আচরণ থেকে শুরু করে ক্লাউড শেল টার্মিনালের স্টার্টআপ কনফিগারেশন এবং বিস্তারিত পরিচালনা পর্যন্ত বিভিন্ন কাস্টমাইজেশন বিকল্প প্রদান করে। পরবর্তী বিভাগগুলিতে আপনি এই বিভিন্ন বিকল্পগুলি কিছুটা বিস্তারিতভাবে পর্যালোচনা করবেন।
ক্লাউড শেল টার্মিনাল মেনুতে যান এবং গিয়ার আইকনে ক্লিক করুন। বেশ কিছু কনফিগারেশন অপশন দেখা যাবে:

এগুলোর কয়েকটি পর্যালোচনা করুন:
- রঙের থিম : আপনি হালকা, গাঢ় অথবা নিজস্ব কিছু রঙ (যেমন ফন্টের রঙ ও ব্যাকগ্রাউন্ডের রঙ) ব্যবহার করতে পারেন।
- লেখার আকার : বেছে নেওয়ার জন্য ৫টি ভিন্ন ফন্ট সাইজ রয়েছে
- ফন্ট : কুরিয়ার নিউ অথবা মনোস্পেস
- কপি সেটিংস : এখানে আপনি কপি কিবোর্ড শর্টকাটটি পরিবর্তন করে সর্বাধিক জনপ্রিয় লিনাক্স টার্মিনাল এমুলেটরগুলিতে ব্যবহৃত শর্টকাটগুলির অনুরূপ করতে পারেন।
- কিবোর্ড : মেটা কী-কে Alt-এর সাথে ম্যাপ করা (ডিফল্টরূপে, মেটা হলো ESC) এবং কিছু অপারেটিং সিস্টেমে Alt Gr কী-কে ম্যাপ করা।
শেল পরিবেশ কনফিগার করা
ডেবিয়ান-ভিত্তিক লিনাক্স মেশিনে শেল চালনাকারী একটি টার্মিনাল এমুলেটর হিসেবে, আপনি লিনাক্সের মতোই আপনার শেল পরিবেশকে কাস্টমাইজ করতে পারেন। ফলস্বরূপ, প্রতিবার একটি নতুন লগইন শেল প্রসেস তৈরি হওয়ার সময় $HOME এ উপস্থিত যেকোনো কনফিগারেশন ফাইল (যেমন .bashrc) সোর্স করা হবে।
ক্লাউড শেল আপনাকে .customize_environment নামক একটি বিশেষ কনফিগারেশন ফাইলে নির্দিষ্ট করার সুযোগ দেয় যে, প্রতিবার ক্লাউড শেল ইনস্ট্যান্স চালু হওয়ার সময় আপনি কোন কাজগুলো সম্পাদন করতে চান। আপনি এনভায়রনমেন্ট কাস্টমাইজেশন ডকুমেন্টেশনে এই বিষয়ে আরও পড়তে পারেন।
ক্লাউড শেল টার্মিনালে কিছু কনফিগারেশন যোগ করার অনুশীলন করুন। ক্লাউড শেল টার্মিনালে যান এবং নিম্নলিখিত নমুনা কোড রিপোটি ক্লোন করুন:
git clone https://gitlab.com/javiercanadillas/cloud-code-getting-started.git
এই রিপোজিটরিতে দুটি প্রধান ইভেন্টের জন্য নমুনা রয়েছে, যেখানে আপনি আপনার ক্লাউড শেল কনফিগার করতে চাইতে পারেন:
- যখনই ক্লাউড শেল ইনস্ট্যান্স চালু হবে,
$HOME/.customize_environmentফাইলটি পড়া হবে। এই প্রক্রিয়ার এক্সিকিউশন লগ/var/log/customize_environmentএ পাওয়া যাবে এবং সফলভাবে সম্পন্ন হলে/google/devshell/customize_environment_doneনামে একটি ফাইল তৈরি হবে। - যখনই কোনো নতুন শেল প্রসেস চালু করা হয় (নতুন উইন্ডো, নতুন ট্যাব...); তখন সাধারণ ব্যাশ শেল কনফিগারেশন ফাইলগুলো পড়া হবে।
এই ধাপগুলো অনুসরণ করে উভয়ের সাথেই অনুশীলন করুন:
- রিপো দ্বারা প্রদত্ত কাস্টমাইজেশনগুলো চালু করতে নিম্নলিখিত কমান্ডটি চালান:
cd cloud-code-getting-started
source set_env_cust.sh
এটি পূর্বে উল্লিখিত উভয় কাস্টমাইজেশন বিকল্প সেট আপ করে এবং সেগুলোকে সক্রিয় করে।
- নতুন শেল প্রম্পটটি লক্ষ্য করুন।
.bash_profileফাইল থেকে নেওয়া একটি ব্যাশ স্ক্রিপ্ট এই নতুন প্রম্পটটি কনফিগার করেছে, যা ডিফল্ট প্রম্পটের চেয়ে ছোট এবং এতে চেক আউট করা ব্রাঞ্চ বা গিট স্ট্যাটাসের মতো মৌলিক গিট তথ্য অন্তর্ভুক্ত রয়েছে। - এখন
cloudshell editকমান্ডের একটি নতুন ও সংক্ষিপ্তcodeঅ্যালিয়াস রয়েছে।.bash_profileফাইলের বিষয়বস্তু দেখতে এটি ব্যবহার করুন:
code $HOME/.bash_profile
-
.customize_environmentফাইলের বিষয়বস্তু দেখতে নতুন ইনস্টল করা `batকমান্ডটি ব্যবহার করুন:
bat $HOME/.customize_environment
bat হলো জনপ্রিয় ইউনিক্স টুল cat-এর একটি উন্নত সংস্করণ। এখানে bat আউটপুটে apt install কমান্ডটি দেখানো হচ্ছে, যা প্রতিবার একটি নতুন ক্লাউড শেল মেশিন চালু করার সময় hey নামক লোড টেস্টিং টুলটিকে পুনরায় ইনস্টল করতে ব্যবহৃত হয়।
- সবকিছু ঠিকঠাক কাজ করছে কিনা তা পরীক্ষা করতে, ক্লাউড শেল মেনুতে (উপরের ডান কোণায় থাকা তিনটি ডট) ক্লিক করে রিস্টার্ট নির্বাচন করুন।
এর মাধ্যমে আপনি ক্লাউড শেল টাইমআউট এবং ইনস্ট্যান্স পুনঃসৃষ্টি অনুকরণ করতে পারবেন, এবং সবকিছু সঠিকভাবে কনফিগার করা হয়েছে কিনা তা নিশ্চিত করতে পারবেন।
ক্লাউড শেল কন্টেইনার ইমেজ কাস্টমাইজ করা
এই কাস্টমাইজেশন অপশনটি আপনাকে একটি ডকার ইমেজ তৈরি করার সুযোগ দেয়, যা অতিরিক্ত প্যাকেজ এবং কাস্টম কনফিগারেশন সহ একটি কাস্টম ক্লাউড শেল এনভায়রনমেন্ট হিসেবে কাজ করে। তৈরি হওয়া ইমেজটি একটি সম্পূর্ণ ক্ষণস্থায়ী ক্লাউড শেল ইনস্ট্যান্স চালু করবে, তাই ক্লাউড শেল ভিএম বা এর সাথে সংযুক্ত $HOME ডিরেক্টরি কোনটিই স্থায়ী হবে না। তবে, এই ইমেজ তৈরি করা সেইসব ক্ষেত্রে কার্যকর হবে যেখানে আপনাকে তৃতীয় পক্ষের কাছে নির্দিষ্ট কাজের জন্য ক্লাউড শেল ইনস্ট্যান্স সরবরাহ করতে হবে, যাতে তারা সবচেয়ে কার্যকর উপায়ে একটি নির্দিষ্ট কাজ সম্পাদন করতে পারে।
আগের অংশের মতো পরিবেশ কাস্টমাইজ করার পরিবর্তে, আপনি আপনার পরিবর্তনগুলো একটি নতুন ইমেজে অন্তর্ভুক্ত করবেন যা আপনার ক্লাউড শেল চালু করতে ব্যবহৃত হবে। এর সুস্পষ্ট সুবিধা হলো, আপনার কাস্টম ক্লাউড শেল আরও দ্রুত চালু হবে।
একটি নতুন ক্লাউড শেল ইমেজ তৈরি করা হচ্ছে
- ক্লাউড শেল টার্মিনালে টাইপ করে ক্লাউড শেল কন্টেইনার ইমেজ তৈরি শুরু করুন:
cloudshell env create-custom-image custom-cloud-shell
cd custom-cloud-shell
এটি আপনার ক্লাউড শেলে একটি নতুন ডিরেক্টরি এবং আপনার কোড হোস্ট করার জন্য একই নামের একটি নতুন ক্লাউড সোর্স রিপোজিটরি রিপো তৈরি করে। এছাড়াও এটি $HOME/custom-cloud-shell/ directory একটি নমুনা Dockerfile ক্লোন করে।
- Dockerfile-এর শেষ লাইনে
RUN apt install -y heyলাইনটি যোগ করুন:
echo "RUN apt install -y hey" >> $HOME/custom-cloud-shell/Dockerfile
এটি .customize_environment এ আপনার থাকা কাস্টমাইজেশনটিই সেট আপ করে, তবে এটি একটি কন্টেইনারের মধ্যে সুরক্ষিত থাকে।
- স্থানীয়ভাবে ইমেজটি তৈরি করুন:
cloudshell env build-local
- নিম্নলিখিত কমান্ডটি চালিয়ে নতুন ইমেজটি পরীক্ষা করুন:
cloudshell env run
আপনি এখন ছবিটির ভিতরে একটি খোলসের মধ্যে থাকবেন।
-
heyকমান্ডটি ইনস্টল করা আছে কিনা তা এটি চালিয়ে পরীক্ষা করুন:
hey
- কাজ শেষ হলে, কন্টেইনার থেকে বের হতে
exitটাইপ করুন:
exit
- ক্লাউড সোর্স রিপোজিটরিতে পরিবর্তনগুলো এবং কন্টেইনার রেজিস্ট্রি-তে ইমেজটি পুশ করুন:
git commit -a -m "Initial commit"
git push origin master
cloudshell env push
নতুন ছবিটি পরীক্ষা করা হচ্ছে
- ছবিটি সর্বজনীনভাবে উপলব্ধ করুন যাতে আপনি এটি ব্যবহার করতে পারেন:
gsutil iam ch allUsers:objectViewer $(gsutil ls)
- আপনার প্রকাশিত ক্লাউড শেল কাস্টম ইনস্ট্যান্স পরীক্ষা করার জন্য একটি URL তৈরি করুন:
echo "https://ssh.cloud.google.com/cloudshell/editor?cloudshell_image=gcr.io/$GOOGLE_CLOUD_PROJECT/custom-cloud-shell"
- আউটপুট URL-টি কপি করে একটি নতুন ব্রাউজার ট্যাবে পেস্ট করুন, তাহলে ক্লাউড শেল কাস্টম ইনস্ট্যান্সটি খুলে যাবে। লক্ষ্য করুন, যখন আপনি ইনস্ট্যান্সটি অ্যাক্সেস করবেন, তখন ব্যানার দেখতে পাবেন যা নির্দেশ করে যে আপনি সম্পূর্ণ এফিমিরাল মোডে (ephemeral mode) এটি চালাচ্ছেন:

- hey কমান্ডটি চালিয়ে ছবিটি আবার পরীক্ষা করুন।
hey
- কাজটি সম্পন্ন হলে, ক্ষণস্থায়ী ক্লাউড শেল ইনস্ট্যান্সটি
exit, যে ট্যাবে আপনার নিয়মিত ক্লাউড শেলটি খোলা ছিল সেখানে ফিরে যান এবং ‘পুনরায় সংযোগ করুন’ (Reconnect ) এ ক্লিক করুন।
SSH ব্যবহার করে দূর থেকে ক্লাউড শেল অ্যাক্সেস করুন
আপনি আপনার স্থানীয় কম্পিউটার থেকে দূরবর্তীভাবে ক্লাউড শেল-এর বৈশিষ্ট্যগুলো ব্যবহার করতে পারেন। এর সাথে সাধারণত দুই ধরনের ব্যবহারের ক্ষেত্র জড়িত:
- আপনার স্থানীয় টার্মিনাল থেকে আপনার ক্লাউড শেল মেশিনে SSH করা
- আপনার ক্লাউড শেল রিমোট
$HOMEডিরেক্টরিটি স্থানীয়ভাবে মাউন্ট করা হচ্ছে।
এর জন্য আপনার কম্পিউটারে গুগল ক্লাউড এসডিকে (Google Cloud SDK) ইনস্টল করা থাকতে হবে। এছাড়াও, আপনার প্রজেক্ট আইডি এবং ব্যবহৃত নির্দিষ্ট ক্রেডেনশিয়াল দিয়ে এটি কনফিগার করতে হবে।
আপনার স্থানীয় মেশিনে চলমান একটি টার্মিনাল এমুলেটর থেকে নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
- GCP প্রজেক্ট আইডি সেট আপ করুন এবং আপনার ক্লাউড শেল যে ক্লাউড অর্গানাইজেশনে রয়েছে, তার সংশ্লিষ্ট ক্রেডেনশিয়াল দিয়ে লগ ইন করুন।
gcloud config set project <your project id>
gcloud auth login
- আপনার রিমোট ক্লাউড শেল মেশিনে SSH করুন:
gcloud cloud-shell ssh --authorize-session
আপনি এখন আপনার ক্লাউড শেলে থাকবেন, কিন্তু আপনার স্থানীয় টার্মিনাল এমুলেটরের বৈশিষ্ট্য এবং কনফিগারেশন ব্যবহার করবেন। যদি আপনার ব্যবহৃত এমুলেটরটি tmux সমর্থন করে, তবে আরও ভালো রিমোট অভিজ্ঞতার জন্য আপনি অতিরিক্ত ইন্টিগ্রেশনগুলোর সুবিধা নিতে পারেন।
আপনার স্থানীয় মেশিন থেকে আপনার ক্লাউড শেল হোম ডিরেক্টরি মাউন্ট করুন।
যদিও রিমোট ক্লাউড শেল ইনস্ট্যান্সে SSH করতে পারাটা একটি ভালো বিষয়, তবে আপনার লোকাল IDE-কে দিয়ে রিমোট ক্লাউড শেলের $HOME ডিরেক্টরিতে অ্যাক্সেস পাওয়াটা আরও ভালো। এইভাবে, আপনি পূর্বে প্রদর্শিত SSH অ্যাক্সেসের সাথে স্থানীয়ভাবে রিমোট কোড সম্পাদনা করার ক্ষমতাকে একত্রিত করতে পারবেন।
এটি করার জন্য, প্রথমে আপনার লোকাল মেশিন থেকে একটি মাউন্ট পয়েন্ট তৈরি করুন:
mkdir $HOME/cloudshell
এই ডিরেক্টরিতেই আপনার ক্লাউড শেল মাউন্ট করা হবে। এখন, এটি মাউন্ট করার জন্য, নিশ্চিত করুন যে আপনার ক্লাউড শেল ইনস্ট্যান্সটি চালু আছে এবং তারপর আপনার লোকাল টার্মিনালে টাইপ করুন:
$(gcloud cloud-shell get-mount-command $HOME/cloudshell)
cd $HOME/cloudshell
এটি আপনার লোকাল মেশিনে ক্লাউড শেল মাউন্ট করার জন্য প্রয়োজনীয় মাউন্ট কমান্ডটি খুঁজে বের করে তা মাউন্ট করে দেবে। আপনি আপনার লোকাল মেশিনে ক্লাউড শেল হোম ডিরেক্টরির কন্টেন্টগুলো মাউন্ট হতে দেখবেন।
এখন, আপনি স্থানীয়ভাবে VSCode-এর মতো একটি IDE খোলার পাশাপাশি ক্লাউডে থাকা একটি রিমোট ওয়ার্কস্পেসও খুলতে পারবেন। একই সাথে, ক্লাউড শেল-এ SSH অ্যাক্সেস ব্যবহার করে, আপনি IDE-র ভিতরে একটি টার্মিনাল পেইন খুলতে পারেন, যার ফলে আপনার স্থানীয় IDE-র সাথেই একটি রিমোট টার্মিনাল সংযুক্ত থাকবে।
৫. ক্লাউড কোড ব্যবহার করা
ক্লাউড কোড হলো গুগলের তৈরি একটি প্লাগইন, যা ডেভেলপারদের ক্লাউড-ভিত্তিক টুলগুলোর সাথে আরও কার্যকরভাবে কাজ করতে সাহায্য করে। এটি ভিএসকোড এবং জেটব্রেইনস-এর মতো একাধিক আইডিই (IDE) ও কোড এডিটরে পাওয়া যায় এবং আপনার সুবিধার জন্য এটি ক্লাউড শেল এডিটরে ডিফল্টভাবে অন্তর্ভুক্ত থাকে। ক্লাউড কোডে ডেভেলপার-বান্ধব প্রচুর ফিচার রয়েছে, যেগুলো নিয়ে আপনি পরবর্তী ধাপগুলোতে অনুশীলন করবেন।
আপনার ক্লাউড শেল এডিটরে ক্লাউড কোড সনাক্ত করা
দ্রুত অ্যাক্সেস বোতাম ব্যবহার করা
এডিটরের বাম প্যানে প্রদর্শিত নিম্নলিখিত চারটি বোতাম খুঁজুন:

এই মেনু আইটেমগুলো ক্লাউড শেল এডিটর থেকেই সরাসরি GCP পরিষেবাগুলোতে সহজে প্রবেশ এবং কনফিগার করার সুযোগ দেয়।
এই ল্যাবে আপনারা কুবারনেটিস ক্লাস্টারের উপর মনোযোগ দেবেন।
স্ট্যাটাস বার ব্যবহার করে
ক্লাউড শেল এডিটর UI-এর মাধ্যমে ক্লাউড ক্লাউডের আরও দুটি প্রাসঙ্গিক অংশ উন্মোচিত হয়। আপনি এডিটরের নিচের বারে উভয়ই দেখতে পাবেন:

- ক্লাউড কোড : এখানে ক্লিক করলে একটি কুইক অ্যাকশন মেনু দেখা যাবে যা আপনি এই টিউটোরিয়াল জুড়ে ব্যবহার করবেন:

- মিনিকিউব নিয়ন্ত্রণ করুন: এর মাধ্যমে আপনি স্থানীয় কুবারনেটিস এমুলেটর, মিনিকিউব, নিয়ন্ত্রণ করতে পারবেন এবং ক্লাস্টার চালু বা বন্ধ করার মতো সাধারণ কাজগুলো করতে পারবেন।
একটি মিনিকিউব ইনস্ট্যান্স তৈরি করা
বাটনটিতে ক্লিক করে এখনই একটি মিনিকিউব ইনস্ট্যান্স তৈরি করুন।

ক্লাউড কোড দিয়ে একটি GKE ক্লাস্টার তৈরি করা
-
Cloud Code - Kubernetes Clustersআইকনে ক্লিক করুন (
বামদিকে। আপনি বামদিকে CLOUD CODE - KUBERNETES: CLUSTERS নামে একটি নতুন প্যানে দেখতে পাবেন। - CLOUD CODE - KUBERNETES: CLUSTERS-এর পাশে থাকা + বোতামে ক্লিক করুন এবং Google Kubernetes Engine নির্বাচন করুন (উল্লেখ্য যে, আপনি আগে তৈরি করা Minikube-এর মতো অন্যান্য বিকল্পও বেছে নিতে পারেন):

- 'Create a New GKE Cluster'- এ ক্লিক করুন। এই অপশনটি ডানদিকে একটি নতুন প্যানেল লোড করবে, যেখানে আপনি দ্রুত একটি ডেভেলপমেন্ট ক্লাস্টার তৈরি করার জন্য অতিরিক্ত তথ্য প্রবেশ করাতে পারবেন। প্যানেলের নির্দেশাবলী অনুসরণ করুন এবং নিম্নলিখিত তথ্যগুলো প্রবেশ করান:
- অটোপাইলট বেছে নিন
- আপনার অঞ্চল নির্বাচন করুন (ইউরোপ-পশ্চিম-১)
- আপনার ক্লাস্টারের নাম " dev " দিন।
- Create Cluster বাটনটিতে ক্লিক করুন। এটি একটি নতুন অটোপাইলট ক্লাস্টার তৈরি করবে।
ক্লাস্টার তৈরির প্রক্রিয়াটিতে পাঁচ মিনিটের বেশি সময় লাগার কথা নয়। তাই ক্লাস্টারটি তৈরি হওয়ার সময়, আপনি ক্লাউড কোড কুবারনেটিস প্যানে আরও কিছুটা ঘুরে দেখতে পারেন।
ক্লাউড কোড কুবারনেটিস প্যানে অন্বেষণ করা
এর আগে আপনি একটি মিনিকিউব ক্লাস্টার তৈরি করেছেন। এটি প্রস্তুত হয়ে গেলে, এই ক্লাস্টারটি ক্লাউড কোড কুবারনেটিস প্যানে আপনার দেওয়া নাম, minikube , সহ প্রদর্শিত হবে।

ক্লাস্টারটি UI-তে ACTIVE হিসেবে প্রদর্শিত হবে। এই সেটিংটি কমান্ড লাইনের বর্তমান Kubernetes কনটেক্সটের সাথে সিঙ্ক করা থাকে।
ক্লাউড কোড কুবারনেটিস প্যানে আপনি নিম্নলিখিত বিষয়গুলো দেখতে পাবেন:
- ডিফল্ট KubeConfig ফাইল : Cloud Code আপনার ব্যবহারকারীর জন্য ~/
.kube/configফাইলটি পড়ে এবং সেখানে কনফিগার করা Kubernetes ক্লাস্টারগুলির সাথে সংযোগ স্থাপন করতে এটি ব্যবহার করে, যাতে আপনি সহজেই সেগুলিতে নেভিগেট করতে পারেন। আপনি চাইলে,Default Kubeconfigলাইনের উপর মাউস রেখে এবং তারপর তার পাশের বহির্গামী তীর চিহ্নসহ বর্গক্ষেত্রটিতে ক্লিক করে Kubeconfig ফাইলটি সম্পাদনা করতে পারেন। - আপনার নিবন্ধিত ক্লাস্টারগুলির বিভিন্ন অবজেক্টের একটি ব্রাউজযোগ্য রেন্ডারাইজেশন : এক্ষেত্রে, আপনি আপনার পূর্বে তৈরি করা
minikubeক্লাস্টারটি তার কনটেক্সট, নেমস্পেস এবং নোড সহ দেখতে পাচ্ছেন। এবার ট্রি-টির কয়েকটি নোড প্রসারিত করুন। যেহেতু আপনি কোনো অ্যাপ্লিকেশন ডেপ্লয় করেননি, তাই এখনও কোনো পড থাকবে না।
আপনার নতুন GKE ক্লাস্টারটি চালু হয়ে গেলে, এটি minikube ক্লাস্টারের সাথে বাম প্যানে দেখানো হবে। মনে রাখবেন, আপনি যেকোনো ক্লাস্টারের উপর রাইট-ক্লিক করে সেটিকে "সক্রিয়" করতে পারেন, যার ফলে আপনি আপনার চালু করা যেকোনো ক্লাউড কোড অ্যাকশনের জন্য ক্লাস্টারটি নির্বাচন করতে পারবেন।

৬. অভিনন্দন!
অভিনন্দন, আপনি কোডল্যাবটি সম্পন্ন করেছেন!
আপনি যা যা আলোচনা করেছেন
- ক্লাউড শেলের প্রধান বৈশিষ্ট্যগুলো সম্পর্কে জেনেছি এবং পরিচিত হয়েছি।
- বিভিন্ন ক্লাউড শেল ব্যবহারের ধরণ অনুশীলন করা হয়েছে
- উন্নত ব্যবহারের জন্য আপনার ক্লাউড শেল পরিবেশ কাস্টমাইজ করুন
- ক্লাউড কোডের অপশন এবং ফিচারগুলোর সাথে পরিচিত হলাম।
- Kubernetes অ্যাপ্লিকেশনগুলির জন্য Cloud Code-এর বিবরণ পর্যালোচনা করা হয়েছে।
- Minikube-এর মতো স্থানীয় এমুলেটর ব্যবহার করুন