paint-brush
রিলিজ ম্যানেজমেন্টে ফিচার ফ্ল্যাগ সম্পর্কে আমাদের কথা বলতে হবেদ্বারা@pransh
645 পড়া
645 পড়া

রিলিজ ম্যানেজমেন্টে ফিচার ফ্ল্যাগ সম্পর্কে আমাদের কথা বলতে হবে

দ্বারা Pranshu Khanna5m2023/07/27
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

বৈশিষ্ট্য পতাকাগুলি রিলিজ পরিচালনায় একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, কোড পরিবর্তন না করেই সফ্টওয়্যার বৈশিষ্ট্যগুলি নিয়ন্ত্রণ করার ক্ষমতা বিকাশকারীদের প্রদান করে। এই পতাকাগুলি উল্লেখযোগ্যভাবে ঝুঁকি হ্রাস করতে পারে, দ্রুত প্রতিক্রিয়ার সুবিধা দিতে পারে এবং সহজ A/B পরীক্ষা এবং নিরবচ্ছিন্ন রোলব্যাক সক্ষম করতে পারে। রিলিজ ম্যানেজমেন্টের প্রেক্ষাপটে, ফিচার ফ্ল্যাগ প্রয়োগ করা রিলিজ প্রক্রিয়ার উপর বর্ধিত নিয়ন্ত্রণ প্রদান করতে পারে, যা নিরাপদ এবং আরও দক্ষ স্থাপনার অনুমতি দেয়। বাস্তবায়নের জন্য ব্যবহৃত নির্দিষ্ট সরঞ্জামগুলি নির্বিশেষে, বৈশিষ্ট্য ফ্ল্যাগগুলি বোঝা এবং ব্যবহার করা ডেভেলপার এবং পণ্য পরিচালকদের আজকের গতিশীল প্রযুক্তি পরিবেশে নেভিগেট করার জন্য একটি গুরুত্বপূর্ণ দক্ষতা।
featured image - রিলিজ ম্যানেজমেন্টে ফিচার ফ্ল্যাগ সম্পর্কে আমাদের কথা বলতে হবে
Pranshu Khanna HackerNoon profile picture
0-item

সফ্টওয়্যার ডেভেলপমেন্টের ক্রমবর্ধমান বিশ্বে, এমন সরঞ্জাম এবং কৌশল রয়েছে যা আমাদের কাজের প্রক্রিয়া এবং ফলাফলগুলিকে ব্যাপকভাবে উন্নত করতে পারে। এরকম একটি কৌশল, যার সাথে অনেকেই পরিচিত নাও হতে পারে, তা হল রিলিজ ম্যানেজমেন্ট।


বিশেষত, আমাদের রিলিজ পরিচালনায় বৈশিষ্ট্য পতাকার ভূমিকা সম্পর্কে কথা বলতে হবে।

রিলিজ ম্যানেজমেন্ট বোঝা

রিলিজ ম্যানেজমেন্ট হল সফ্টওয়্যার রিলিজ পরীক্ষা এবং স্থাপন সহ বিভিন্ন পর্যায় এবং পরিবেশের মাধ্যমে একটি সফ্টওয়্যার বিল্ডের পরিকল্পনা, সময় নির্ধারণ এবং নিয়ন্ত্রণ করার প্রক্রিয়া।


এটিকে একটি থিয়েটার প্রযোজনার মঞ্চ পরিচালক হিসাবে ভাবুন, প্রতিটি দৃশ্য (বা আমাদের ক্ষেত্রে, বৈশিষ্ট্য) সুচারুভাবে এবং সঠিক সময়ে চলে তা নিশ্চিত করে।

রিলিজ ম্যানেজমেন্টের গুরুত্বের একটি প্রধান উদাহরণ হল ইউরোপীয় স্পেস এজেন্সি দ্বারা কুখ্যাত 1996 সালে আরিয়ান 5 ফ্লাইট 501 এর উৎক্ষেপণ।


একটি ছোট সফ্টওয়্যার বাগ, রিলিজ প্রক্রিয়ায় উপেক্ষা করা, রকেটটি উত্তোলনের এক মিনিটেরও কম সময়ের মধ্যে স্ব-ধ্বংস হলে $370 মিলিয়নেরও বেশি ক্ষতির কারণ হয়। সঠিক মুক্তি ব্যবস্থাপনা এই বিপর্যয় রোধ করতে পারত।

বৈশিষ্ট্য পতাকা কি?

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


এই কৌশলটি ফিচার টগলিং, ফিচার স্যুইচিং বা ফিচার ফ্লিপিং নামেও পরিচিত।

ফিচার ফ্ল্যাগ এবং রিলিজ ম্যানেজমেন্টের ছেদ

