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

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

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

পূর্বশর্ত

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

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

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

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

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

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

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

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

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

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

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

আপনার পরিবেশ-নির্দিষ্ট কনফিগারেশনের জন্য, apphosting. ENVIRONMENT_NAME .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.appspot.com
    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.appspot.com
    availability:
      -   RUNTIME

  -   variable: API_KEY
    secret: secretIDforAPI

  -   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

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

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

একবার আপনি আপনার পরিবেশ-নির্দিষ্ট 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 ব্যবহার করা চালিয়ে যেতে পারেন।

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

,

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

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

পূর্বশর্ত

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

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

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

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

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

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

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

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

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

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

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

আপনার পরিবেশ-নির্দিষ্ট কনফিগারেশনের জন্য, apphosting. ENVIRONMENT_NAME .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.appspot.com
    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.appspot.com
    availability:
      -   RUNTIME

  -   variable: API_KEY
    secret: secretIDforAPI

  -   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

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

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

একবার আপনি আপনার পরিবেশ-নির্দিষ্ট 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 ব্যবহার করা চালিয়ে যেতে পারেন।

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