Firebase App Hosting আপনার অ্যাপ্লিকেশন সোর্স কোডকে Cloud Run -এ ডেপ্লয়মেন্টের জন্য উপযুক্ত একটি কন্টেইনারাইজড ফরম্যাটে রূপান্তর করতে Cloud Build ব্যবহার করে।
নির্মাণ প্রক্রিয়াটি নিম্নলিখিত প্রধান পর্যায়গুলির মাধ্যমে পরিচালিত হয়:
উবুন্টু : ওয়ার্কস্পেস প্রারম্ভিকীকরণ।
প্রস্তুতকারক : আপনার অ্যাপ্লিকেশনের সোর্স কোড এবং কনফিগারেশন সংগ্রহ করে।
প্রি-বিল্ডপ্যাক : বিল্ডপ্যাক পরিবেশ প্রস্তুত করে।
বিল্ড : নির্ভরতা ইনস্টল করে এবং আপনার অ্যাপ্লিকেশনটি বিল্ড করে।
প্রকাশক : প্রোডাকশন Cloud Run কন্টেইনারটিকে চূড়ান্ত করে।
এই পাঁচটি ধাপ Google Cloud কনসোলের Cloud Build -এ প্রদর্শিত বিল্ড ধাপগুলোর সাথে সরাসরি সঙ্গতিপূর্ণ:

ওয়ার্কস্পেস প্রারম্ভিকীকরণ
এই পর্যায়টি উবুন্টু বিল্ড ধাপের সাথে সম্পর্কিত। এটি বিল্ড ওয়ার্কস্পেসকে চালু করে এবং পরবর্তী বিল্ড ধাপগুলোতে ব্যবহৃত ডিরেক্টরিগুলোর জন্য সঠিক ফাইল পারমিশন সেট করা নিশ্চিত করে।
প্রস্তুতকারক
এই পর্যায়টি প্রি-বিল্ড লজিক পরিচালনার জন্য দায়ী। এটি ব্যবহারকারী-সংজ্ঞায়িত এনভায়রনমেন্ট ভেরিয়েবলগুলো পড়ে, পরিমার্জন করে এবং লেখে। এছাড়াও এটি apphosting.yaml ফাইলে নির্দিষ্ট করা যেকোনো সিক্রেটকে ডি-রেফারেন্স ও পিন করে।
প্রি-বিল্ডপ্যাক
এই ধাপটি ক্লাউড নেটিভ বিল্ডপ্যাকস লাইফসাইকেলের জন্য পরিবেশ প্রস্তুত করে। এর জন্য একটি শিম চালানো হয়, যা পূর্ববর্তী ধাপে প্রস্তুত করা কনফিগারেশন এবং এনভায়রনমেন্ট ভেরিয়েবলগুলোকে CNB টুলগুলোর প্রত্যাশিত ফরম্যাটে রূপান্তর করে।
নির্মাণ করুন
এটি বিল্ড প্রক্রিয়ার মূল অংশ, যা একটি রানযোগ্য কন্টেইনার ইমেজ এবং আপনার বিল্ড কনফিগারেশন নির্ধারণকারী একটি bundle.yaml ফাইল তৈরি করার জন্য দায়ী। এটি অ্যাপ্লিকেশনটিকে দক্ষতার সাথে প্যাকেজ করার জন্য ক্লাউড নেটিভ বিল্ডপ্যাকস এবং লাইফসাইকেল ক্রিয়েটর বাইনারি ব্যবহার করে। bundle.yaml ফাইল সম্পর্কে আরও তথ্য গিটহাবে পাওয়া যাবে।
বিল্ডপ্যাকগুলো আপনার অ্যাপ্লিকেশনের সোর্স কোডকে প্রোডাকশন-রেডি কন্টেইনার ইমেজে রূপান্তর করার দায়িত্বে থাকে। Firebase App Hosting বিল্ড প্রক্রিয়াটি সম্পন্ন করার জন্য একাধিক বিল্ডপ্যাককে একসাথে যুক্ত করে:
- রানটাইম বিল্ডপ্যাক : একটি সাধারণ Node.js অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সমস্ত উপাদান অন্তর্ভুক্ত এবং নির্ভরতাগুলি ইনস্টল করা নিশ্চিত করে।
- মনোরেপো বিল্ডপ্যাক : বিভিন্ন মনোরেপো পরিস্থিতি সামাল দেওয়ার জন্য পরবর্তী বিল্ডপ্যাকগুলোকে কনফিগার করে।
ফ্রেমওয়ার্ক বিল্ডপ্যাক : সঠিক ফ্রেমওয়ার্ক অ্যাডাপ্টার (যেমন Angular বা Next.js) ইনস্টল করে এবং পরবর্তী বিল্ডপ্যাকগুলো প্রস্তুত করে।
ফ্রেমওয়ার্ক অ্যাডাপ্টারগুলো প্রোডাকশনাইজড বিল্ড কমান্ড চালানোর এবং যেকোনো প্রাসঙ্গিক ফ্রেমওয়ার্ক-নির্দিষ্ট কনফিগারেশন ভ্যালুকে App Hosting দ্বারা পাঠযোগ্য একটি স্ট্যান্ডার্ড ফরম্যাটে ম্যাপ করার দায়িত্বে থাকে।
প্যাকেজ ম্যানেজার বিল্ডপ্যাক : npm, yarn, বা pnpm ব্যবহার করে ডিপেন্ডেন্সিগুলো ইনস্টল করে এবং অ্যাপটি বিল্ড করে।
আউটপুট বান্ডেল বিল্ডপ্যাক : রান কমান্ড নির্ধারণ করে এবং নির্বাহের জন্য আউটপুট বান্ডেল প্রস্তুত করে।
প্রকাশক
এই চূড়ান্ত পর্যায়ে অ্যাপ্লিকেশন সোর্স কোড এবং বিল্ড কন্টেইনার ইমেজ থেকে সংগৃহীত সমস্ত তথ্য প্যাকেজ করে App Hosting ব্যাকএন্ডে পাঠানো হয়। এরপর App Hosting ব্যাকএন্ড এই তথ্য ব্যবহার করে যথাযথ কনফিগারেশন সহ Cloud Run সেট আপ করে।
পরিচ্ছন্নতা নীতি তৈরি করুন
Firebase App Hosting একটি স্বয়ংক্রিয় বিল্ড সংরক্ষণ এবং পরিষ্করণ নীতি প্রয়োগ করে। এই নীতির অধীনে, App Hosting আপনার গত ১৪ দিনের সফল বিল্ড এবং সেগুলোর সাথে সম্পর্কিত Cloud Run রিভিশনগুলো সংরক্ষণ করে। এছাড়াও, আপনার কাছে রোলব্যাক করার জন্য সর্বদা একটি বিল্ড আছে তা নিশ্চিত করতে, App Hosting সেগুলোর বয়স নির্বিশেষে আপনার সবচেয়ে সাম্প্রতিক ৫টি সফল বিল্ড এবং রোলআউট সংরক্ষণ করে।
App Hosting আপনার সক্রিয় ট্র্যাফিক স্প্লিটে থাকা অথবা কোনো চলমান রোলআউটের সাথে যুক্ত কোনো বিল্ড কখনোই ডিলিট বা রিমুভ করবে না।
যখন পুরোনো বিল্ডগুলো এই রিটেনশন লিমিট অতিক্রম করে, তখন সেগুলোর ইন্টারনাল স্ট্যাটাস EXPIRED হিসেবে আপডেট করা হয়। আপনি একটি EXPIRED বিল্ডে তাৎক্ষণিক রোলব্যাক করতে পারবেন না এবং এই বিল্ডগুলোতে রোলব্যাক করার অপশনটি Firebase কনসোল থেকে সরিয়ে দেওয়া হবে। এর পরিবর্তে, আপনাকে একই সোর্স (যেমন একটি গিট কমিট, Artifact Registry -তে থাকা একটি কন্টেইনার, অথবা একটি Google Cloud Storage বাকেট) টার্গেট করে একটি নতুন বিল্ড তৈরি করতে হবে এবং সেটি রোল আউট করতে হবে।
বিল্ড রিসোর্স সাশ্রয় করার একটি উপায় হলো, আপনি কত ঘন ঘন স্বয়ংক্রিয় রোলআউট চালু করবেন তা নিয়ন্ত্রণ করা। স্বয়ংক্রিয় রোলআউট পরিচালনা দেখুন।
আরও জানুন
সম্পূর্ণ App Hosting বিল্ড প্রক্রিয়াটি ওপেন সোর্স।
- বিল্ডপ্যাক কোডটি গুগল ক্লাউড বিল্ডপ্যাকস রিপোতে রয়েছে।
- ফ্রেমওয়ার্ক অ্যাডাপ্টারগুলির কোড firebase-framework-tools রিপোতে রয়েছে।
- ক্লাউড নেটিভ বিল্ডপ্যাক এবং ক্লাউড বিল্ড সম্পর্কে আরও জানুন