মডিউল 11: গুগল অ্যাপ ইঞ্জিন থেকে ক্লাউড ফাংশনে স্থানান্তর করা

1. ওভারভিউ

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

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

আপনি কিভাবে শিখবেন

  • ক্লাউড শেল ব্যবহার করুন
  • Google ক্লাউড অনুবাদ API সক্ষম করুন৷
  • API অনুরোধ প্রমাণীকরণ
  • ক্লাউড ফাংশনে চালানোর জন্য একটি ছোট অ্যাপ ইঞ্জিন অ্যাপকে রূপান্তর করুন
  • ক্লাউড ফাংশনে আপনার কোড স্থাপন করুন

আপনি কি প্রয়োজন হবে

সমীক্ষা

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

পাইথনের সাথে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

আপনি Google ক্লাউড পরিষেবাগুলি ব্যবহার করার সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

2. পটভূমি

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

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

ক্লাউড ফাংশন হল ছোট ছোট কোড স্থাপন করার জন্য যা:

  • একটি সম্পূর্ণ অ্যাপ্লিকেশন একটি অংশ নয়
  • একটি সম্পূর্ণ ডেভেলপমেন্ট স্ট্যাকে প্রয়োজন নেই
  • একটি অ্যাপ্লিকেশন বা একক মোবাইল অ্যাপ্লিকেশন ব্যাকএন্ডে রয়েছে যা একটি জিনিসের উপর ফোকাস করে৷

ক্লাউড ফায়ারস্টোর বা ক্লাউড SQL- এর মতো শেয়ার্ড কমন ডাটাবেস ব্যবহার করে আপনি ক্লাউড ফাংশন ব্যবহার করে একটি বড়, একশিলা অ্যাপ্লিকেশনকে একাধিক মাইক্রোসার্ভিসে বিভক্ত করতে পারেন। এবং আপনি যদি চান আপনার ফাংশন বা মাইক্রোসার্ভিস ক্লাউড রানে কনটেইনারাইজড এবং সার্ভারবিহীনভাবে কার্যকর করা হোক, আপনি তাও করতে পারেন।

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

  • সেটআপ/প্রিওয়ার্ক
  • কনফিগারেশন ফাইল সরান
  • অ্যাপ্লিকেশন ফাইলগুলি পরিবর্তন করুন

3. সেটআপ/প্রিওয়ার্ক

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

1. সেটআপ প্রকল্প

আপনি যদি মডিউল 2 কোডল্যাব সম্পূর্ণ করেন (এবং এটি পাইথন 3 এ পোর্ট করেন), আমরা একই প্রকল্প (এবং কোড) পুনরায় ব্যবহার করার পরামর্শ দিই। বিকল্পভাবে, আপনি একটি একেবারে নতুন প্রকল্প তৈরি করতে পারেন বা অন্য একটি বিদ্যমান প্রকল্প পুনরায় ব্যবহার করতে পারেন। অ্যাপ ইঞ্জিন পরিষেবা সক্ষম সহ প্রকল্পটির একটি সক্রিয় বিলিং অ্যাকাউন্ট রয়েছে তা নিশ্চিত করুন৷

2. বেসলাইন নমুনা অ্যাপ পান

এই কোডল্যাবের পূর্বশর্তগুলির মধ্যে একটি হল একটি কার্যকরী মডিউল 2 নমুনা অ্যাপ থাকা। আপনার যদি এটি না থাকে তবে এখানে এগিয়ে যাওয়ার আগে উপরে লিঙ্ক করা টিউটোরিয়ালটি সম্পূর্ণ করুন। অন্যথায় আপনি যদি ইতিমধ্যেই এর বিষয়বস্তুর সাথে পরিচিত হন তবে আপনি নীচের মডিউল 2 কোডটি ধরে শুরু করতে পারেন।

আপনি আপনার বা আমাদের ব্যবহার করুন না কেন, মডিউল 2 পাইথন 3 কোড যেখানে আমরা শুরু করব। এই মডিউল 11 কোডল্যাবটি আপনাকে প্রতিটি ধাপে নিয়ে যায়, মডিউল 11 রেপো ফোল্ডারে (ফিনিশ) যা আছে তার সাথে সাদৃশ্যপূর্ণ কোড দিয়ে শেষ করে।

পাইথন 3 মডিউল 2 স্টার্টিং ফাইল (আপনার বা আমাদের) এর ডিরেক্টরিটি এইরকম হওয়া উচিত:

$ ls
README.md               main.py                 templates
app.yaml                requirements.txt

3. (পুনরায়) বেসলাইন অ্যাপ স্থাপন করুন

এখন চালানোর জন্য আপনার অবশিষ্ট প্রিওয়ার্ক পদক্ষেপগুলি:

  1. gcloud কমান্ড-লাইন টুলের সাথে নিজেকে পুনরায় পরিচিত করুন
  2. gcloud app deploy সাথে নমুনা অ্যাপটি পুনরায় স্থাপন করুন
  3. অ্যাপটি অ্যাপ ইঞ্জিনে সমস্যা ছাড়াই চলে তা নিশ্চিত করুন

একবার আপনি সফলভাবে এই পদক্ষেপগুলি সম্পাদন করলে, আপনি এটিকে একটি ক্লাউড ফাংশনে রূপান্তর করতে প্রস্তুত৷

4. কনফিগারেশন ফাইল সরান

app.yaml ফাইলটি একটি অ্যাপ ইঞ্জিন আর্টিফ্যাক্ট যা ক্লাউড ফাংশনের সাথে ব্যবহার করা হয় না তাই এটি এখনই মুছুন । আপনি যদি এটি না করেন বা ভুলে যান, তাহলে কোনো ক্ষতি নেই কারণ ক্লাউড ফাংশন এটি ব্যবহার করে না। এটিই একমাত্র কনফিগারেশন পরিবর্তন কারণ requirements.txt মডিউল 2 থেকে একই রকম থাকে।

আপনি যদি Python 2 অ্যাপ ইঞ্জিন অ্যাপটি Python 3 এ পোর্ট করে থাকেন, তাহলে appengine_config.py এবং lib ফোল্ডারটি মুছুন যদি আপনার কাছে থাকে। এগুলি পাইথন 3 রানটাইমে অব্যবহৃত অ্যাপ ইঞ্জিন শিল্পকর্ম।

5. অ্যাপ্লিকেশন ফাইলগুলি পরিবর্তন করুন

শুধুমাত্র একটি অ্যাপ্লিকেশন ফাইল আছে, main.py , তাই ক্লাউড ফাংশনে যাওয়ার জন্য সমস্ত প্রয়োজনীয় পরিবর্তন এই ফাইলটিতে ঘটে।

আমদানি

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

যেহেতু ওয়েব ফ্রেমওয়ার্কগুলি ক্লাউড ফাংশন ল্যান্ডস্কেপের অংশ নয়, আপনার অ্যাপ অন্যান্য ফ্লাস্ক বৈশিষ্ট্যগুলি ব্যবহার না করলে ফ্লাস্ক থেকে কোনও আমদানি নেই৷ এটি আসলেই আমাদের ক্ষেত্রে কারণ একটি ফাংশনে রূপান্তরের পরেও টেমপ্লেট রেন্ডারিং চলছে, যার অর্থ flask.render_template() কল করার জন্য এখনও প্রয়োজন, এইভাবে এটি ফ্লাস্ক থেকে আমদানি করা। কোনো ওয়েব ফ্রেমওয়ার্ক না মানে ফ্লাস্ক অ্যাপকে ইনস্ট্যান্টিয়েট করার দরকার নেই, তাই app = Flask(__name__) । পরিবর্তনগুলি প্রয়োগ করার আগে এবং পরে আপনার কোডটি নিচের মত দেখাচ্ছে:

আগে:

from flask import Flask, render_template, request
from google.cloud import ndb

app = Flask(__name__)
ds_client = ndb.Client()

পরে:

from flask import render_template
from google.cloud import ndb

ds_client = ndb.Client()

আপনি যদি অ্যাপ অবজেক্ট ( app ) বা অন্য কোনও ওয়েব ফ্রেমওয়ার্ক অবকাঠামোর উপর নির্ভরশীল হন, তাহলে আপনাকে সেই সমস্ত নির্ভরতা সমাধান করতে হবে, উপযুক্ত সমাধান খুঁজে বের করতে হবে, অথবা তাদের ব্যবহার সম্পূর্ণভাবে মুছে ফেলতে হবে বা প্রক্সিগুলি খুঁজে বের করতে হবে। তবেই আপনি আপনার কোডটিকে একটি ক্লাউড ফাংশনে রূপান্তর করতে পারবেন। অন্যথায়, আপনি অ্যাপ ইঞ্জিনে থাকা বা ক্লাউড রানের জন্য আপনার অ্যাপকে কনটেইনারাইজ করা ভালো হবে

