অবিচ্ছিন্ন ইন্টিগ্রেশন বনাম অটোমেশন বনাম অটোমেশন তৈরি করুন


12

আমি আরও দক্ষ হয়ে উঠতে চাই এবং আমি অপ্সের সরঞ্জামগুলি দক্ষতার সাথে ব্যবহার করতে চাই।

এটি মাথায় রেখে, আমি ক্রমাগত সংহতকরণ সম্পর্কে আরও জানতে চেয়েছি, তবে মনে হয় এটি সম্পর্কিত অনেকগুলি বিষয় রয়েছে।

আমি আসলে আমার কাজে জেটব্রেইন স্যুটগুলির সাথে কাজ করছি (ইন্টেলিজ, ওয়েবস্টোরাম ...), তাই আমি সেগুলি ব্যবহার চালিয়ে যেতে চেয়েছিলাম এবং আমি টিমসিটি ব্যবহার করতে চেয়েছিলাম যা মনে হয়েছিল ধারাবাহিক সংহতকরণের জন্য অনেক প্লাগইন সহ দুর্দান্ত সরঞ্জাম be

আমার সমস্যাটি হ'ল আমি জানি না যে এর মধ্যে পার্থক্যগুলি কী:

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

  • অটোমেশন স্থাপন করা (TeamCity এটি সহজেই করবে বলে মনে হয় না)

  • অবিচ্ছিন্ন একীকরণ (যা উপরের দুটিটির সংমিশ্রণ বলে মনে হচ্ছে)
  • অবিচ্ছিন্ন বিতরণ (এটি ঠিক কী? কেন এটি অবিচ্ছিন্ন একীকরণ থেকে আলাদা?)

আপনি কি আমাকে এই আরও কিছুটা বুঝতে সাহায্য করতে পারেন?


এটি অটোমেশন, অটোমেশন নয়।
ফ্লোরিয়ান মার্জাইন

এটি আমার মেশিনে তৈরি করে এটি যথেষ্ট ভাল নয় কারণ এটি প্রতিবার সঠিক কাজটি করার জন্য রেভের উপর নির্ভর করে। নতুন নির্ভরতা বা অন্যান্য দলের সদস্য পরিবর্তনের মতো বিষয়গুলি এখন আপনার সাথে মিলিত হয়েছে break
অ্যান্ডি

উত্তর:


15

উইকিপিডিয়া এই পদগুলির বেশিরভাগের ভাল সংক্ষিপ্তসার দেয়। আমি তাদের গ্রহণ এখানে:

  • বিল্ড অটোমেশনটি স্বয়ংক্রিয়ভাবে সংকলককে অনুরোধ করার পরিবর্তে কীভাবে সফ্টওয়্যারটি তৈরি করা হয় তা স্বয়ংক্রিয়করণ করছে। এটি যেমন মেক বা পিঁপড়ের মতো সরঞ্জামগুলির মাধ্যমে সম্পন্ন হবে ।

  • ডিপ্লোয়মেন্ট অটোমেশন আপনার তৈরি সফ্টওয়্যারটি নিচ্ছে এবং এটি একটি পরীক্ষা বা উত্পাদন সিস্টেমে মোতায়েন বা ইনস্টল করছে।

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

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

অন্ততপক্ষে, আপনি প্রয়োজন বিল্ড অটোমেশন, কিছু সাজানোর অর্থাত একটি build স্ক্রিপ্ট আছে। এটি আপনাকে আপনার প্রকল্পটি তৈরি করতে একটি বোতাম ক্লিক করতে বা একটি আদেশ দিতে পারে। এটির সুবিধা হ'ল ম্যানুয়ালি চলমান পদক্ষেপগুলি থেকে ত্রুটিগুলি হ্রাস করছে। কমপ্লেক্স বিল্ড এনভায়রনমেন্টগুলি কোড জেনারেট করতে পারে ( কোডগুলি কনফিগার করা থেকে ইন্টারফেস কোড, জেএক্সবি এর মত ইন্টারফেস কোড ), সংকলন কোড, এটি প্যাকেজিং, মেটাডেটা কাস্টমাইজ করা ইত্যাদি জড়িত থাকতে পারে আপনার চেকলিস্টের প্রয়োজন হয় না: কেন চেকলিস্টটি তৈরি করবেন না? আপনার বিল্ড স্ক্রিপ্ট, এবং এটি চালানোর জন্য কোনও সরঞ্জাম ব্যবহার করবেন? এটি ত্রুটিগুলি হ্রাস করে এবং ধারাবাহিকতা সরবরাহ করে।

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

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


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

1
আমি টিমসিটির সাথে পরিচিত নই তবে এটি সিআই সার্ভার হিসাবে উপস্থিত বলে মনে হচ্ছে । আমার বেশিরভাগ অভিজ্ঞতা হ'ল জেনকিনস সিআই-এর সাথে , স্বয়ংক্রিয় মোতায়েনগুলিও।

@ স্কাহারজ আপনি যদি স্বয়ংক্রিয় মোতায়েন চান তবে আপনার কাছে বিল্ডমাস্টার (সিআই সার্ভারও) এবং অক্টোপাস ডিপ্লাইয়ের মতো বিকল্প রয়েছে।
অ্যান্ডি

আপনি অবিচ্ছিন্ন একীকরণের পরিবর্তে ধারাবাহিক বিল্ডগুলি বর্ণনা করছেন। পরেরটিরও এটি পরীক্ষা করা দরকার যে জিনিসগুলি একসাথে
রাখলে

@ থরবজর্ন রাভানঅ্যান্ডারসন আপনি ঠিক বলেছেন, আপনাকে ধন্যবাদ। আমি সিআই এর সাথে পরীক্ষার উল্লেখ করতে আমার উত্তর আপডেট করেছি।

0
  • ক্রমাগত একীকরণ হ'ল সমস্ত বিকাশকারীকে পরিবর্তিত করে দিনগুলিতে বেশ কয়েকবার ভাগ করে নেওয়া মূল লাইনে রূপান্তরিত করা। এই অনুশীলনটি এখন এতটা সর্বব্যাপী যে এটি তাত্পর্যপূর্ণ বলে মনে হয় না, তবে traditionতিহ্যগতভাবে দলগুলি কয়েক সপ্তাহ বা এমনকি কয়েক মাস বিচ্ছিন্ন হয়ে সফ্টওয়্যারে কাজ করবে। ফলাফলটি "ইন্টিগ্রেশন হেল" হয়েছিল যখন আলাদা আলাদা কাজের স্ট্রিমগুলি একত্রিত করা হয়েছিল। অবিচ্ছিন্ন ইন্টিগ্রেশনটি প্রাথমিকভাবে সমস্যাগুলি সনাক্ত করতে ভাগ করা মূললাইনটির স্বয়ংক্রিয় বিল্ডগুলির সাথে সাধারণত ব্যবহৃত হয়, তবে এটি ডিভোপসের চেয়ে ঘন ঘন কমিট এবং বিকাশকারী কার্যপ্রবাহ সম্পর্কে আরও বেশি।

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

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

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

আমি আরও তথ্যের জন্য এই বইটি পড়ার পরামর্শ দিচ্ছি:


-2

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

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


2
এই অফারটি কোন কিছুরই সৃষ্টি পয়েন্ট উপর সারগর্ভ বলে মনে হচ্ছে না এবং পূর্বে উত্তর ব্যাখ্যা
মশা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.