ক্লাউড রান স্টার্টার টিউটোরিয়াল

১. সংক্ষিপ্ত বিবরণ

ক্লাউড রান একটি সম্পূর্ণভাবে পরিচালিত সার্ভারলেস প্ল্যাটফর্ম, যা আপনাকে স্টেটলেস কন্টেইনার চালাতে সক্ষম করে, যেগুলোকে HTTP অনুরোধের মাধ্যমে চালু করা যায়। ক্লাউড রান সার্ভারলেস হওয়ায় এটি সমস্ত অবকাঠামো ব্যবস্থাপনার দায়িত্ব থেকে আপনাকে মুক্ত রাখে, ফলে আপনি সবচেয়ে গুরুত্বপূর্ণ বিষয়—অর্থাৎ চমৎকার অ্যাপ্লিকেশন তৈরিতে—মনোযোগ দিতে পারেন।

এটি Knative- এর উপর নির্মিত, যা আপনাকে আপনার কন্টেইনারগুলি Cloud Run-এর মাধ্যমে সম্পূর্ণভাবে পরিচালিতভাবে, অথবা Cloud Run on GKE ব্যবহার করে আপনার Google Kubernetes Engine ক্লাস্টারে চালানোর সুযোগ দেয়।

আপনি যা শিখবেন

এই ল্যাবে, আপনারা নিম্নলিখিত বিষয়গুলো করতে শিখবেন:

  • ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করুন

পূর্বশর্ত

  • এই ল্যাবটি করার জন্য ক্লাউড কনসোল এবং ক্লাউড শেল পরিবেশ সম্পর্কে পূর্বপরিচিতি আছে বলে ধরে নেওয়া হচ্ছে।

২. সেটআপ এবং প্রয়োজনীয়তা

ক্লাউড প্রজেক্ট সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

পরিবেশ সেটআপ

সার্চ বারের ডানদিকে থাকা আইকনটিতে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

ecdc43ada29e91b.png

ক্লাউড শেল থেকে ক্লাউড রান এপিআই সক্রিয় করুন:

gcloud services enable run.googleapis.com

অনুমতি দিতে বলা হলে, চালিয়ে যাওয়ার জন্য 'Authorize'-এ ক্লিক করুন।

6356559df3eccdda.png

এর ফলে এইটির মতো একটি সফল বার্তা তৈরি হওয়া উচিত:

Operation "operations/acf.p2-327036483151-73d90d00-47ee-447a-b600-a6badf0eceae" finished successfully.

৩. আবেদনপত্র প্রস্তুত করুন

প্রথমে, আপনি একটি সহজ এক্সপ্রেস-ভিত্তিক Node.js অ্যাপ্লিকেশন তৈরি করবেন যা HTTP অনুরোধে সাড়া দেয়।

ক্লাউড শেলে starter-nodejs নামে একটি নতুন ডিরেক্টরি তৈরি করুন, তারপর সেই ডিরেক্টরিতে প্রবেশ করুন:

mkdir starter-nodejs
cd starter-nodejs

নিচের কমান্ডগুলো চালিয়ে একটি package.json ফাইল তৈরি করুন:

cat > ./package.json << EOF
{
  "name": "cloudrun-starter-app",
  "version": "1.0.0",
  "description": "Node.js Starter Application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    "express": "^4.18.2"
  }
}
EOF

উপরের ফাইলটিতে একটি স্টার্ট স্ক্রিপ্ট কমান্ড এবং এক্সপ্রেস ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্কের উপর একটি নির্ভরতা রয়েছে।

এরপর, একই ডিরেক্টরিতে নিচের কমান্ডগুলো চালিয়ে একটি index.js ফাইল তৈরি করুন:

cat > ./index.js << EOF
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Received a request.');
  res.send("Hello Cloud Run!");
});

const port = process.env.PORT || 8080;

app.listen(port, () => {
  console.log('Listening on port', port);
});
EOF

এই কোডটি একটি সাধারণ ওয়েব সার্ভার তৈরি করে, যা PORT এনভায়রনমেন্ট ভেরিয়েবল দ্বারা নির্ধারিত পোর্টে শোনে। আপনার অ্যাপটি এখন তৈরি এবং কন্টেইনারাইজ ও ডেপ্লয় করার জন্য প্রস্তুত।

৪. ক্লাউড রান অ্যাপ্লিকেশন স্থাপন করুন

আপনার অ্যাপ্লিকেশনটি ডেপ্লয় করতে নিচের কমান্ডটি চালান:

gcloud run deploy starter-app \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --max-instances=3

আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরি তৈরি নিশ্চিত করুন:

Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [us-central1] will be created.

Do you want to continue (Y/n)? y

পূর্ববর্তী কমান্ডের ফলে, নিম্নলিখিত ধাপগুলো সম্পাদিত হবে:

d661616f9b2fffcf.png

ক্লাউড কনসোলে এই ধাপগুলোর আউটপুট অন্বেষণ করুন: ক্লাউড বিল্ড , ক্লাউড স্টোরেজ , আর্টিফ্যাক্ট রেজিস্ট্রি এবং ক্লাউড রান

f536961280192919.png

৫. অভিনন্দন!

অভিনন্দন! আপনি এইমাত্র ক্লাউড রান-এ একটি অ্যাপ্লিকেশন স্থাপন করেছেন।

আমরা যা আলোচনা করেছি:

  • ক্লাউড রানে কীভাবে একটি স্টার্টার অ্যাপ্লিকেশন ডেপ্লয় করবেন

এরপর কী হবে:

Cymbal Eats-এর অন্যান্য কোডল্যাবগুলি অন্বেষণ করুন:

পরিষ্কার করা

এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, হয় রিসোর্সগুলো যে প্রজেক্টে রয়েছে সেটি ডিলিট করে দিন, অথবা প্রজেক্টটি রেখে দিয়ে আলাদা আলাদা রিসোর্সগুলো ডিলিট করে দিন।

প্রকল্পটি মুছে ফেলা হচ্ছে

বিলিং বন্ধ করার সবচেয়ে সহজ উপায় হলো টিউটোরিয়ালের জন্য তৈরি করা প্রজেক্টটি ডিলিট করে দেওয়া।