অ্যাপ হোস্টিং এবং এটি কীভাবে কাজ করে তা বুঝুন

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

মূল পদ এবং সংজ্ঞা

App Hosting প্রক্রিয়ার খুঁটিনাটি বোঝার জন্য, কিছু পরিভাষা খুব নির্দিষ্টভাবে সংজ্ঞায়িত করা সহায়ক। এখানে মৌলিক মূল পরিভাষাগুলো দেওয়া হলো:

  • ব্যাকএন্ড : আপনার ওয়েব অ্যাপ তৈরি ও চালানোর জন্য App Hosting কর্তৃক সৃষ্ট পরিচালিত রিসোর্সসমূহের সমষ্টি।
  • বিল্ড: আপনার অ্যাপের একটি নির্দিষ্ট সংস্করণ, যা সাধারণত একটি গিট কমিটের সাথে যুক্ত থাকে। একটি বিল্ড তৈরির প্রক্রিয়ার বেশ কয়েকটি উপ-প্রক্রিয়া রয়েছে, বিশেষ করে Cloud Build এ আপনার অ্যাপ বিল্ড করা এবং Cloud Run এ একটি সংস্করণ ডেপ্লয় করা (যা রোল আউট না হওয়া পর্যন্ত প্রাথমিকভাবে ০% ট্র্যাফিক পরিচালনা করে)।
  • রোলআউট : কোনো বিল্ডকে সক্রিয়ভাবে ট্র্যাফিক পাঠানোর জন্য প্রস্তুত করার প্রক্রিয়া। যখন কোনো গিট কমিটের মাধ্যমে এটি স্বয়ংক্রিয়ভাবে চালু হয়, তখন App Hosting প্রথমে আপনার লাইভ ব্রাঞ্চ ব্যবহার করে একটি বিল্ড তৈরি করে, এবং তারপর লাইভ ট্র্যাফিককে সেদিকে চালিত করার জন্য একটি রোলআউট তৈরি করে।
  • লাইভ ব্রাঞ্চ : আপনার গিটহাব রিপোজিটরির সেই ব্রাঞ্চ যা আপনার লাইভ ইউআরএল-এ ডেপ্লয় করা হয়। প্রায়শই, এটি সেই ব্রাঞ্চ যেখানে ফিচার ব্রাঞ্চ বা ডেভেলপমেন্ট ব্রাঞ্চগুলো মার্জ করা হয়।

গুগল ক্লাউড এবং App Hosting আর্কিটেকচার

App Hosting গুগল ক্লাউডের বিভিন্ন প্রোডাক্টকে সমন্বিত করে, যার মাধ্যমে আপনি আপনার ওয়েব অ্যাপ ডেপ্লয়, সার্ভ এবং মনিটর করতে পারেন। অ্যাপগুলো Cloud Build দিয়ে তৈরি করা হয়, Cloud Run -এ সার্ভ করা হয় এবং ক্লাউড সিডিএন-এ ক্যাশ করা হয়। ক্লাউড সিক্রেট ম্যানেজারের মতো ইন্টিগ্রেটেড সার্ভিসগুলো আপনার এপিআই কী-গুলোকে সুরক্ষিত রাখে।