ফিচার ফ্ল্যাগ এবং রিলিজ ম্যানেজমেন্ট এমনভাবে ছেদ করে যা বিকাশকারীদের রিলিজ প্রক্রিয়ার বিভিন্ন পর্যায়ে তাদের সফ্টওয়্যারের কার্যকারিতার উপর আরও নিয়ন্ত্রণ দেয়।


এটি একটি নাটকের 'রিহার্সাল' এবং 'ফাইনাল পারফরম্যান্স' সংস্করণ একই সাথে চলার মতো, যেখানে পরিচালকের কাছে নির্বিঘ্নে দৃশ্যগুলি অদলবদল করার ক্ষমতা রয়েছে।


উদাহরণস্বরূপ, পরীক্ষার পর্যায়ে একটি অ্যাপ্লিকেশনের একটি নতুন বৈশিষ্ট্য একটি বৈশিষ্ট্য পতাকার পিছনে লুকিয়ে রাখা যেতে পারে, যা ডেভেলপারদের শেষ ব্যবহারকারীদের প্রভাবিত না করে এটি পুঙ্খানুপুঙ্খভাবে পরীক্ষা করার অনুমতি দেয়। কোনো সমস্যা দেখা দিলে, ব্যবহারকারীর কোনো নেতিবাচক অভিজ্ঞতা রোধ করে বৈশিষ্ট্যটি অবিলম্বে বন্ধ করা যেতে পারে।

রিলিজ ম্যানেজমেন্টে ফিচার ফ্ল্যাগ ব্যবহার করার একটি আদর্শ প্রক্রিয়া।

কেন রিলিজ ম্যানেজমেন্টে ফিচার ফ্ল্যাগ ব্যবহার করবেন?

ফিচার ফ্ল্যাগগুলি রিলিজ ম্যানেজমেন্টে অনেক সুবিধা প্রদান করে, নিরাপদ স্থাপনা থেকে শুরু করে পরীক্ষা-নিরীক্ষা এবং সুন্দর অবক্ষয় পর্যন্ত।


নিরাপদ স্থাপনা একটি নিরাপত্তা জাল থাকার মত. একটি বৈশিষ্ট্য পতাকার পিছনে নতুন বৈশিষ্ট্য স্থাপন করার মাধ্যমে, বিকাশকারীরা ধীরে ধীরে বৈশিষ্ট্যটি ব্যবহারকারীদের একটি ছোট সেটের কাছে রোল আউট করতে পারে, ব্যাপক সমস্যার ঝুঁকি হ্রাস করে।


উদাহরণ স্বরূপ, Netflix 'ক্যানারি রিলিজ' করার জন্য ফিচার ফ্ল্যাগ ব্যবহারের জন্য পরিচিত, যেখানে নতুন ফিচার সম্পূর্ণ রিলিজের আগে অল্প শ্রোতাদের কাছে নিয়ে আসা হয়।

হাইপ বা মান?

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


  1. ঝুঁকি হ্রাস: বৈশিষ্ট্য পতাকাগুলি নতুন বৈশিষ্ট্য স্থাপনের ঝুঁকি হ্রাস করে। পতাকাগুলির পিছনে নতুন বৈশিষ্ট্যগুলি লুকিয়ে রেখে, আমরা সেগুলিকে সমস্ত ব্যবহারকারীর জন্য উপলব্ধ করার আগে তাদের পুঙ্খানুপুঙ্খভাবে পরীক্ষা করতে পারি৷


  2. দ্রুত প্রতিক্রিয়া: ব্যবহারকারীদের একটি ছোট উপসেটে বৈশিষ্ট্য প্রকাশ করে, আমরা প্রতিক্রিয়া সংগ্রহ করতে পারি এবং দ্রুত উন্নতি করতে পারি।


  3. পরীক্ষা-নিরীক্ষা: বৈশিষ্ট্যের পতাকাগুলি A/B টেস্টিং সক্ষম করে, যা আমাদেরকে একটি বৈশিষ্ট্যের বিভিন্ন সংস্করণ পরীক্ষা করার অনুমতি দেয় কোনটি ভাল পারফর্ম করে।


  4. নিরবিচ্ছিন্ন রোলব্যাকস: যদি একটি বৈশিষ্ট্য প্রত্যাশিত হিসাবে কাজ না করে, তাহলে বৈশিষ্ট্য ফ্ল্যাগগুলি দ্রুত রোলব্যাকের জন্য অনুমতি দেয়। এটি একটি সম্পূর্ণ সফ্টওয়্যার রিলিজ রোল ব্যাক করার চেয়ে অনেক সহজ এবং কম ঝুঁকিপূর্ণ। এখন কি?


