উন্নয়ন পরিবেশ

1. ওভারভিউ

এই ল্যাবটি একটি কন্টেইনারাইজড পরিবেশে পাইথন অ্যাপ্লিকেশন বিকাশের দায়িত্বপ্রাপ্ত সফ্টওয়্যার ইঞ্জিনিয়ারদের জন্য উন্নয়ন কর্মপ্রবাহকে স্ট্রিমলাইন করার জন্য ডিজাইন করা বৈশিষ্ট্য এবং ক্ষমতা প্রদর্শন করে। সাধারণ কন্টেইনার ডেভেলপমেন্টের জন্য ব্যবহারকারীকে কন্টেইনারের বিবরণ এবং কন্টেইনার তৈরির প্রক্রিয়া বুঝতে হবে। উপরন্তু, ডেভেলপারদের সাধারণত তাদের প্রবাহ ভাঙতে হয়, দূরবর্তী পরিবেশে তাদের অ্যাপ্লিকেশন পরীক্ষা ও ডিবাগ করতে তাদের IDE থেকে বেরিয়ে যেতে হয়। এই টিউটোরিয়ালে উল্লিখিত টুলস এবং প্রযুক্তির সাহায্যে, ডেভেলপাররা তাদের IDE না রেখেই কন্টেইনারাইজড অ্যাপ্লিকেশনের সাথে কার্যকরভাবে কাজ করতে পারে।

58a4cdd3ed7a123a.png

ক্লাউড ওয়ার্কস্টেশন কি?

ক্লাউড ওয়ার্কস্টেশন Google ক্লাউডে বিল্ট-ইন নিরাপত্তা এবং পূর্ব-কনফিগার করা এখনো কাস্টমাইজযোগ্য উন্নয়ন পরিবেশ সহ পরিচালিত উন্নয়ন পরিবেশ প্রদান করে। একাধিক স্থানীয় কোড এডিটর (যেমন VSCode বা JetBrains IDE যেমন IntelliJ IDEA Ultimate এবং PyCharm Professional) বা SSH-এর মাধ্যমে ব্রাউজার-ভিত্তিক IDE-এর মাধ্যমে ক্লাউড ওয়ার্কস্টেশন অ্যাক্সেস করুন।

ক্লাউড ওয়ার্কস্টেশনগুলি নিম্নলিখিত সংস্থানগুলি ব্যবহার করে:

  • অ্যাডমিনিস্ট্রেটররা ওয়ার্কস্টেশন ক্লাস্টার তৈরি করে
  • প্রতিটি ওয়ার্কস্টেশন ক্লাস্টারে, অ্যাডমিনিস্ট্রেটররা এক বা একাধিক ওয়ার্কস্টেশন কনফিগারেশন তৈরি করে যা ওয়ার্কস্টেশনের জন্য টেমপ্লেট হিসেবে কাজ করে।
  • বিকাশকারীরা ওয়ার্কস্টেশন তৈরি করতে পারে যা একটি ক্লাউড আইডিই, ভাষা টুলিং, লাইব্রেরি এবং আরও অনেক কিছু প্রদান করে উন্নয়ন পরিবেশকে সংজ্ঞায়িত করে।

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

ক্লাউড ওয়ার্কস্টেশনগুলি আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট এনভায়রনমেন্টের নিরাপত্তা ভঙ্গি বাড়ানোর মাধ্যমে নিরাপত্তা বাম স্থানান্তর করতে সহায়তা করে। এতে নিরাপত্তা বৈশিষ্ট্য রয়েছে যেমন ভিপিসি সার্ভিস কন্ট্রোল, প্রাইভেট ইনগ্রেস বা এগ্রেস, জোরপূর্বক ইমেজ আপডেট এবং আইডেন্টিটি অ্যান্ড এক্সেস ম্যানেজমেন্ট অ্যাক্সেস নীতি।

ক্লাউড কোড কি?

ক্লাউড কোড কুবারনেটস এবং ক্লাউড রান অ্যাপ্লিকেশনগুলির সম্পূর্ণ বিকাশ চক্রের জন্য IDE সমর্থন প্রদান করে, নমুনা টেমপ্লেট থেকে একটি নতুন অ্যাপ্লিকেশন তৈরি এবং কাস্টমাইজ করা থেকে আপনার সমাপ্ত অ্যাপ্লিকেশনটি চালানো পর্যন্ত। ক্লাউড কোড আপনাকে রান-রেডি নমুনা, আউট-অফ-দ্য-বক্স কনফিগারেশন স্নিপেট এবং একটি উপযোগী ডিবাগিং অভিজ্ঞতার সাহায্যে সহায়তা করে — কুবারনেটস এবং ক্লাউড রানের সাথে বিকাশকে সম্পূর্ণ সহজ করে তোলে!