প্রধান হ্যান্ডলার ফাংশন স্বাক্ষর আপডেট করুন

ফাংশন স্বাক্ষরে প্রয়োজনীয় পরিবর্তনগুলি নিম্নরূপ:

  1. অ্যাপটিকে ক্লাউড ফাংশনে রূপান্তর করার পরে ফ্লাস্ক আর ব্যবহার করা হয় না, তাই রুট ডেকোরেটরগুলি সরিয়ে দিন।
  2. ক্লাউড ফাংশন স্বয়ংক্রিয়ভাবে ফ্লাস্ক Request অবজেক্টে একটি প্যারামিটার হিসাবে পাস করে, তাই এটির জন্য একটি পরিবর্তনশীল তৈরি করুন। আমাদের নমুনা অ্যাপে, আমরা এটিকে request বলব।
  3. স্থাপন করা ক্লাউড ফাংশন নাম দিতে হবে. আমাদের প্রধান হ্যান্ডলারকে অ্যাপ ইঞ্জিনে যথাযথভাবে root() নামকরণ করা হয়েছিল এটি কী ছিল তা বর্ণনা করার জন্য (রুট অ্যাপ্লিকেশন হ্যান্ডলার)। একটি ক্লাউড ফাংশন হিসাবে, এই নামটি ব্যবহার করা কম অর্থবোধ করে। পরিবর্তে, আমরা visitme নামের সাথে ক্লাউড ফাংশন স্থাপন করব, তাই পাইথন ফাংশনের নাম হিসাবেও এটি ব্যবহার করুন। একইভাবে, মডিউল 4 এবং 5-এ, আমরা ক্লাউড রান সার্ভিস visitme নাম দিয়েছি।

এই আপডেটগুলির সাথে আগে এবং পরে এখানে রয়েছে:

আগে:

@app.route('/')
def root():
    'main application (GET) handler'
    store_visit(request.remote_addr, request.user_agent)
    visits = fetch_visits(10)
    return render_template('index.html', visits=visits)

পরে:

def visitme(request):
    'main application (GET) handler'
    store_visit(request.remote_addr, request.user_agent)
    visits = fetch_visits(10)
    return render_template('index.html', visits=visits)

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

668f30e3865b27a9.png

স্থানীয় উন্নয়ন এবং পরীক্ষা

যেখানে অ্যাপ ইঞ্জিনে dev_appserver.py স্থানীয় ডেভেলপমেন্ট সার্ভার রয়েছে, সেখানে ক্লাউড ফাংশনের ফাংশন ফ্রেমওয়ার্ক রয়েছে। এই কাঠামোর সাহায্যে, আপনি স্থানীয়ভাবে বিকাশ এবং পরীক্ষা করতে পারেন। আপনার কোডটি ক্লাউড ফাংশনে স্থাপন করা যেতে পারে, তবে এটি অন্যান্য কম্পিউট প্ল্যাটফর্ম যেমন কম্পিউট ইঞ্জিন , ক্লাউড রান , বা এমনকি অন-প্রিম বা হাইব্রিড ক্লাউড সিস্টেম যা Knative সমর্থন করে সেখানেও স্থাপন করা যেতে পারে। ফাংশন ফ্রেমওয়ার্কের অতিরিক্ত লিঙ্কগুলির জন্য নীচে দেখুন।

6. নির্মাণ এবং স্থাপন

ক্লাউড ফাংশনে স্থাপন করা অ্যাপ ইঞ্জিন থেকে কিছুটা আলাদা। যেহেতু কোনো কনফিগারেশন ফাইল requirements.txt এর বাইরে ব্যবহার করা হয় না, কোড সম্পর্কে আরও তথ্য কমান্ড-লাইনে উল্লেখ করতে হবে। এই কমান্ডের সাহায্যে পাইথন 3.10 এর অধীনে চলমান আপনার নতুন HTTP-ট্রিগার করা ক্লাউড ফাংশন স্থাপন করুন:

$ gcloud functions deploy visitme --runtime python310 --trigger-http --allow-unauthenticated

নিম্নলিখিত অনুরূপ আউটপুট আশা করুন:

Deploying function (may take a while - up to 2 minutes)...⠛
For Cloud Build Logs, visit: https://console.cloud.google.com/cloud-build/builds;region=REGION/f5f6fc81-1bb3-4cdb-8bfe?project=PROJECT_ID
Deploying function (may take a while - up to 2 minutes)...done.
availableMemoryMb: 256
buildId: f5f6fc81-1bb3-4cdb-8bfe
buildName: projects/PROJECT_ID/locations/REGION/builds/f5f6fc81-1bb3-4cdb-8bfe
dockerRegistry: CONTAINER_REGISTRY
entryPoint: visitme
httpsTrigger:
  securityLevel: SECURE_OPTIONAL
  url: https://REGION-PROJECT_ID.cloudfunctions.net/visitme
ingressSettings: ALLOW_ALL
labels:
  deployment-tool: cli-gcloud
name: projects/PROJECT_ID/locations/REGION/functions/visitme
runtime: python310
serviceAccountEmail: PROJECT_ID@appspot.gserviceaccount.com
sourceUploadUrl: https://storage.googleapis.com/uploads-853031211983.REGION.cloudfunctions.appspot.com/8c923758-cee8-47ce-8e97-5720a5301c34.zip
status: ACTIVE
timeout: 60s
updateTime: '2022-05-16T18:28:06.153Z'
versionId: '8'

আপনার ফাংশন স্থাপন করার পরে, স্থাপনার আউটপুট থেকে URL ব্যবহার করুন এবং আপনার অ্যাপে যান। URLটি ফর্মের: REGION-PROJECT_ID.cloudfunctions.net/visitme । আউটপুটটি অনুরূপ হওয়া উচিত যখন আপনি এটিকে অ্যাপ ইঞ্জিনে আগে স্থাপন করেছিলেন:

2732ae9218f011a2.png

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

7. সারাংশ/পরিষ্কার

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

পরিষ্কার করুন

এই কোডল্যাবটি সম্পূর্ণ করার পরে, আপনি বিলিং এড়াতে মডিউল 2 অ্যাপ ইঞ্জিন অ্যাপ (অস্থায়ীভাবে বা স্থায়ীভাবে) অক্ষম করতে পারেন। অ্যাপ ইঞ্জিন প্ল্যাটফর্মের একটি বিনামূল্যের কোটা রয়েছে, তাই যতক্ষণ আপনি এটির ব্যবহারের স্তরের মধ্যে থাকবেন ততক্ষণ আপনাকে বিল করা হবে না। একই ডেটাস্টোরের ক্ষেত্রেও প্রযোজ্য; আরো বিস্তারিত জানার জন্য ক্লাউড ডেটাস্টোর মূল্য পৃষ্ঠা দেখুন।

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

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

পরবর্তী পদক্ষেপ

এই টিউটোরিয়ালের বাইরে, দেখার জন্য অন্যান্য মাইগ্রেশন মডিউলগুলির মধ্যে ক্লাউড রানের জন্য আপনার অ্যাপ ইঞ্জিন অ্যাপকে কন্টেইনারাইজ করা অন্তর্ভুক্ত। মডিউল 4 এবং মডিউল 5 কোডল্যাবগুলির লিঙ্কগুলি দেখুন:

  • মডিউল 4 : ডকার দিয়ে ক্লাউড রানে মাইগ্রেট করুন
  • ক্লাউড রান উইথ ডকারে চালানোর জন্য আপনার অ্যাপটি কন্টেইনারাইজ করুন
  • এই মাইগ্রেশন আপনাকে পাইথন 2 এ থাকতে দেয়।
  • মডিউল 5 : ক্লাউড বিল্ডপ্যাক সহ ক্লাউড রানে মাইগ্রেট করুন
  • ক্লাউড বিল্ডপ্যাকগুলির সাথে ক্লাউড রানে চালানোর জন্য আপনার অ্যাপটি কন্টেইনারাইজ করুন
  • ডকার, কন্টেইনার বা Dockerfile সম্পর্কে আপনার কিছু জানার দরকার নেই।
  • আপনার অ্যাপটি ইতিমধ্যেই পাইথন 3 এ স্থানান্তরিত হওয়া প্রয়োজন (বিল্ডপ্যাকগুলি পাইথন 2 সমর্থন করে না)