এমন এক যুগে যেখানে গ্রাহকের প্রত্যাশা এবং প্রতিযোগিতা আগের চেয়ে বেশি, বৈশিষ্ট্য পতাকা বোঝা এবং ব্যবহার করা আর ঐচ্ছিক নয়-এটি অপরিহার্য। এমন একটি পরিস্থিতি কল্পনা করুন যেখানে একটি বৈশিষ্ট্য স্থাপন করার পরে একটি বড় বাগ আবিষ্কৃত হয়।


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


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

ফিচার ফ্ল্যাগ কিভাবে বাস্তবায়ন করবেন

আপনার সফ্টওয়্যারে বৈশিষ্ট্য ফ্ল্যাগ প্রয়োগ করা বিভিন্ন উপায়ে অর্জন করা যেতে পারে। আপনি করতে পারেন:

  1. আপনার নিজের তৈরি করুন: আপনার কাছে সময় এবং সংস্থান থাকলে, আপনি সরাসরি আপনার অ্যাপ্লিকেশনে আপনার নিজস্ব বৈশিষ্ট্য পতাকা কোড করতে পারেন। এটি আপনাকে সর্বাধিক নিয়ন্ত্রণ দেয়, তবে এটি সময়সাপেক্ষ হতে পারে এবং এটি বজায় রাখা একটি বিশাল প্রতিশ্রুতি।


  2. একটি লাইব্রেরি ব্যবহার করুন: বেশ কয়েকটি লাইব্রেরি উপলব্ধ রয়েছে যা আপনাকে বৈশিষ্ট্য ফ্ল্যাগ প্রয়োগ করতে সহায়তা করতে পারে, যেমন জাভা-এর জন্য Togglz বা পাইথনের জন্য জ্যাঙ্গো-ওয়াফেল।


  3. একটি ফিচার ফ্ল্যাগ ম্যানেজমেন্ট সিস্টেম ব্যবহার করুন: আরও শক্তিশালী সমাধানের জন্য, আপনি একটি ফিচার ফ্ল্যাগ ম্যানেজমেন্ট সিস্টেম ব্যবহার করতে পারেন যেমন Unleash , একটি বিনামূল্যের, ওপেন-সোর্স টুল যা আপনাকে ভারী উত্তোলন ছাড়াই আপনার বৈশিষ্ট্য পতাকাগুলির উপর নিয়ন্ত্রণ দেয়৷

এখনই শুরু কর

  1. আনলিশ শুরু করুন

গিট এবং ডকার ইনস্টল করার সাথে, এটি শুরু করা সহজ:


এই স্ক্রিপ্ট চালান:

 git clone [email protected]:Unleash/unleash.git cd unleash docker compose up -d


তারপরে আপনার ব্রাউজারকে localhost:4242 এবং ব্যবহার করে লগ ইন করুন:


ব্যবহারকারীর নাম: admin

পাসওয়ার্ড: unleash4all


আপনি যদি Node.js-এর মাধ্যমে সরাসরি এই রেপোতে সোর্স কোড চালাতে চান, তাহলে অবদানকারী গাইডে উঠে এবং চালানোর জন্য ধাপে ধাপে নির্দেশাবলী দেখুন।


  1. আপনার SDK সংযোগ করুন

আমাদের অফিসিয়াল SDK-এর তালিকায় আপনার পছন্দের SDK খুঁজুন এবং এটি আপনার প্রকল্পে আমদানি করুন। আপনার নির্দিষ্ট SDK-এর জন্য সেটআপ নির্দেশিকা অনুসরণ করুন।


ফ্রন্ট-এন্ড SDK-এর জন্য, ব্যবহার করুন:

  • URL: http://localhost:4242/api/frontend/
  • ক্লায়েন্ট কী: default:development.unleash-insecure-frontend-api-token


সার্ভার-সাইড SDK-এর জন্য, ব্যবহার করুন:

  • এপিআই ইউআরএল আনলেশ করুন: http://localhost:4242/api/
  • API টোকেন: default:development.unleash-insecure-api-token


আপনি যদি একটি ভিন্ন সেটআপ ব্যবহার করেন, তাহলে আপনার কনফিগারেশনের বিশদটি সম্ভবত ভিন্ন হবে যা আপনি GitHub Repo- এ খুঁজে পেতে পারেন।

উপসংহারে…

এমন এক যুগে যেখানে গ্রাহকের প্রত্যাশা এবং প্রতিযোগিতা আগের চেয়ে বেশি, বৈশিষ্ট্য পতাকা বোঝা এবং ব্যবহার করা আর ঐচ্ছিক নয়-এটি অপরিহার্য। এমন একটি পরিস্থিতি কল্পনা করুন যেখানে একটি বৈশিষ্ট্য স্থাপনের পরে একটি বড় বাগ আবিষ্কৃত হয়।


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


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