এখানে ক্লাউড কোডের কিছু বৈশিষ্ট্য রয়েছে:

  • ক্রমাগত অ্যাপ্লিকেশন তৈরি এবং চালান
  • বিকাশাধীন আপনার কুবারনেটস অ্যাপ্লিকেশনের জন্য ডিবাগিং সমর্থন
  • লগ স্ট্রিমিং এবং দেখা

অন্যান্য ক্লাউড কোড বৈশিষ্ট্য সম্পর্কে আরও জানুন।

যা শিখবেন

এই ল্যাবে আপনি জিসিপি-তে কন্টেইনারগুলি সহ বিকাশের পদ্ধতিগুলি শিখবেন:

  • ক্লাউড ওয়ার্কস্টেশন পর্যালোচনা করুন
  • ওয়ার্কস্টেশন চালু করুন
  • ক্লাউড কোড পর্যালোচনা করুন
  • Kubernetes-এ ডিবাগ করুন

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

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

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

এনভায়রনমেন্ট সেটআপ

ক্লাউড শেলে, আপনার প্রকল্পের আইডি এবং আপনার প্রকল্পের জন্য প্রকল্প নম্বর সেট করুন। সেগুলিকে PROJECT_ID এবং PROJECT_ID ভেরিয়েবল হিসাবে সংরক্ষণ করুন৷

export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID \
    --format='value(projectNumber)')

এই ল্যাবে আপনি GKE-তে কোড স্থাপন করবেন। আপনি IDE হিসাবে ক্লাউড ওয়ার্কস্টেশনগুলিও ব্যবহার করবেন।

নিচের সেটআপ স্ক্রিপ্টটি আপনার জন্য এই পরিকাঠামো প্রস্তুত করে।

  1. সেটআপ স্ক্রিপ্ট ডাউনলোড করুন এবং এটি এক্সিকিউটেবল করুন।
wget https://raw.githubusercontent.com/GoogleCloudPlatform/container-developer-workshop/main/labs/python/setup_with_cw.sh
chmod +x setup_with_cw.sh
  1. setup_with_cw.sh ফাইল খুলুন এবং পাসওয়ার্ডের মানগুলি সম্পাদনা করুন যা বর্তমানে CHANGEME এ সেট করা আছে
  2. আপনি এই ল্যাবে ব্যবহার করবেন এমন একটি GKE ক্লাস্টার দাঁড় করাতে সেটআপ স্ক্রিপ্টটি চালান। এই সেটআপে প্রায় 20 মিনিট সময় লাগবে।
./setup_with_cw.sh &
  1. ক্লাউড কনসোলে ক্লাউড ওয়ার্কস্টেশন খুলুন। পরবর্তী ধাপে যাওয়ার আগে ক্লাস্টারটি READY অবস্থায় থাকার জন্য অপেক্ষা করুন।
  2. আপনার ক্লাউড শেল সেশন সংযোগ বিচ্ছিন্ন হলে, "পুনরায় সংযোগ করুন" এ ক্লিক করুন এবং তারপরে প্রকল্প আইডি সেট করতে gcloud cli কমান্ডটি চালান। কমান্ড চালানোর আগে আপনার qwiklabs প্রকল্প আইডি দিয়ে নীচের নমুনা প্রকল্প আইডি প্রতিস্থাপন করুন।
gcloud config set project qwiklabs-gcp-project-id
  1. ক্লাউড ওয়ার্কস্টেশন কনফিগারেশন তৈরি করতে টার্মিনালে নীচের স্ক্রিপ্টটি ডাউনলোড করুন এবং চালান।
wget https://raw.githubusercontent.com/GoogleCloudPlatform/container-developer-workshop/main/labs/python/workstation_config_setup.sh
chmod +x workstation_config_setup.sh
./workstation_config_setup.sh

ক্লাউড ওয়ার্কস্টেশন ক্লাস্টার এবং কনফিগারেশন

