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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Firebase এবং অন্যান্য Google পরিষেবাগুলির সাথে একীকরণ৷

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

App Hosting অবস্থান

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

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

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

  • us-central1 (আইওয়া)
  • asia-east1 (তাইওয়ান)
  • europe-west4 (নেদারল্যান্ডস)

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

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

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

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

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