কন্টিনিউস ইন্টিগ্রেশন (সিআই) কী এবং এটি কীভাবে কার্যকর? [বন্ধ]


11

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


1
এই ইউটিউব ভিডিওটি আমাকে সত্যিই
ধারণাটিতে বুট করেছে

মার্টিন ফওলারের এই বিষয়ে একটি চমৎকার নিবন্ধ রয়েছে।
মার্কো ফিসেট

উত্তর:


18

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

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

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

সিআই সাধারণত অ্যাগ্রিল পদ্ধতিগুলির সাথে যুক্ত, তবে আমি ব্যক্তিগতভাবে সিআইয়ের সঠিক ইতিহাস জানি না।


1
শেষ বাক্যটি সম্পর্কে: সিআই প্রায়শই এগিলের সাথে যুক্ত থাকাকালে আমি খুব যুক্তি দিয়েছিলাম যে অ-চতুর বিকাশ (হ্যাঁ, এটি এখনও ঘটে ;-)) সু-বাস্তবায়িত সিআই থেকেও প্রচুর উপকার পেতে পারে।
জোচিম সউর

পছন্দ করুন
পাটকোস সিএসবা

@ জোয়াচিম সাউর: আমি বলব যে সিআই এমন একটি প্রকল্প যা কোনও প্রকল্পকে আরও চটুল করে তোলে যে এটি ব্যতীত হবে।
মাইকেল বর্গওয়ার্ট

3

অবিচ্ছিন্ন একীকরণের অর্থ: কোডটি এমন একটি পণ্যের সাথে সংহত করা যা প্রকৃতপক্ষে চালিত হয় এবং যা পরীক্ষা করা যায় তা সর্বদা ঘটে , না (যেমন আগের মতো ছিল) বিকাশ চক্রের শেষের দিকে একটি পৃথক ক্রিয়াকলাপ হিসাবে নয়।

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

সুবিধাটি হ'ল কোড পরিবর্তন সম্পর্কে তাত্ক্ষণিক প্রতিক্রিয়া রয়েছে যা সংকলনের ত্রুটিগুলির কারণ ঘটায় (উদাহরণস্বরূপ বিকাশকারী সমস্ত পরিবর্তনগুলি পরীক্ষা করতে ব্যর্থ হন বা বিল্ড সিস্টেমে উপস্থিত না এমন কোনও উপাদান ব্যবহার করেন) বা পরীক্ষার ক্ষেত্রে ব্যর্থতা। এটি এ জাতীয় ত্রুটিগুলি ঠিক করা আরও সহজ করে দেয়, কারণ আপনি জানেন যে কোন পরিবর্তনটি তাদের সৃষ্টি করেছে এবং দায়বদ্ধ ব্যক্তির এখনও তারা কী করেছিল তার নতুন স্মৃতি রয়েছে।

সিআই ব্যতীত, এই সমস্ত ত্রুটিগুলি ইন্টিগ্রেশন পর্যায়ে একই সময়ে এক সাথে আবির্ভূত হয়, যা তাদের এটি ঠিক করা অত্যন্ত কঠিন করে তোলে।


2

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

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

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

একটানা কেন? কারণ এমন কোনও সিস্টেমে সংহতকরণের সমন্বয়কে আরও সহজ করে দেওয়া হয়েছে যা কোনও ক্লিন বিল্ড পরীক্ষা করে যখনই কোনও কোডের ভিত্তিতে কোনও পরিবর্তন ঘটে তবে এটি মানুষের জন্য সমস্ত কিছু সংগঠিত করার চেয়ে সহজ হয়। সিস্টেমটি স্কেল করতে সক্ষম।


1

অবিচ্ছিন্ন একীকরণের দুটি দিক রয়েছে।

  1. বিকাশকারী উত্স নিয়ন্ত্রণ কৌশলটি নিশ্চিত করে যে বিকাশকারীরা তাদের চলমান কাজটি অন্যান্য বিকাশকারীদের স্থিতিশীল কোডের সাথে ক্রমাগত সংহত করতে সক্ষম হয়।
  2. উত্স নিয়ন্ত্রণের প্রতিশ্রুতি দ্বারা উত্স কোডের স্বয়ংক্রিয় বিল্ডিং এবং পরীক্ষার সূত্রপাত

পয়েন্ট 1 গুরুতর। এটি এমন একীভূত হওয়ার পদক্ষেপ যা বিকাশকারীরা প্রকৃতপক্ষে ঘন ঘন এবং সংক্ষিপ্ত আকারে সম্পাদন করে যা সংহতিকে অনেক বেশি সফল হওয়ার সম্ভাবনা তৈরি করে।

পয়েন্ট 2 হ'ল সেই সরঞ্জামগুলি এবং কাঠামো যা প্রয়োজনীয় কোডটি ভেঙে ব্যর্থ হওয়া মার্জগুলি দ্রুত চিহ্নিত করে পয়েন্ট 1 টি নিরাপদে উপস্থিত হতে দেয়।

এটা কতটা কার্যকর?

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

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


0

সিআই দরকারী, যখন আপনি:

  • কোড সংকলন
  • আসল পরীক্ষার সেট
  • প্রতিবেদনগুলি, যা আপনার উত্স কোডের উপর ভিত্তি করে (কোড কভারেজ, কোডের মান হিংসা ইত্যাদি)
  • কোডটি সাফল্যের সাথে সংকলনের পরে আপনি নিয়মিতভাবে রুটিন করেন

তালিকা চালিয়ে যেতে পারে ..

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.