ক্লাউড কনসোলে ক্লাউড ওয়ার্কস্টেশন খুলুন। যাচাই করুন যে ক্লাস্টারটি READY অবস্থায় আছে।

305e1a3d63ac7ff6.png

বিদ্যমান কনফিগারেশনের জন্য স্থিতি যাচাই করুন।

2e23c2e9983d1ccf.png

একটি নতুন ওয়ার্কস্টেশন তৈরি করুন।

a53adeeac81a78c8.png

my-workstation নাম পরিবর্তন করুন এবং বিদ্যমান কনফিগারেশন নির্বাচন করুন: codeoss-python

f052cd47701ec774.png

ওয়ার্কস্টেশন চালু করুন

  1. ওয়ার্কস্টেশন শুরু করুন এবং চালু করুন। ওয়ার্কস্টেশন শুরু হতে কয়েক মুহূর্ত লাগবে।

682f8a307032cba3.png

  1. ঠিকানা বারে আইকনে ক্লিক করে তৃতীয় পক্ষের কুকিজকে অনুমতি দিন। 1b8923e2943f9bc4.png

fcf9405b6957b7d7.png

  1. "সাইট কাজ করছে না?" ক্লিক করুন।

36a84c0e2e3b85b.png

  1. "কুকিজ অনুমতি দিন" ক্লিক করুন।

2259694328628fba.png

  1. ওয়ার্কস্টেশন চালু হলে আপনি কোড OSS IDE দেখতে পাবেন।

ওয়ার্কস্টেশন IDE-এর প্রথম পৃষ্ঠায় "সম্পন্ন চিহ্নিত করুন"-এ ক্লিক করুন

94874fba9b74cc22.png

3. ক্লাউড কোড ওভারভিউ

ক্লাউড কোডে উপলব্ধ বিভিন্ন বিভাগ পর্যালোচনা করুন।

  • কুবারনেটসের বিকাশ। আপনার IDE-এর মধ্যে একটি সম্পূর্ণ সমন্বিত কুবারনেটস ডেভেলপমেন্ট এবং ডিবাগিং পরিবেশ পান। IDE এর মধ্যে থেকে সরাসরি ক্লাস্টার তৈরি এবং পরিচালনা করুন।
  • চলমান অ্যাপ্লিকেশনগুলি ডিবাগ করুন। বিল্ট-ইন IDE ডিবাগিং বৈশিষ্ট্যগুলি ব্যবহার করে VS কোডের জন্য ক্লাউড কোড এবং IntelliJ-এর জন্য ক্লাউড কোড ব্যবহার করে আপনার IDE-এর মধ্যে কোডটি ডিবাগ করুন।
  • স্থাপনা অন্বেষণ. আপনার Kubernetes ক্লাস্টার এবং ক্লাউড রান পরিষেবাগুলির জন্য অন্তর্নিহিত সংস্থান এবং মেটাডেটা দেখুন৷ আপনি একটি বিবরণ আনতে পারেন, লগ দেখতে পারেন, গোপনীয়তা পরিচালনা করতে পারেন বা সরাসরি একটি পডে একটি টার্মিনাল পেতে পারেন৷
  • Kubernetes স্থানীয় উন্নয়ন সরলীকরণ. কভারের অধীনে, IDE-এর জন্য ক্লাউড কোড জনপ্রিয় টুল যেমন Skaffold, Jib, এবং kubectl ব্যবহার করে রিয়েল টাইমে আপনার কোডের উপর ক্রমাগত প্রতিক্রিয়া প্রদান করে।

e4e89eea9ff45dff.png

গুগল ক্লাউডে সাইন ইন করুন

  1. ক্লাউড কোড আইকনে ক্লিক করুন এবং "গুগল ক্লাউডে সাইন ইন করুন" নির্বাচন করুন:

1769afd39be372ff.png

  1. "সাইন ইন করতে এগিয়ে যান" এ ক্লিক করুন।

923bb1c8f63160f9.png

  1. টার্মিনালে আউটপুট পরীক্ষা করুন এবং লিঙ্কটি খুলুন:

517fdd579c34aa21.png

  1. আপনার Qwiklabs ছাত্রদের শংসাপত্র দিয়ে লগইন করুন।

db99b345f7a8e72c.png

  1. "অনুমতি দিন" নির্বাচন করুন:

a5376553c430ac84.png

  1. যাচাইকরণ কোড কপি করুন এবং ওয়ার্কস্টেশন ট্যাবে ফিরে যান।