এই পৃষ্ঠায় বর্ণিত স্থাপত্যের একটি চিত্র।

  1. যখন আপনার লাইভ ব্রাঞ্চে কোনো কমিট পুশ করা হয়, তখন গুগল ক্লাউড ডেভেলপার কানেক্ট Firebase App Hosting এ একটি ইভেন্ট পাঠায়।
  2. এই ইভেন্টের প্রতিক্রিয়ায়, Firebase App Hosting রিপোজিটরির সাথে সংযুক্ত ব্যাকএন্ডের জন্য একটি নতুন বিল্ড তৈরি করে।
    1. প্রথমে, Firebase App Hosting আপনার কমিটের জন্য একটি নতুন Cloud Build বিল্ড তৈরি করে। এই প্রক্রিয়ায়, Google Cloud বিল্ডপ্যাকগুলি আপনার অ্যাপ্লিকেশনে ব্যবহৃত ফ্রেমওয়ার্ক নির্ধারণ করে, যাতে আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত একটি কন্টেইনার এবং কনফিগারেশন (এনভায়রনমেন্ট ভেরিয়েবল, সিক্রেটস, সর্বনিম্ন বা সর্বোচ্চ ইনস্ট্যান্স, কনকারেন্সি মেমরি, সিপিইউ এবং ভিপিসি কনফিগারেশন সহ) তৈরি করা যায়। আরও তথ্যের জন্য App Hosting বিল্ড প্রসেস দেখুন।
    2. Cloud Build কাজটি সম্পন্ন হলে, আপনার কন্টেইনারটি Firebase App Hosting জন্য নির্ধারিত একটি Artifact Registry রিপোজিটরিতে সংরক্ষিত হয়। এরপর Firebase App Hosting আপনার ইমেজ এবং কনফিগারেশন ব্যবহার করে একটি Cloud Run সার্ভিসে একটি নতুন Cloud Run রিভিশন যুক্ত করে।
  3. আপনার Cloud Run রিভিশনটি সম্পূর্ণ এবং ত্রুটিমুক্ত হিসেবে যাচাইকৃত হয়ে গেলে, Firebase App Hosting তার ট্র্যাফিক কনফিগারেশন পরিবর্তন করে সমস্ত নতুন অনুরোধকে আপনার নতুন Cloud Run রিভিশনের দিকে নির্দেশ করে। এই পর্যায়ে, রোলআউটটি সম্পূর্ণ হয়।
  4. যখন Firebase App Hosting এ হোস্ট করা কোনো ওয়েবসাইটে অনুরোধ পাঠানো হয়, তখন Cloud CDN সক্রিয় থাকা Google Cloud Load Balancer সেই অনুরোধটি পরিবেশন করে। আনক্যাশড অনুরোধগুলো আপনার Cloud Run পরিষেবাতে পাঠানো হয়। Cloud CDN ব্যবহার করে কীভাবে পারফরম্যান্স অপ্টিমাইজ করবেন, সে বিষয়ে নির্দেশনার জন্য ‘Cache app content’ দেখুন।

ফ্রেমওয়ার্ক ইন্টিগ্রেশন

App Hosting নিম্নলিখিত ফ্রেমওয়ার্কগুলিতে তৈরি ওয়েব অ্যাপগুলির জন্য পূর্ব-কনফিগার করা বিল্ড এবং ডিপ্লয় সাপোর্ট প্রদান করে:

  • Next.js 13.5.x এবং উচ্চতর সংস্করণ
  • Angular 18.2.x এবং উচ্চতর সংস্করণ

নির্দিষ্ট সংস্করণ এবং সহায়তার স্তর সম্পর্কে বিস্তারিত জানতে সহায়তা সময়সূচী দেখুন।

Next.js এবং Angular ছাড়াও, App Hosting এমন যেকোনো ওয়েব ফ্রেমওয়ার্ক সমর্থন করে যা আমাদের আউটপুট বান্ডেল স্পেসিফিকেশনের সাথে মেলে এমন একটি বিল্ড আউটপুট প্রদান করতে সক্ষম। App Hosting দ্বারা সমর্থিত ফ্রেমওয়ার্ক, ফ্রেমওয়ার্ক অ্যাডাপ্টার এবং সম্পর্কিত টুলিং সম্পর্কে আরও তথ্যের জন্য App Hosting জন্য ফ্রেমওয়ার্ক এবং টুলিং’ দেখুন।

App Hosting রিপোজিটরি ইন্টিগ্রেশন কীভাবে কাজ করে

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

  1. আপনি ডেভেলপার কানেক্ট-কে সিক্রেট ম্যানেজার অ্যাডমিন রোল প্রদান করেন। এর ফলে সিস্টেমটি ক্লাউড সিক্রেট ম্যানেজার- এ ক্রেডেনশিয়ালসমূহকে 'সিক্রেট' হিসেবে নিরাপদে সংরক্ষণ করতে পারে।
  2. আপনি Firebase GitHub অ্যাপকে আপনার GitHub রিপোজিটরি অ্যাক্সেস করার অনুমতি দিচ্ছেন। সঠিক রিপোজিটরি অ্যাক্সেস করার জন্য আপনার অতিরিক্ত GitHub অনুমতির প্রয়োজন হতে পারে।
  3. ডেভেলপার কানেক্ট আপনার প্রোজেক্টের সিক্রেট ম্যানেজার রিপোজিটরিতে একটি বিশেষ গিটহাব অথরাইজেশন টোকেন সংরক্ষণ করে; এই টোকেনটি পরিবর্তন বা মুছে ফেলবেন না।

