একটি কোডবেস থেকে একাধিক পরিবেশ স্থাপন করুন

একই কোডবেস থেকে একাধিক পরিবেশ স্থাপন করা সাধারণ, প্রতিটির কনফিগারেশন কিছুটা আলাদা। উদাহরণস্বরূপ, আপনি আপনার স্টেজিং পরিবেশে কম CPU এবং RAM বরাদ্দ করতে চাইতে পারেন, অথবা আপনি নিশ্চিত করতে পারেন যে আপনার উৎপাদন পরিবেশ কমপক্ষে 1টি ইন্সট্যান্স সক্রিয় এবং অনুরোধ পরিবেশনের জন্য প্রস্তুত। আপনি যে পরিবেশ এবং সংস্থানগুলি ব্যবহার করতে চান তার উপর নির্ভর করে আপনি বিভিন্ন পরিবেশের ভেরিয়েবল এবং গোপনীয়তা নির্দিষ্ট করতে চাইতে পারেন।

এই নির্দেশিকাটি বর্ণনা করে কিভাবে একটি প্রোডাকশন এবং স্টেজিং পরিবেশ, প্রতিটিকে একটি পৃথক ফায়ারবেস প্রকল্পে স্থাপন করতে হয়। একই নীতি অনুসরণ করে, আপনি অন্যান্য বিভিন্ন ধরণের পরিবেশে স্থাপন করতে পারেন। পরিবেশ সম্পর্কে আরও জানতে, পরিবেশের সংক্ষিপ্তসার এবং ফায়ারবেস প্রকল্প স্থাপনের জন্য সাধারণ সর্বোত্তম অনুশীলনগুলি দেখুন।

পূর্বশর্ত

  • আপনার অ্যাপ্লিকেশন কোডটি ইতিমধ্যেই GitHub-এ সংরক্ষিত আছে।
  • তুমি ইতিমধ্যেই তোমার প্রতিটি পরিবেশের জন্য একটি করে আলাদা প্রকল্প তৈরি করেছ—যেমন my-production-firebase-project এবং my-staging-firebase-project । তোমার প্রোডাকশন ফায়ারবেস প্রকল্পকে "production" পরিবেশের ধরণ দিয়ে ট্যাগ করতে ভুলো না।
  • প্রতিটি প্রকল্পে, আপনি একটি App Hosting ব্যাকএন্ড তৈরি করেছেন, যেখানে লাইভ শাখাটি আপনি যে GitHub শাখাটি স্থাপন করতে চান তাতে সেট করা আছে (যেমন main )। আরও তথ্যের জন্য App Hosting শুরু করুন" দেখুন।

ধাপ ০: apphosting.yaml-এ একটি ডিফল্ট কনফিগারেশন তৈরি করুন

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

শুরু করার জন্য, আপনার অ্যাপের রুট ডিরেক্টরিতে একটি apphosting.yaml ফাইল তৈরি করুন। এটি হল ফলব্যাক কনফিগারেশন ফাইল যা পরিবেশ-নির্দিষ্ট কনফিগারেশন ফাইল খুঁজে না পেলে ব্যবহার করা হয়। apphosting.yaml এ সংরক্ষিত মানগুলি ডিফল্ট হওয়া উচিত যা সমস্ত পরিবেশের জন্য ব্যবহার করা নিরাপদ।

পরবর্তী বিভাগগুলিতে ব্যাখ্যা করা হয়েছে কিভাবে নির্দিষ্ট পরিবেশের জন্য apphosting.yaml এ ডিফল্ট মানগুলিকে ওভাররাইড করতে হয়। এই উদাহরণ প্রবাহটি একটি স্টেজিং পরিবেশ তৈরি করে।

ধাপ ১: পরিবেশের নাম সেট করুন

প্রতিটি App Hosting ব্যাকএন্ডে একটি পরিবেশ নাম সেটিং থাকে। এই ক্ষেত্রটি আপনার ব্যাকএন্ডকে একটি পরিবেশ-নির্দিষ্ট কনফিগারেশন ফাইলে ম্যাপ করার জন্য ব্যবহৃত হয় এবং যেকোনো সময় এটি পরিবর্তন করা যেতে পারে। আপনি প্রতি ব্যাকএন্ডে শুধুমাত্র একটি পরিবেশ নাম সেট করতে পারেন।