6719421277b92eac.png

  1. যাচাইকরণ কোড পেস্ট করুন এবং এন্টার টিপুন।

e9847cfe3fa8a2ce.png

আপনি এই বার্তাটি দেখতে পেলে "অনুমতি দিন" বোতামে ক্লিক করুন, যাতে আপনি ওয়ার্কস্টেশনে কপি পেস্ট করতে পারেন৷

58149777e5cc350a.png

4. একটি নতুন পাইথন স্টার্টার অ্যাপ্লিকেশন তৈরি করুন

এই বিভাগে আপনি একটি নতুন পাইথন অ্যাপ্লিকেশন তৈরি করবেন।

  1. একটি নতুন টার্মিনাল খুলুন।

c31d48f2e4938c38.png

  1. একটি নতুন ডিরেক্টরি তৈরি করুন এবং এটি একটি ওয়ার্কস্পেস হিসাবে খুলুন
mkdir music-service && cd music-service

code-oss-cloud-workstations -r --folder-uri="$PWD"
  1. requirements.txt নামে একটি ফাইল তৈরি করুন এবং এতে নিম্নলিখিত বিষয়বস্তু অনুলিপি করুন

789e8389170bd900.png

Flask
gunicorn
ptvsd==4.3.2
  1. app.py নামে একটি ফাইল তৈরি করুন এবং এতে নিম্নলিখিত কোডটি পেস্ট করুন
import os
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/")
def hello_world():
    message="Hello, World!"
    return message

if __name__ == '__main__':
    server_port = os.environ.get('PORT', '8080')
    app.run(debug=False, port=server_port, host='0.0.0.0')

  1. Dockerfile নামে একটি ফাইল তৈরি করুন এবং এতে নিম্নলিখিতটি পেস্ট করুন
FROM python:3.8
ARG FLASK_DEBUG=0
ENV FLASK_DEBUG=$FLASK_DEBUG
ENV FLASK_APP=app.py
WORKDIR /app
COPY requirements.txt .
RUN pip install --trusted-host pypi.python.org -r requirements.txt
COPY . .
ENTRYPOINT ["python3", "-m", "flask", "run", "--port=8080", "--host=0.0.0.0"]

দ্রষ্টব্য : FLASK_DEBUG=1 আপনাকে পাইথন ফ্লাস্ক অ্যাপে কোড পরিবর্তন স্বয়ংক্রিয়ভাবে পুনরায় লোড করতে দেয়। এই ডকারফাইল আপনাকে বিল্ড আর্গুমেন্ট হিসাবে এই মানটি পাস করতে দেয়।

ম্যানিফেস্ট তৈরি করুন

আপনার টার্মিনালে একটি ডিফল্ট skaffold.yaml এবং deployment.yaml তৈরি করতে নিম্নলিখিত কমান্ডটি চালান

  1. নিম্নলিখিত কমান্ড দিয়ে Skaffold শুরু করুন
skaffold init --generate-manifests

অনুরোধ করা হলে, আপনার কার্সার সরাতে তীরচিহ্ন এবং বিকল্পগুলি নির্বাচন করতে স্পেসবার ব্যবহার করুন।

চয়ন করুন:

  • পোর্টের জন্য 8080
  • y কনফিগারেশন সংরক্ষণ করতে

স্ক্যাফোল্ড কনফিগারেশন আপডেট করুন

  • ডিফল্ট অ্যাপ্লিকেশন নাম পরিবর্তন করুন
  • skaffold.yaml খুলুন
  • বর্তমানে dockerfile-image হিসাবে সেট করা ছবির নাম নির্বাচন করুন
  • রাইট ক্লিক করুন এবং সমস্ত ঘটনা পরিবর্তন করুন নির্বাচন করুন
  • python-app হিসাবে নতুন নাম টাইপ করুন
  • বিল্ড বিভাগটি আরও সম্পাদনা করুন
  • FLASK_DEBUG=1 পাস করতে docker.buildArgs যোগ করুন
  • IDE থেকে চলমান কন্টেইনারে *.py ফাইলে যেকোনো পরিবর্তন লোড করতে সিঙ্ক সেটিংস

সম্পাদনা করার পরে, skaffold.yaml ফাইলের বিল্ড বিভাগটি নিম্নরূপ হবে:

