Continuous delivery
কন্টিনিউয়াস ডেলিভারি (সিডি) হল একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং পদ্ধতি যেখানে দলগুলি সংক্ষিপ্ত চক্রে সফ্টওয়্যার তৈরি করে, এটি নিশ্চিত করে যে সফ্টওয়্যারটি যে কোনও সময় নির্ভরযোগ্যভাবে মুক্তি পেতে পারে এবং ম্যানুয়ালি না করে "উৎপাদন-সদৃশ পরিবেশ"-এর মাধ্যমে একটি পাইপলাইন অনুসরণ করে। এর লক্ষ্য হল আরও বেশি গতি এবং ফ্রিকোয়েন্সি সহ সফ্টওয়্যার তৈরি করা, পরীক্ষা করা এবং প্রকাশ করা। এই পদ্ধতিটি উৎপাদনে অ্যাপ্লিকেশনগুলিতে আরও বর্ধিত আপডেটের অনুমতি দিয়ে খরচ, সময় এবং পরিবর্তন সরবরাহের ঝুঁকি হ্রাস করতে সহায়তা করে। অবিচ্ছিন্ন সরবরাহের জন্য একটি সহজবোধ্য এবং পুনরাবৃত্তিযোগ্য স্থাপন প্রক্রিয়া গুরুত্বপূর্ণ। নীতিগুলি অবিচ্ছিন্ন বিতরণ একটি স্থাপনার পাইপলাইনের সাধারণ ধারণাকে একটি দুর্বল পোকা-ইয়োক হিসাবে বিবেচনা করেঃ বৈধতার একটি সেট যার মাধ্যমে সফ্টওয়্যারটির একটি অংশ অবশ্যই মুক্তি পাওয়ার পথে যেতে হবে। প্রয়োজনে কোডটি সংকলিত করা হয় এবং তারপরে একটি বিল্ড সার্ভার দ্বারা প্রতিবার কোনও সোর্স কন্ট্রোল রিপোজিটরি-তে কোনও পরিবর্তন প্রতিশ্রুতিবদ্ধ হওয়ার পরে প্যাকেজ করা হয়, তারপরে এটি মুক্তিযোগ্য হিসাবে চিহ্নিত করার আগে বিভিন্ন কৌশল (সম্ভবত ম্যানুয়াল টেস্টিং সহ) দ্বারা পরীক্ষা করা হয়। দীর্ঘ সময় ধরে চলাফেরা করতে অভ্যস্ত ডেভেলপারদের সিডি পরিবেশে কাজ করার সময় তাদের মানসিকতা পরিবর্তন করতে হতে পারে। এটা বোঝা গুরুত্বপূর্ণ যে যে কোনও কোড কমিট যে কোনও সময়ে গ্রাহকদের কাছে প্রকাশ করা যেতে পারে। ফিচার টগলের মতো প্যাটার্নগুলি কোড তাড়াতাড়ি করার জন্য খুব কার্যকর হতে পারে যা এখনও শেষ ব্যবহারকারীদের ব্যবহারের জন্য প্রস্তুত নয়। এন. ও. এস. কিউ. এল-এর ব্যবহার ডেটা স্থানান্তর এবং স্কিমা পরিবর্তনের ধাপকে দূর করতে পারে, প্রায়শই ম্যানুয়াল পদক্ষেপ বা অবিচ্ছিন্ন বিতরণ কর্মপ্রবাহের ব্যতিক্রম। বিচ্ছিন্নভাবে কোড বিকাশের জন্য অন্যান্য দরকারী কৌশল যেমন কোড শাখা একটি সিডি জগতে অপ্রচলিত নয়, তবে সিডি-র নীতিগুলির সাথে খাপ খাইয়ে নেওয়ার জন্য অবশ্যই অভিযোজিত হতে হবে-উদাহরণস্বরূপ, একাধিক দীর্ঘস্থায়ী কোড শাখা চালানো অবাস্তব প্রমাণিত হতে পারে, কারণ পাইপলাইনের সমস্ত পর্যায়ের মধ্য দিয়ে যেতে হলে একক কোড শাখা থেকে সিডি প্রক্রিয়ার প্রথম দিকে একটি মুক্তযোগ্য নিদর্শন তৈরি করতে হবে। স্থাপনার পাইপলাইনের মাধ্যমে স্থাপনার পাইপলাইন ক্রমাগত সরবরাহ করা হয়। স্থাপনার পাইপলাইনের উদ্দেশ্য তিনটি উপাদান রয়েছেঃ দৃশ্যমানতা, প্রতিক্রিয়া এবং ক্রমাগত স্থাপন। দৃশ্যমানতা-সহযোগিতা প্রচারের জন্য দলের প্রতিটি সদস্যের কাছে নির্মাণ, স্থাপন, পরীক্ষা এবং মুক্তি সহ বিতরণ ব্যবস্থার সমস্ত দিক দৃশ্যমান। প্রতিক্রিয়া-দলের সদস্যরা যত তাড়াতাড়ি সম্ভব সমস্যাগুলি সম্পর্কে জানতে পারে যাতে তারা যত তাড়াতাড়ি সম্ভব সেগুলি সমাধান করতে সক্ষম হয়। ক্রমাগত স্থাপন-একটি সম্পূর্ণ স্বয়ংক্রিয় প্রক্রিয়ার মাধ্যমে, আপনি সফ্টওয়্যারটির যে কোনও সংস্করণ যে কোনও পরিবেশে স্থাপন এবং প্রকাশ করতে পারেন। সরঞ্জাম/সরঞ্জামের ধরন ক্রমাগত সরবরাহ উৎপাদনের মাধ্যমে উৎস নিয়ন্ত্রণ থেকে অটোমেশন নেয়। বিভিন্ন সরঞ্জাম রয়েছে যা এই প্রক্রিয়াটির সমস্ত বা অংশ সম্পন্ন করতে সহায়তা করে। এই সরঞ্জামগুলি স্থাপনার পাইপলাইনের অংশ যার মধ্যে অবিচ্ছিন্ন সরবরাহ অন্তর্ভুক্ত। প্রক্রিয়াটির বিভিন্ন অংশ সম্পাদনকারী সরঞ্জামগুলির মধ্যে রয়েছেঃ অবিচ্ছিন্ন সংহতকরণ, অ্যাপ্লিকেশন রিলিজ অটোমেশন, বিল্ড অটোমেশন, অ্যাপ্লিকেশন জীবনচক্র পরিচালনা। অবিচ্ছিন্ন সরবরাহের জন্য স্থাপত্য কার্যকরভাবে অবিচ্ছিন্ন বিতরণের অনুশীলনের জন্য, সফ্টওয়্যার অ্যাপ্লিকেশনগুলিকে স্থাপনযোগ্যতা, পরিবর্তনযোগ্যতা এবং পরীক্ষামূলকতার মতো স্থাপত্যগতভাবে উল্লেখযোগ্য প্রয়োজনীয়তার (এ. এস. আর) একটি সেট পূরণ করতে হবে। এই এ. এস. আরগুলির উচ্চ অগ্রাধিকার প্রয়োজন এবং হালকাভাবে লেনদেন করা যায় না। মাইক্রো সার্ভিসগুলি প্রায়শই অবিচ্ছিন্ন বিতরণের জন্য স্থাপত্য করার সময় ব্যবহৃত হয়। মাইক্রোসার্ভিসেসের ব্যবহার একটি সফ্টওয়্যার সিস্টেমের নিয়োজনযোগ্যতা এবং পরিবর্তনযোগ্যতা বাড়িয়ে তুলতে পারে। পর্যবেক্ষণ করা স্থাপনযোগ্যতা উন্নতির মধ্যে রয়েছেঃ স্থাপনার স্বাধীনতা, স্বল্প স্থাপনার সময়, সহজ স্থাপনার পদ্ধতি এবং শূন্য ডাউনটাইম স্থাপন। পর্যবেক্ষিত পরিবর্তনশীলতার উন্নতির মধ্যে রয়েছেঃ ছোট ক্রমবর্ধমান কার্যকরী পরিবর্তনের জন্য সংক্ষিপ্ত চক্রের সময়, সহজ প্রযুক্তি নির্বাচনের পরিবর্তন, ক্রমবর্ধমান মানের বৈশিষ্ট্য পরিবর্তন এবং সহজ ভাষা ও গ্রন্থাগার আপগ্রেড। বাস্তবায়ন এবং ব্যবহার জেজ হাম্বল এবং ডেভিড ফারলি (2010) রচিত মূল সিডি বইটি এই শব্দটিকে জনপ্রিয় করেছে; তবে, এর সৃষ্টির পর থেকে সংজ্ঞাটি এগিয়ে চলেছে এবং এখন এর আরও উন্নত অর্থ রয়েছে। সংস্থাগুলি আজ এই অবিচ্ছিন্ন বিতরণ নীতি এবং সর্বোত্তম অনুশীলনগুলি বাস্তবায়ন করছে। ডোমেনের মধ্যে পার্থক্য, যেমন। মেডিকেল বনাম ওয়েব, এখনও গুরুত্বপূর্ণ এবং বাস্তবায়ন এবং ব্যবহারকে প্রভাবিত করে। এই পদ্ধতির সুপরিচিত সংস্থাগুলির মধ্যে রয়েছে ইয়াহু!, অ্যামাজন, ফেসবুক, গুগল, প্যাডি পাওয়ার এবং ওয়েলস ফার্গো। সুবিধা এবং বাধাগুলি অবিচ্ছিন্ন বিতরণের বেশ কয়েকটি সুবিধা রিপোর্ট করা হয়েছে। বাজারে ত্বরান্বিত সময়ঃ ক্রমাগত সরবরাহ একটি সংস্থাকে নতুন সফ্টওয়্যার রিলিজের অন্তর্নিহিত ব্যবসায়িক মূল্য আরও দ্রুত গ্রাহকদের কাছে পৌঁছে দিতে সহায়তা করে। এই সক্ষমতা কোম্পানিকে প্রতিযোগিতার থেকে এক ধাপ এগিয়ে থাকতে সাহায্য করে। সঠিক পণ্য তৈরি করাঃ ঘন ঘন রিলিজ অ্যাপ্লিকেশন ডেভেলপমেন্ট দলগুলিকে আরও দ্রুত ব্যবহারকারীর প্রতিক্রিয়া পেতে দেয়। এটি তাদের শুধুমাত্র দরকারী বৈশিষ্ট্যগুলিতে কাজ করতে দেয়। যদি তারা খুঁজে পায় যে কোনও বৈশিষ্ট্য কার্যকর নয়, তবে তারা এর জন্য আর কোনও প্রচেষ্টা ব্যয় করে না। এটি তাদের সঠিক পণ্য তৈরি করতে সহায়তা করে। উন্নত উৎপাদনশীলতা এবং দক্ষতাঃ ডেভেলপার, পরীক্ষক, অপারেশন ইঞ্জিনিয়ার ইত্যাদির জন্য উল্লেখযোগ্য সময় সাশ্রয়। অটোমেশনের মাধ্যমে। নির্ভরযোগ্য মুক্তিঃ মুক্তির সাথে সম্পর্কিত ঝুঁকিগুলি উল্লেখযোগ্যভাবে হ্রাস পেয়েছে এবং মুক্তির প্রক্রিয়াটি আরও নির্ভরযোগ্য হয়ে উঠেছে। ক্রমাগত সরবরাহের সাথে, উৎপাদনে স্থাপনার আগে স্থাপনার প্রক্রিয়া এবং স্ক্রিপ্টগুলি বারবার পরীক্ষা করা হয়। সুতরাং, স্থাপন প্রক্রিয়া এবং স্ক্রিপ্টের বেশিরভাগ ত্রুটি ইতিমধ্যে আবিষ্কৃত হয়েছে। আরও ঘন ঘন প্রকাশের সাথে, প্রতিটি প্রকাশে কোড পরিবর্তনের সংখ্যা হ্রাস পায়। এটি যে কোনও সমস্যা খুঁজে বের করা এবং সমাধান করা সহজ করে তোলে, যার ফলে তাদের প্রভাব পড়ার সময় হ্রাস পায়। উন্নত পণ্যের গুণগত মানঃ উন্মুক্ত বাগ এবং উৎপাদনের ঘটনার সংখ্যা উল্লেখযোগ্যভাবে হ্রাস পেয়েছে। উন্নত গ্রাহক সন্তুষ্টিঃ গ্রাহক সন্তুষ্টির একটি উচ্চতর স্তর অর্জন করা হয়। বাধা-বিপত্তিও খতিয়ে দেখা হয়েছে। গ্রাহকের পছন্দঃ কিছু গ্রাহক তাদের সিস্টেমে ক্রমাগত আপডেট চান না। এটি বিশেষ করে তাদের ক্রিয়াকলাপের গুরুত্বপূর্ণ পর্যায়ে সত্য। ডোমেইন সীমাবদ্ধতা-কিছু ক্ষেত্রে, যেমন টেলিকম এবং চিকিৎসা, নিয়মাবলীর জন্য নতুন সংস্করণগুলিকে ক্রিয়াকলাপের পর্যায়ে প্রবেশের অনুমতি দেওয়ার আগে ব্যাপক পরীক্ষার প্রয়োজন হয়। টেস্ট অটোমেশনের অভাবঃ টেস্ট অটোমেশনের অভাব বিকাশকারীদের আত্মবিশ্বাসের অভাবের দিকে পরিচালিত করে এবং ক্রমাগত ডেলিভারি ব্যবহার প্রতিরোধ করতে পারে। পরিবেশে পার্থক্যঃ উন্নয়ন, পরীক্ষা এবং উৎপাদনে ব্যবহৃত বিভিন্ন পরিবেশের ফলে সনাক্ত না হওয়া সমস্যাগুলি উৎপাদন পরিবেশে পিছলে যেতে পারে। পরীক্ষার জন্য মানব ওরাকলের প্রয়োজনঃ সমস্ত গুণগত বৈশিষ্ট্য স্বয়ংক্রিয়করণের মাধ্যমে যাচাই করা যায় না। এই বৈশিষ্ট্যগুলির জন্য লুপে মানুষের প্রয়োজন হয়, যা ডেলিভারি পাইপলাইনকে ধীর করে দেয়। আরও আটটি দত্তক নেওয়ার চ্যালেঞ্জ উত্থাপিত হয়েছিল এবং চেন দ্বারা বিস্তারিতভাবে বর্ণনা করা হয়েছিল। এই চ্যালেঞ্জগুলি সাংগঠনিক কাঠামো, প্রক্রিয়া, সরঞ্জাম, পরিকাঠামো, উত্তরাধিকার ব্যবস্থা, অবিচ্ছিন্ন বিতরণের জন্য স্থাপত্য, অ-কার্যকরী প্রয়োজনীয়তার ক্রমাগত পরীক্ষা এবং পরীক্ষা সম্পাদনের অনুকূলকরণের ক্ষেত্রে রয়েছে। দত্তক গ্রহণের চ্যালেঞ্জগুলি কাটিয়ে ওঠার কৌশলগুলি ক্রমাগত বিতরণ গ্রহণের চ্যালেঞ্জগুলি কাটিয়ে ওঠার জন্য বেশ কয়েকটি কৌশল রিপোর্ট করা হয়েছে। ডেভোপস ডেভোপসের সাথে সম্পর্ক একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং পদ্ধতি যা সাংস্কৃতিক পরিবর্তনকে কেন্দ্র করে, বিশেষত সফ্টওয়্যার সরবরাহের সাথে জড়িত বিভিন্ন দলের সহযোগিতা (বিকাশকারী, ক্রিয়াকলাপ, গুণমান নিশ্চিতকরণ, পরিচালনা ইত্যাদি)। ), পাশাপাশি সফ্টওয়্যার সরবরাহের প্রক্রিয়াগুলি স্বয়ংক্রিয় করা। অবিচ্ছিন্ন স্থাপনার সাথে সম্পর্ক একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং পদ্ধতি যা স্বয়ংক্রিয় সফ্টওয়্যার স্থাপনার ব্যবহার করে। এতে, সফ্টওয়্যারটি সংক্ষিপ্ত চক্রে তৈরি করা হয় তবে স্বয়ংক্রিয় সফ্টওয়্যার স্থাপনার মাধ্যমে এমনকি সেই শেষ ধাপের জন্য "একটি বোতামের ক্লিক" প্রয়োজন না হয়ে উৎপাদনেও তৈরি করা হয়। অতএব, ক্রমাগত স্থাপনাকে অটোমেশনের আরও পরিশীলিত রূপ হিসাবে বিবেচনা করা যেতে পারে। একাডেমিক সাহিত্য নিয়োজন পদ্ধতি অনুসারে অবিচ্ছিন্ন বিতরণ এবং অবিচ্ছিন্ন স্থাপনার মধ্যে পার্থক্য করে; ম্যানুয়াল বনাম স্বয়ংক্রিয়। আরও দেখুন অ্যাপ্লিকেশন লাইফসাইকেল ম্যানেজমেন্ট অ্যাপ্লিকেশন রিলিজ অটোমেশন বিল্ড ম্যানেজমেন্ট চেঞ্জ ম্যানেজমেন্ট সিআই/সিডি কন্টিনিউয়াস কনফিগারেশন অটোমেশন কন্টিনিউয়াস ডেলিভারি প্র্যাকটিস কন্টিনিউয়াস ইন্টিগ্রেশন কন্টিনিউয়াস টেস্টিং ডিভোপস রিলিজ ম্যানেজমেন্ট সফ্টওয়্যার কনফিগারেশন ম্যানেজমেন্ট ভার্সন নিয়ন্ত্রণ উইনওপস আরও পড়ুন রেফারেন্স সফ্টওয়্যার রিলিজ সফ্টওয়্যার ডিজাইন সফ্টওয়্যার ডেভেলপমেন্ট প্রসেস