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

পরিবেশের প্রকারভেদ
একটি পরিবেশ গঠিত হয় সেই অন্তর্নিহিত অবকাঠামো দিয়ে যা আপনার অ্যাপ্লিকেশন, এর কোড এবং এর ডেটা চালানো ও সমর্থন করার জন্য প্রয়োজন। কিছু সাধারণ পরিবেশের বর্ণনা পর্যালোচনা করতে নিম্নলিখিত প্রতিটি পরিভাষা বিস্তারিতভাবে পড়ুন, যার মধ্যে প্রতিটি পরিবেশের ধরনে ব্যবহৃত ডেটার প্রকারভেদ সম্পর্কে পরামর্শও অন্তর্ভুক্ত রয়েছে।
প্রত্যেক ডেভেলপারের একটি ডেভেলপমেন্ট এনভায়রনমেন্ট প্রয়োজন — এটি এমন একটি নিরাপদ ও বিচ্ছিন্ন জায়গা যেখানে তৈরি করার সময় পরিবর্তনগুলো পরীক্ষা করা যায়। আদর্শগতভাবে, আপনার টিমের প্রত্যেক ডেভেলপারের নিজস্ব ডেভেলপমেন্ট এনভায়রনমেন্টে অ্যাক্সেস থাকা উচিত। এছাড়াও, ডেভেলপমেন্ট এনভায়রনমেন্টটি যদি একটি লোকাল ইনস্ট্যান্স হয়, তবে একজন ডেভেলপার অনেক দ্রুত কাজ এগিয়ে নিয়ে যেতে পারেন।
ডেভ এনভায়রনমেন্টের ডেটা সাধারণত প্রোডাকশন ডেটার অনুরূপ ডেটা দিয়ে তৈরি করা হয়, কিন্তু এতে কখনোই কোনো প্রকৃত ব্যবহারকারীর ডেটা থাকা উচিত নয়। এতে এমন ডেটাও থাকতে পারে যা অতীতে বাগ সৃষ্টি করেছে, যেমন খুব দীর্ঘ স্ট্রিং।
আপনার যদি স্বয়ংক্রিয় পরীক্ষা থাকে, তবে সেই পরীক্ষাগুলো চালানোর জন্য আপনার একটি পরিবেশের প্রয়োজন হবে এবং প্রতিবার পরীক্ষার পরিবেশটি চালু করার সময় আপনাকে ডেটা রিসেট করতে হবে।
আপনার যদি QA ইঞ্জিনিয়ার থাকে, তাহলে তাদের সকলের ব্যবহারের জন্য একটিমাত্র এনভায়রনমেন্টের প্রয়োজন হতে পারে, অথবা একটি নতুন রিলিজ ক্যান্ডিডেট পরীক্ষা করার জন্য তাদের আলাদা আলাদা এনভায়রনমেন্টের প্রয়োজন হতে পারে।
টেস্ট এবং কিউএ এনভায়রনমেন্টের ডেটাতে এমন কোয়ালিটি ডেটা যুক্ত করা হয় যা সাধারণত প্রোডাকশন ডেটার প্রতিনিধিত্ব করে। এর পাশাপাশি এতে কর্নার কেস এবং অতীতে বাগ সৃষ্টিকারী ডেটার উদাহরণও অন্তর্ভুক্ত থাকে।
প্রোডাকশনে কোনো রিলিজ কীভাবে কাজ করবে তার বাস্তবসম্মত পরীক্ষার জন্য, আপনার এমন একটি স্টেজিং এনভায়রনমেন্ট প্রয়োজন যা প্রোডাকশন ইনফ্রাস্ট্রাকচারকে যথাসম্ভব নিখুঁতভাবে অনুকরণ করে। নির্দিষ্ট ইন্টিগ্রেশনগুলোকে আলাদাভাবে পরীক্ষা করার প্রয়োজন হলে একাধিক স্টেজিং ইনস্ট্যান্স থাকাটা একটি সাধারণ বিষয়।
স্টেজিং এবং প্রোডাকশনের মধ্যে সাধারণ পার্থক্যগুলো নিচে দেওয়া হলো:
স্টেজিং-এ কিছু ফিচার বা ইন্টিগ্রেশন অনুপস্থিত থাকতে পারে, যা পার্শ্বপ্রতিক্রিয়া সৃষ্টি করতে পারে। উদাহরণস্বরূপ, স্টেজিং-কে ইমেল না পাঠানোর জন্য সেট করা থাকতে পারে।
স্টেজিং-এ বেনামী ডেটা থাকতে পারে; ডেটাটি নকল হতে পারে, কিন্তু তা বাস্তবসম্মত হওয়া উচিত। যেহেতু স্টেজিং হলো নিরাপদে সমস্যা ডিবাগ করার একটি জায়গা, তাই আপনি প্রোডাকশন ডেটার চেয়ে স্টেজিং ডেটাতে টিমের বৃহত্তর অংশকে অ্যাক্সেস দিতে পারেন। সুতরাং, ব্যবহারকারীর গোপনীয়তা রক্ষা করার জন্য, স্টেজিং-এ আসল ব্যবহারকারীর ডেটা ব্যবহার করা উচিত নয়।
আপনার রক্ষণাবেক্ষণ করা প্রতিটি অ্যাপ্লিকেশনের জন্য একটিমাত্র প্রোডাকশন এনভায়রনমেন্ট প্রয়োজন। এটিই সেই ইনস্ট্যান্স, যার সাথে আপনার ব্যবহারকারীরা ইন্টারঅ্যাক্ট করে।
অন্যান্য পরিবেশের মতো নয়, যেখানে আপনি ডেটা পরিবর্তন, মুছে ফেলা এবং/অথবা পুনরায় তৈরি করতে পারেন, আপনার প্রোডাকশন পরিবেশের ডেটা অত্যন্ত গুরুত্বপূর্ণ; আপনার প্রোডাকশন ডেটা হারিয়ে গেলে বা তাতে কোনো পরিবর্তন ঘটলে তা সরাসরি আপনার ব্যবহারকারীদের প্রভাবিত করবে।
Firebase কনসোলে, আমরা আপনার প্রোডাকশন এনভায়রনমেন্টের সাথে যুক্ত ফায়ারবেস প্রজেক্টটিকে "প্রোডাকশন" এনভায়রনমেন্ট টাইপ হিসেবে ট্যাগ করার পরামর্শ দিই। এই ট্যাগটি আপনাকে এবং আপনার সহকর্মীদের মনে করিয়ে দিতে সাহায্য করবে যে, যেকোনো পরিবর্তন আপনার সংশ্লিষ্ট প্রোডাকশন অ্যাপ এবং সেগুলোর ডেটাকে প্রভাবিত করতে পারে।
পরবর্তী পদক্ষেপ
ফায়ারবেস প্রজেক্ট সেট আপ করার জন্য আমাদের সাধারণ সেরা অনুশীলনগুলো পর্যালোচনা করুন। এই নির্দেশিকাটি ফায়ারবেস প্রজেক্টের স্তরবিন্যাস, আপনার অ্যাপ ভ্যারিয়েন্টগুলো কীভাবে নিবন্ধন করবেন এবং মাল্টি-টেনেন্সি সম্পর্কিত প্রশ্নের উত্তর দেয়।
বিভিন্ন পরিবেশের জন্য সাধারণ নিরাপত্তা নির্দেশিকাগুলো পর্যালোচনা করুন। আপনাকে নিশ্চিত করতে হবে যে প্রতিটি পরিবেশ এবং এর ডেটা সুরক্ষিত আছে।
ফায়ারবেস লঞ্চ চেকলিস্টটি পর্যালোচনা করুন।