build:
 artifacts:
 - image: python-app
   docker:
     buildArgs:
       FLASK_DEBUG: "1"
     dockerfile: Dockerfile
   sync:
     infer:
     - '**/*.py'

Kubernetes কনফিগারেশন ফাইল পরিবর্তন করুন

  1. ডিফল্ট নাম পরিবর্তন করুন
  • deployment.yaml ফাইল খুলুন
  • বর্তমানে dockerfile-image হিসাবে সেট করা ছবির নাম নির্বাচন করুন
  • রাইট ক্লিক করুন এবং সমস্ত ঘটনা পরিবর্তন করুন নির্বাচন করুন
  • python-app হিসাবে নতুন নাম টাইপ করুন

5. উন্নয়ন প্রক্রিয়ার মধ্য দিয়ে হাঁটা

ব্যবসায়িক যুক্তি যোগ করার সাথে আপনি এখন আপনার অ্যাপ্লিকেশন স্থাপন এবং পরীক্ষা করতে পারেন। নিম্নলিখিত বিভাগটি ক্লাউড কোড প্লাগইন ব্যবহার প্রদর্শন করবে। অন্যান্য জিনিসের মধ্যে, এই প্লাগইনটি আপনার উন্নয়ন প্রক্রিয়াকে স্ট্রীমলাইন করতে স্ক্যাফোল্ডের সাথে সংহত করে। আপনি যখন নিম্নলিখিত ধাপে GKE-তে স্থাপন করবেন, ক্লাউড কোড এবং Skaffold স্বয়ংক্রিয়ভাবে আপনার কন্টেইনার ইমেজ তৈরি করবে, এটি একটি কন্টেইনার রেজিস্ট্রিতে ঠেলে দেবে এবং তারপর GKE-তে your অ্যাপ্লিকেশন স্থাপন করবে। এটি বিকাশকারীর প্রবাহ থেকে বিশদ বিবরণকে বিমূর্ত করে পর্দার আড়ালে ঘটে।

কুবারনেটস ক্লাস্টার যোগ করুন

  1. একটি ক্লাস্টার যোগ করুন

62a3b97bdbb427e5.png

  1. Google Kubernetes ইঞ্জিন নির্বাচন করুন:

9577de423568bbaa.png

  1. প্রকল্প নির্বাচন করুন।

c5202fcbeebcd41c.png

  1. প্রাথমিক সেটআপে তৈরি করা "পাইথন-ক্লাস্টার" নির্বাচন করুন।

719c2fc0a7f9e84f.png

  1. ক্লাস্টারটি এখন ক্লাউড কোডের অধীনে কুবারনেটস ক্লাস্টার তালিকায় দেখা যাচ্ছে। নেভিগেট করুন এবং এখান থেকে ক্লাস্টারটি অন্বেষণ করুন।

7e5f50662d4eea3c.png

কুবারনেটে স্থাপন করুন

  1. ক্লাউড শেল এডিটরের নীচের প্যানে, ক্লাউড কোড  নির্বাচন করুন

d99a88992e15fea9.png

  1. শীর্ষে প্রদর্শিত প্যানেলে, কুবারনেটে চালান নির্বাচন করুন।

অনুরোধ করা হলে, বর্তমান কুবারনেটস প্রসঙ্গ ব্যবহার করতে হ্যাঁ নির্বাচন করুন।

bfd65e9df6d4a6cb.png

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

  1. আপনি যখন প্রথমবার কমান্ডটি চালাবেন তখন স্ক্রিনের শীর্ষে একটি প্রম্পট উপস্থিত হবে যা জিজ্ঞাসা করবে যে আপনি বর্তমান কুবারনেট প্রসঙ্গটি চান কিনা, বর্তমান প্রসঙ্গটি গ্রহণ করতে এবং ব্যবহার করতে "হ্যাঁ" নির্বাচন করুন।
  2. পরবর্তীতে কোন কন্টেইনার রেজিস্ট্রি ব্যবহার করতে হবে তা জিজ্ঞাসা করে একটি প্রম্পট প্রদর্শিত হবে। প্রদত্ত ডিফল্ট মান গ্রহণ করতে এন্টার টিপুন
  3. অগ্রগতি এবং বিজ্ঞপ্তিগুলি দেখতে নীচের ফলকে "আউটপুট" ট্যাবটি নির্বাচন করুন৷ ড্রপডাউন ব্যবহার করে "কুবারনেটস: রান/ডিবাগ" নির্বাচন করুন

