App Hosting এবং এটি কীভাবে কাজ করে তা বোঝা

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

মূল শব্দ ও সংজ্ঞা

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

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

Google Cloud ও App Hosting আর্কিটেকচার

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

এই পৃষ্ঠায় বর্ণিত আর্কিটেকচারের একটি ডায়াগ্রাম।

  1. আপনার লাইভ ব্রাঞ্চে কোনও কমিট পুশ করা হলে, Google Cloud Developer Connect Firebase App Hosting-এ একটি ইভেন্ট পাঠায়।
  2. এই ইভেন্টের উত্তরে, Firebase App Hosting রিপোজিটরির সাথে কানেক্ট করা ব্যাকএন্ডের জন্য একটি নতুন বিল্ড তৈরি করে।
    1. প্রথমে, Firebase App Hosting আপনার কমিটের জন্য নতুন Cloud Build বিল্ড তৈরি করে। এই কাজে, Google Cloud বিল্ডপ্যাক আপনার অ্যাপ্লিকেশনে কোন ফ্রেমওয়ার্ক ব্যবহার করা হচ্ছে তা নির্ধারণ করে এবং আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত কন্টেনার ও কনফিগারেশন (এনভায়রনমেন্ট ভেরিয়েবল, গোপনীয় তথ্য, ন্যূনতম বা সর্বাধিক ইনস্ট্যান্স, কনকারেন্সি, মেমরি, সিপিইউ ও VPC কনফিগারেশন সহ) তৈরি করে। আরও তথ্যের জন্য 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-এর মাধ্যমে কীভাবে পারফর্ম্যান্স অপ্টিমাইজ করতে হয় সেই সম্পর্কে নির্দেশিকার জন্য অ্যাপ কন্টেন্ট ক্যাশে করুন দেখুন।

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

App Hosting, এইসব ফ্রেমওয়ার্কে ডেভেলপ করা ওয়েব অ্যাপের জন্য আগে থেকে কনফিগার করা বিল্ড ও ডিপ্লয়মেন্ট সংক্রান্ত সহায়তা প্রদান করে:

  • Next.js 13.5.x এবং তার পরবর্তী যেকোনও ভার্সন
  • Angular 18.2.x এবং তার পরবর্তী যেকোনও ভার্সন

নির্দিষ্ট ভার্সন ও সহায়তার লেভেল সম্পর্কে বিস্তারিত জানতে সহায়তার শিডিউল দেখুন।

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

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

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

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

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

Firebase ও অন্যান্য Google পরিষেবার সাথে ইন্টিগ্রেশন

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

App Hostingটি লোকেশন

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

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

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

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

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

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

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

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

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