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

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

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

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

  • Next.js 13+
  • কৌণিক 17.2+

App Hosting আপনার সংগ্রহস্থলে package-lock.json ফাইল বা অন্যান্য লক ফাইল পরিদর্শন করে আপনি কোন ফ্রেমওয়ার্ক ব্যবহার করছেন তা সনাক্ত করে। আপনি যদি একটি Node.js অ্যাপ স্থাপন করার চেষ্টা করেন যেটিতে একটি লক ফাইল নেই, App Hosting আপনার অ্যাপ তৈরি করতে এবং চালাতে ব্যর্থ হবে। আপনি আপনার রুট ডিরেক্টরিতে npm install চালিয়ে package-lock.json তৈরি করতে পারেন।

ফ্রেমওয়ার্ক অ্যাডাপ্টার

App Hosting ফ্রেমওয়ার্ক অ্যাডাপ্টারের দুটি মূল ভূমিকা রয়েছে:

  1. তারা আপনার সোর্স কোড এবং যেকোনো ফ্রেমওয়ার্ক-নির্দিষ্ট কনফিগার ফাইল (যেমন next.config.js ) পার্স করে এবং একটি আউটপুট বান্ডেল তৈরি করে যা অ্যাপ হোস্টিং অবকাঠামোর বাকি অংশ দ্বারা প্রক্রিয়া করা যেতে পারে।
  2. তারা স্ট্যাটিক সম্পদ তৈরি করতে এবং উত্পাদনের জন্য আপনার অ্যাপের একটি অপ্টিমাইজ করা সংস্করণ তৈরি করতে আপনার অ্যাপের বিল্ড কমান্ড চালায়।

ফ্রেমওয়ার্ক অ্যাডাপ্টারগুলি npm run build সহ আপনার Node.js অ্যাপ তৈরি করে, প্রতিটি ফ্রেমওয়ার্কের জন্য ডিফল্ট বিল্ড স্ক্রিপ্টগুলির সাথে সেরা কাজ করে: Next.js-এর জন্য next build এবং Angular-এর জন্য ng buildApp Hosting কাস্টম বিল্ড কমান্ড দিয়ে বিল্ড করার চেষ্টা করবে, কিন্তু নির্ভরযোগ্যভাবে সাফল্যের নিশ্চয়তা দিতে পারে না।

Next.js এবং কৌণিক অ্যাডাপ্টারের উত্স ফায়ারবেস-ফ্রেমওয়ার্ক-টুলগুলিতে উপলব্ধ।

অন্যান্য ফ্রেমওয়ার্ক

Nextjs এবং Angular ছাড়াও, অ্যাপ হোস্টিং আমাদের আউটপুট বান্ডেল স্পেসিফিকেশনের সাথে মেলে এমন একটি বিল্ড আউটপুট প্রদান করতে সক্ষম এমন যেকোনো ওয়েব ফ্রেমওয়ার্ককেও সমর্থন করে। ফ্রেমওয়ার্ক লেখকরা তাদের ফ্রেমওয়ার্ক অ্যাপ হোস্টিং দ্বারা সমর্থিত তা নিশ্চিত করতে আউটপুট বান্ডেল স্পেসিফিকেশনের সুবিধা নিতে পারেন।

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

সমর্থিত ফ্রেমওয়ার্ক Firebase ওপেন সোর্সে পাওয়া যাবে।

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

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

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

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

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

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

App Hosting অবস্থান

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

  • ভৌগলিকভাবে আপনার ব্যবহারকারীদের কাছে ডেটা এনে উন্নত কর্মক্ষমতা এবং কম বিলম্বিতা।
  • একটি অঞ্চলে 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 বা কিছু সম্পর্কিত ভূমিকা যোগ করতে হতে পারে।

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

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

পরিচিত সমস্যা এবং সীমাবদ্ধতা

App Hosting পূর্বরূপের কিছু পরিচিত সীমাবদ্ধতা রয়েছে:

  • কিছু ক্ষেত্রে, একটি App Hosting ব্যাকএন্ড আপনার অ্যাপের URL-এ Intermittent connection error বার্তাগুলি ফেরত দিতে পারে। পরবর্তী রিলিজে একটি ফিক্স পাওয়া যাবে।
  • ক্যাশে-কন্ট্রোল শিরোনামগুলি CDN ক্যাশে 60 এর মধ্যে সীমাবদ্ধ করার জন্য পরিবর্তন করা হয়েছে; ভবিষ্যতে, যখন App Hosting ডিপ্লোয় করার সময় ক্যাশে দ্রুত পরিস্কার করার ক্ষমতা রাখে, তখন এই সীমা তুলে নেওয়া হবে।
  • ইমেজ অপ্টিমাইজেশান Cloud Run ডিফল্টভাবে সম্পন্ন করা হয়, এবং অপ্টিমাইজ করা ছবিগুলি স্থির থাকে না—আমরা ইমেজ অপ্টিমাইজেশন অক্ষম করার বা ম্যানুয়ালি একটি লোডার নির্দিষ্ট করার সুপারিশ করি যতক্ষণ না একটি ভাল সমাধান পাওয়া যায়।
  • Cloud Run থেকে আনক্যাশড স্ট্যাটিক ফাইলগুলি পরিবেশিত হয়; পরবর্তী রিলিজে, ভালো পারফরম্যান্সের জন্য সেগুলি App Hosting মূল থেকে সংরক্ষণ করা হবে এবং পরিবেশন করা হবে৷
  • Firebase কনসোলের ব্যাকএন্ড ব্যবহার পৃষ্ঠায় App Hosting SKUগুলি প্রদর্শিত নাও হতে পারে। সেগুলি পরবর্তী রিলিজে পাওয়া যাবে।
  • Firebase কনসোল মাঝে মাঝে ব্যাকএন্ড তৈরিতে একটি "বিল্ড খুঁজে পাওয়া যায়নি এবং অবৈধ" ত্রুটি দেখাতে পারে।
  • বর্তমানে, একই প্রকল্পের সমস্ত ব্যাকএন্ড একটি GitHub org/অ্যাকাউন্ট শেয়ার করে। সেগুলিকে সেই org/অ্যাকাউন্টের অধীনে বিভিন্ন সংগ্রহস্থলের সাথে সংযুক্ত করা যেতে পারে। বিভিন্ন GitHub অ্যাকাউন্টের সাথে সংযুক্ত ব্যাকএন্ড তৈরি করতে, সেগুলিকে আলাদা প্রজেক্টে রাখুন।
  • Next.js মিডলওয়্যার, পুনঃলিখন এবং পুনঃনির্দেশগুলি CDN এর পিছনে, Cloud Run কার্যকর করা হয়। যেহেতু এগুলি ক্যাশে করা প্রতিক্রিয়াগুলিকে সুরক্ষিত করবে না, তাই আপনি যে সামগ্রীটি রেন্ডার করছেন তার জন্য উপযুক্ত নিয়ন্ত্রণ নির্দেশাবলী সেট করতে ভুলবেন না৷