অন্যান্য মডিউলগুলির মধ্যে অনেকগুলি ডেভেলপারদের দেখানোর উপর ফোকাস করে যে কীভাবে অ্যাপ ইঞ্জিন বান্ডিল পরিষেবাগুলি থেকে ক্লাউড স্বতন্ত্র প্রতিস্থাপনে স্থানান্তরিত করা যায়:

  • মডিউল 2 : App Engine ndb থেকে Cloud NDB-তে স্থানান্তর করুন
  • মডিউল 7-9 : অ্যাপ ইঞ্জিন টাস্ক কিউ পুশ টাস্কগুলি থেকে ক্লাউড টাস্কে স্থানান্তর করুন
  • মডিউল 12-13 : অ্যাপ ইঞ্জিন মেমক্যাশ থেকে ক্লাউড মেমোরিস্টোরে স্থানান্তর করুন
  • মডিউল 15-16 : অ্যাপ ইঞ্জিন ব্লবস্টোর থেকে ক্লাউড স্টোরেজে স্থানান্তর করুন
  • মডিউল 18-19 : অ্যাপ ইঞ্জিন টাস্ক কিউ (টাস্ক টাস্ক) থেকে ক্লাউড পাব/সাব-এ স্থানান্তর করুন

কনটেইনারাইজেশন যদি আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট ওয়ার্কফ্লো-এর অংশ হয়ে থাকে, বিশেষ করে যদি এটি একটি CI/CD (একটানা ইন্টিগ্রেশন/কন্টিনিউয়াস ডেলিভারি বা ডিপ্লয়মেন্ট) পাইপলাইন নিয়ে থাকে, তাহলে ক্লাউড ফাংশনের পরিবর্তে ক্লাউড রানে স্থানান্তরিত করার কথা বিবেচনা করুন। আপনার অ্যাপটি ডকারের সাথে কনটেইনারাইজ করতে মডিউল 4 দেখুন, অথবা কন্টেইনার, ডকার জ্ঞান বা Dockerfile ছাড়াই এটি করতে মডিউল 5 দেখুন। ক্লাউড ফাংশন বা ক্লাউড রান বিবেচনা করা হোক না কেন, অন্য সার্ভারহীন প্ল্যাটফর্মে স্যুইচ করা ঐচ্ছিক, এবং আমরা কোনও পরিবর্তন করার আগে আপনার অ্যাপ এবং ব্যবহারের ক্ষেত্রে সেরা বিকল্পগুলি বিবেচনা করার পরামর্শ দিই।

আপনি পরবর্তীতে যে মাইগ্রেশন মডিউলটি বিবেচনা করুন না কেন, সমস্ত সার্ভারলেস মাইগ্রেশন স্টেশন সামগ্রী (কোডল্যাব, ভিডিও, সোর্স কোড [যখন উপলব্ধ]) এর ওপেন সোর্স রেপোতে অ্যাক্সেস করা যেতে পারে। রেপোর README কোন মাইগ্রেশন বিবেচনা করতে হবে এবং মাইগ্রেশন মডিউলের কোন প্রাসঙ্গিক "অর্ডার" তার নির্দেশিকাও প্রদান করে।

8. অতিরিক্ত সম্পদ

অ্যাপ ইঞ্জিন মাইগ্রেশন মডিউল কোডল্যাব সমস্যা/প্রতিক্রিয়া

আপনি যদি এই কোডল্যাবের সাথে কোনো সমস্যা খুঁজে পান, অনুগ্রহ করে ফাইল করার আগে প্রথমে আপনার সমস্যাটি অনুসন্ধান করুন। অনুসন্ধান এবং নতুন সমস্যা তৈরি করার লিঙ্ক:

মাইগ্রেশন সম্পদ

মডিউল 8 (স্টার্ট) এবং মডিউল 9 (ফিনিশ) এর জন্য রেপো ফোল্ডারগুলির লিঙ্কগুলি নীচের টেবিলে পাওয়া যাবে। এগুলি সমস্ত অ্যাপ ইঞ্জিন কোডল্যাব মাইগ্রেশনের জন্য রেপো থেকে অ্যাক্সেস করা যেতে পারে যা আপনি একটি জিপ ফাইল ক্লোন বা ডাউনলোড করতে পারেন।

কোডল্যাব

পাইথন 3

মডিউল 2

কোড

মডিউল 11

কোড

অনলাইন সম্পদ

নীচে অনলাইন সংস্থান রয়েছে যা এই টিউটোরিয়ালের জন্য প্রাসঙ্গিক হতে পারে:

অ্যাপ ইঞ্জিন

ক্লাউড ফাংশন

অন্যান্য ক্লাউড তথ্য

ভিডিও

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।