আপনার ব্যাকএন্ডের পরিবেশের নাম সেট করতে,

  1. Firebase কনসোলে, আপনার স্টেজিং প্রজেক্ট নির্বাচন করুন (এই উদাহরণে, my-staging-firebase-project)।
  2. বাম দিকের নেভিগেশন থেকে App Hosting নির্বাচন করুন।
  3. আপনার নির্বাচিত ব্যাকএন্ডে ভিউ ড্যাশবোর্ডে ক্লিক করুন।
  4. সেটিংস ট্যাবে, পরিবেশ নির্বাচন করুন।
  5. Environment name এর অধীনে, আপনার পরিবেশের নাম লিখুন। আপনি আপনার পছন্দের পরিবেশের নাম দিতে পারেন। এই উদাহরণে, এটি হল staging
  6. সংরক্ষণ করুন ক্লিক করুন।

যখন আপনার ব্যাকএন্ডের জন্য একটি App Hosting রোলআউট ট্রিগার করা হয় (হয় গিট পুশে অথবা কনসোলের মাধ্যমে ম্যানুয়ালি), App Hosting apphosting. ENVIRONMENT_NAME .yaml ফাইলটি apphosting.yaml এ ফিরে যাওয়ার আগে।

ধাপ ২: আপনার পরিবেশ-নির্দিষ্ট apphosting.yaml ফাইল তৈরি করুন

আপনার পরিবেশ-নির্দিষ্ট কনফিগারেশনের জন্য, পরিবেশ-নির্দিষ্ট ওভাররাইড নির্দিষ্ট করার জন্য apphosting. ENVIRONMENT_NAME .yaml নামে একটি ফাইল তৈরি করুন। এই ফাইলটির ডিফল্ট apphosting.yaml এর মতো একই ফর্ম্যাট রয়েছে এবং এটি অবশ্যই আপনার অ্যাপের রুট ডিরেক্টরিতে apphosting.yaml পাশাপাশি অবস্থিত হতে হবে।

বিল্ড টাইমে, App Hosting এই দুটি ফাইলকে একত্রিত করে, বেস apphosting.yaml ফাইলের চেয়ে পরিবেশ-নির্দিষ্ট YAML ফাইলের মানগুলিকে অগ্রাধিকার দেওয়া হয়।

এই উদাহরণে, আপনি অ্যাপের রুট ডিরেক্টরিতে apphosting.staging.yaml নামে একটি ফাইল তৈরি করবেন:


runConfig:
  cpu: 1
  memoryMiB: 512
  concurrency: 5

env:
-   variable: API_URL
    value: api.staging.service.com
    availability:
      -   BUILD

-   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

ধরুন আপনার কাছে ইতিমধ্যেই একটি apphosting.yaml আছে যা দেখতে এরকম:

runConfig:
  cpu: 3
  memoryMiB: 1024
  maxInstances: 4
  minInstances: 0
  concurrency: 100

env:
-   variable: API_URL
    value: api.service.com
    availability:
      -   BUILD
      -   RUNTIME

-   variable: STORAGE_BUCKET
    value: mybucket.firebasestorage.app
    availability:
      -   RUNTIME

-   variable: API_KEY
    secret: secretIDforAPI

আপনার ক্লাউড বিল্ড লগে আপনি যে চূড়ান্ত মার্জড আউটপুটটি পরীক্ষা করতে পারবেন, তা দেখতে এরকম হবে:

runConfig:
  cpu: 1
  memoryMiB: 512
  maxInstances: 4
  minInstances: 0
  concurrency: 5

env:
-   variable: API_URL
    value: api.staging.service.com
    availability:
      -   BUILD

-   variable: STORAGE_BUCKET
    value: mybucket.firebasestorage.app
    availability:
      -   RUNTIME

-   variable: API_KEY
    secret: secretIDforAPI

-   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

মনে রাখবেন যে কিছু runConfig মান যেমন CPU ওভাররাইট করা হয়েছে, সেইসাথে যেকোনো ওভারল্যাপিং এনভায়রনমেন্ট ভেরিয়েবলও ওভাররাইট করা হয়েছে।

ধাপ ৩: আপনার কোডবেস স্থাপন করুন

আপনার পরিবেশ-নির্দিষ্ট apphosting. ENVIRONMENT_NAME .yaml ফাইল, আপনার ফাইলটি GitHub-এ পুশ করুন:

$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push

এই পরিবেশের নামের সাথে ট্যাগ করা যেকোনো ব্যাকএন্ড আপনার সংশ্লিষ্ট YAML ফাইলে নির্দিষ্ট করা নির্দিষ্ট ওভাররাইড মান ব্যবহার করবে এবং যখন কোনও মান পাওয়া যাবে না তখন apphosting.yaml এ ফিরে যাবে। সংশ্লিষ্ট পরিবেশের নাম ছাড়া ব্যাকএন্ডের জন্য, আপনি apphosting.yaml ব্যবহার চালিয়ে যেতে পারেন।

পরবর্তী পদক্ষেপ