9c87ccbf5d06f50a.png

  1. কনটেইনারগুলি থেকে লাইভ স্ট্রিমিং অতিরিক্ত বিবরণ এবং লগগুলি দেখতে ডানদিকে ড্রপ ডাউন চ্যানেলে "কুবারনেটস: রান/ডিবাগ - বিস্তারিত" নির্বাচন করুন

804abc8833ffd571.png

যখন বিল্ড এবং পরীক্ষা করা হয়, আউটপুট ট্যাব লগগুলিতে URL থাকবে http://localhost:8080 "Kubernetes: Run/Debug" ভিউতে তালিকাভুক্ত।

  1. ক্লাউড কোড টার্মিনালে, আউটপুট (http://localhost:8080) এর প্রথম URL-এর উপর হোভার করুন এবং তারপরে টুল টিপে প্রদর্শিত ওয়েব প্রিভিউ নির্বাচন করুন।
  2. একটি নতুন ব্রাউজার ট্যাব খুলবে এবং বার্তাটি প্রদর্শন করবে: Hello, World!

হট রিলোড

  1. app.py ফাইলটি খুলুন
  2. Hello from Python শুভেচ্ছা বার্তা পরিবর্তন করুন

অবিলম্বে লক্ষ্য করুন যে Output উইন্ডোতে, Kubernetes: Run/Debug ভিউ, পর্যবেক্ষক আপডেট করা ফাইলগুলি কুবারনেটসের কন্টেইনারের সাথে সিঙ্ক করে

Update initiated
Build started for artifact python-app
Build completed for artifact python-app

Deploy started
Deploy completed

Status check started
Resource pod/python-app-6f646ffcbb-tn7qd status updated to In Progress
Resource deployment/python-app status updated to In Progress
Resource deployment/python-app status completed successfully
Status check succeeded
...
  1. আপনি যদি Kubernetes: Run/Debug - Detailed ভিউ, আপনি লক্ষ্য করবেন এটি ফাইলের পরিবর্তনগুলি স্বীকার করে তারপর অ্যাপটি তৈরি করে এবং পুনরায় স্থাপন করে
files modified: [app.py]
Syncing 1 files for gcr.io/veer-pylab-01/python-app:3c04f58-dirty@sha256:a42ca7250851c2f2570ff05209f108c5491d13d2b453bb9608c7b4af511109bd
Copying files:map[app.py:[/app/app.py]]togcr.io/veer-pylab-01/python-app:3c04f58-dirty@sha256:a42ca7250851c2f2570ff05209f108c5491d13d2b453bb9608c7b4af511109bd
Watching for changes...
[python-app] * Detected change in '/app/app.py', reloading
[python-app] * Restarting with stat
[python-app] * Debugger is active!
[python-app] * Debugger PIN: 744-729-662
  1. আপডেট করা ফলাফল দেখতে আপনার ব্রাউজার ট্যাব রিফ্রেশ করুন যেখানে আপনি আগের ফলাফল দেখেছেন।

ডিবাগিং

  1. ডিবাগ ভিউতে যান এবং বর্তমান থ্রেড বন্ধ করুন 647213126d7a4c7b.png . যদি এটি জিজ্ঞাসা করে, আপনি প্রতিটি রানের পরে পরিষ্কার করতে বেছে নিতে পারেন।
  2. 70d6bd947d04d1e6.png
  3. নীচের মেনুতে Cloud Code ক্লিক করুন এবং debug মোডে অ্যাপ্লিকেশনটি চালানোর জন্য Debug on Kubernetes নির্বাচন করুন।

b9465c6825caf685.png

  • Kubernetes Run/Debug - Detailed Output উইন্ডোর বিশদ দৃশ্যে, লক্ষ্য করুন যে skaffold এই অ্যাপ্লিকেশনটিকে ডিবাগ মোডে স্থাপন করবে।
  1. প্রথমবার এটি চালানো হলে একটি প্রম্পট জিজ্ঞাসা করবে কন্টেইনারের ভিতরে উৎস কোথায়। এই মানটি ডকারফাইলের ডিরেক্টরিগুলির সাথে সম্পর্কিত।

ডিফল্ট গ্রহণ করতে এন্টার টিপুন

fccc866f32b5ed86.png

অ্যাপ্লিকেশনটি তৈরি এবং স্থাপন করতে কয়েক মিনিট সময় লাগবে৷ ডিবাগ সেশন সংযোগ বিচ্ছিন্ন হলে, "ডেভেলপমেন্ট সেশন" বিভাগ থেকে "কুবারনেটে ডিবাগ" করার পদক্ষেপগুলি পুনরায় চালান।

  1. প্রক্রিয়া সম্পন্ন হলে. আপনি একটি ডিবাগার সংযুক্ত দেখতে পাবেন এবং আউটপুট ট্যাব বলছে: Attached debugger to container "python-app-8476f4bbc-h6dsl" successfully. , এবং URL http://localhost:8080 তালিকাভুক্ত।
Port forwarding pod/python-app-8bd64cf8b-cskfl in namespace default, remote port 5678 -> http://127.0.0.1:5678
  1. নীচের স্ট্যাটাস বারটি নীল থেকে কমলা রঙে পরিবর্তন করে যে এটি ডিবাগ মোডে রয়েছে।

b2abd61a129ed76.png

  1. Kubernetes Run/Debug ভিউতে, লক্ষ্য করুন যে একটি ডিবাগযোগ্য ধারক শুরু হয়েছে
**************URLs*****************
Forwarded URL from service python-app: http://localhost:8080
Debuggable container started pod/python-app-8bd64cf8b-cskfl:python-app (default)
Update succeeded
***********************************

ব্রেকপয়েন্ট ব্যবহার করুন

  1. app.py ফাইলটি খুলুন
  2. বিবৃতিটি সনাক্ত করুন যা return message পড়ে
  3. লাইন নম্বরের বাম দিকের ফাঁকা জায়গায় ক্লিক করে সেই লাইনে একটি ব্রেকপয়েন্ট যোগ করুন। ব্রেকপয়েন্ট সেট করা হয়েছে লক্ষ্য করার জন্য একটি লাল সূচক দেখাবে
  4. আপনার ব্রাউজার পুনরায় লোড করুন এবং নোট করুন ডিবাগার ব্রেকপয়েন্টে প্রক্রিয়াটি বন্ধ করে দেয় এবং আপনাকে GKE-তে দূরবর্তীভাবে চলমান অ্যাপ্লিকেশনের ভেরিয়েবল এবং অবস্থা তদন্ত করতে দেয়
  5. ভেরিয়েবল বিভাগে নিচে ক্লিক করুন
  6. স্থানীয়দের ক্লিক করুন সেখানে আপনি "message" ভেরিয়েবলটি পাবেন।
  7. "মেসেজ" ভেরিয়েবলের নামটিতে ডাবল ক্লিক করুন এবং পপআপে, "Greetings from Python" এর মত ভিন্ন কিছুতে মান পরিবর্তন করুন।
  8. ডিবাগ কন্ট্রোল প্যানেলে Continue বাটনে ক্লিক করুন 607c33934f8d6b39.png
  9. আপনার ব্রাউজারে প্রতিক্রিয়া পর্যালোচনা করুন যা এখন আপনার প্রবেশ করা আপডেট করা মান দেখায়।
  10. স্টপ বোতাম টিপে "ডিবাগ" মোড বন্ধ করুন 647213126d7a4c7b.png এবং ব্রেকপয়েন্টে আবার ক্লিক করে ব্রেকপয়েন্টটি সরিয়ে ফেলুন।

6. পরিষ্কার করা

অভিনন্দন! এই ল্যাবে আপনি স্ক্র্যাচ থেকে একটি নতুন পাইথন অ্যাপ্লিকেশন তৈরি করেছেন এবং কনটেইনারগুলির সাথে কার্যকরভাবে কাজ করার জন্য এটি কনফিগার করেছেন৷ তারপরে আপনি প্রথাগত অ্যাপ্লিকেশন স্ট্যাকগুলিতে পাওয়া একই বিকাশকারী প্রবাহ অনুসরণ করে একটি দূরবর্তী GKE ক্লাস্টারে আপনার অ্যাপ্লিকেশন স্থাপন এবং ডিবাগ করেছেন।

ল্যাব শেষ করার পরে পরিষ্কার করতে:

  1. ল্যাবে ব্যবহৃত ফাইলগুলি মুছুন
cd ~ && rm -rf ~/music-service
  1. সমস্ত সম্পর্কিত অবকাঠামো এবং সংস্থানগুলি সরাতে প্রকল্পটি মুছুন৷

-

শেষ আপডেট: 3/22/23