এছাড়াও, App Hosting রোলআউট যাচাই করার জন্য গিটহাব চেকস এপিআই-এর সাথে ইন্টিগ্রেট করে। এই চেকের মাধ্যমে আপনি গিটহাবে আপনার রোলআউটের স্ট্যাটাস দেখতে পারেন এবং কোনো ত্রুটির ক্ষেত্রে ডেপ্লয়মেন্ট প্রক্রিয়াটি ডিবাগ করতে পারেন।

ফায়ারবেস এবং অন্যান্য গুগল পরিষেবাগুলির সাথে ইন্টিগ্রেশন

App Hosting আপনার বিল্ড এবং রানটাইম উভয় এনভায়রনমেন্টই সেট আপ করে, যাতে আপনি গুগল অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে ফায়ারবেস অ্যাডমিন এসডিকে ইনিশিয়ালাইজ করতে পারেন। এর ফলে, আপনার ব্যাকএন্ড বিল্ড এবং রান টাইম উভয় সময়েই অন্যান্য ফায়ারবেস প্রোডাক্টের সাথে যোগাযোগ করতে পারে। আপনার অ্যাপ ইনিশিয়ালাইজ করা এবং ফায়ারবেস এসডিকে-সম্পর্কিত অন্যান্য বিষয় সম্পর্কে আরও তথ্যের জন্য ‘আপনার ওয়েব অ্যাপে ফায়ারবেস এসডিকে ইন্টিগ্রেট করুন’ দেখুন।

App Hosting অবস্থান

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

  • আপনার ব্যবহারকারীদের ভৌগোলিকভাবে ডেটা কাছাকাছি আনার মাধ্যমে উন্নত পারফরম্যান্স এবং হ্রাসকৃত ল্যাটেন্সি।
  • একটি অঞ্চলে App Hosting এর মারাত্মক ব্যর্থতা অন্য অঞ্চলে স্থাপিত ওয়েব অ্যাপগুলিকে প্রভাবিত করবে না।

কনসোল বা Firebase সিএলআই থেকে App Hosting ব্যাকএন্ড তৈরি করার সময় আপনি এই অঞ্চলগুলির যেকোনো একটি বেছে নিতে পারেন:

  • us-central1 (আইওয়া)
  • us-east4 (উত্তর ভার্জিনিয়া)
  • us-east5 (কলম্বাস)
  • asia-east1 (তাইওয়ান)
  • asia-southeast1 (সিঙ্গাপুর)
  • europe-west4 (নেদারল্যান্ডস)

App Hosting ব্যাকএন্ড পরিষেবা অ্যাকাউন্ট

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

firebase-app-hosting-compute@ PROJECT ID .iam.gserviceaccount.com

এই সার্ভিস অ্যাকাউন্টটি ডিফল্টরূপে সমস্ত ব্যাকএন্ডের জন্য প্রযোজ্য এবং আপনার অ্যাপ বিল্ড, রান ও মনিটর করার জন্য এতে ন্যূনতম কিছু অনুমতি রয়েছে। Cloud Firestore থেকে ডেটা লোড করার মতো অপারেশন সম্পাদনের জন্য, অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে অ্যাডমিন এসডিকে-কে অথেন্টিকেট করার অনুমতিও এটির রয়েছে। ফায়ারবেস App Hosting রোলস দেখুন।

আপনার অ্যাপকে যদি বিল্ড টাইমে অথবা চলমান ব্যাকএন্ড থেকে অতিরিক্ত গুগল পরিষেবাগুলোর সাথে যোগাযোগ করার প্রয়োজন হয়, তাহলে আপনি রোল যোগ করে ডিফল্ট পরিষেবা অ্যাকাউন্টটি কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, আপনার অ্যাপের যদি Vertex AI-এর জন্য অনুমতির প্রয়োজন হয়, তাহলে আপনাকে roles/aiplatform.user বা এই ধরনের কোনো রোল যোগ করতে হতে পারে।