ডেডিকেটেড বিল্ড মেশিনের উদ্দেশ্য কী?


74

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

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

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

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

সুতরাং, বিল্ড মেশিনটি ব্যবহারের আসল কারণ কী এবং আমি কী এটি সঠিকভাবে ব্যবহারের কাছাকাছি এসেছি?


166
"সমস্ত প্রয়োজনীয় তথ্য সহ আমার অফিস ছেড়ে চলে যাওয়ার ঝামেলা এবং তারপরে সিঁড়ি দিয়ে একটি ফ্লাইটের উপর দিয়ে কেবল একটি সাধারণ বিল্ড সম্পাদন করার জন্য [...]" আপনার অর্থ কী? আপনি কোনও বিল্ড তৈরি করতে শারীরিকভাবে সেই মেশিনটি অ্যাক্সেস করতে পারেন?
ভিনসেন্ট সাভার্ড


13
আসল ডাব্লুটিএফ হ'ল ক্লিয়ারকেস, যা সমস্ত আধুনিক ওপেন সোর্স বিকল্পগুলির চেয়ে খারাপ। এই প্রকল্পটি কোন ভাষা (গুলি) এবং বিল্ডটি কত বড় / জটিল?
pjc50

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

84
আমার বিল্ড মেশিনটি দক্ষিণ ক্যারোলিনার কোথাও এবং আমি সিয়াটলে in আমি আপনাকে আশ্বাস দিচ্ছি যে এটি ব্যবহারের জন্য আমি কোনও সিঁড়ি দিয়ে হাঁটছি না। আমার মনে হয় শেষবার যখন বিল্ড মেশিনে শারীরিক প্রবেশাধিকার পেয়েছিলাম তখন আমি ১৯৯৪ সালে মাইক্রোসফ্ট সংকলকগুলির জন্য বিল্ড মেশিনগুলির ইনচার্জ ছিলেন, যখন তারা একটি ছোট্ট পায়খানার সাথে ফিট করে; তারা এখন কোথাও একটি সম্পূর্ণ ডেটা সেন্টার। আপনার নেটওয়ার্কে মেশিনটি পান; আরও ভাল, এটি মেঘে পান এবং অন্য কাউকে এটির যত্ন নিতে বাধ্য করুন।
এরিক লিপার্ট

উত্তর:


137

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

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

বিল্ড সার্ভারগুলি সাধারণত ব্রাউজারে চলমান একটি ওয়েব গুই ব্যবহার করে একাধিক ব্যবহারকারী বা দল একবারে অ্যাক্সেস করতে পারে।

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


3
কলেজের পরে আমি আসলে সি ++ স্পর্শ করি নি, তবে আমি এর কার্যকারিতাটি বুঝতে পারি। যদিও এই ক্ষেত্রে, আমি মনে করি আমরা আসলে যা করছি তা উদ্দেশ্যমূলক উদ্দেশ্য থেকে অনেক দূরে সরিয়ে নেওয়া যেতে পারে।
জিবব্বজ

21
কিছু ভাষার জন্য (বিশেষত সি ++) আরও একটি প্রসেসিং পাওয়ারের সাথে একটি ডেডিকেটেড বক্স থাকা দরকারী, এটি অপেক্ষাকৃত ধীর সংকলন দেওয়াও কার্যকর হতে পারে।
এন্ডারল্যান্ড

31
ক্রমাগত একীকরণের অর্থ কেবল একটি বিল্ড সার্ভার থাকা ছাড়াও এর অর্থ - "বিগ ব্যাং" সংযুক্তির সমস্যাগুলি এড়াতে প্রত্যেকে যত দ্রুত সম্ভব একে অপরকে পরিবর্তনগুলি সংহত করে means অন্যথায়, স্পট-অন।
রব ক্রফোর্ড

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

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

107

ট্রুবেনফুসের উত্তর ছাড়াও, আপনি আপনার প্রশ্নের মধ্যে একটি বিল্ড মেশিনের জন্য অন্য কোনও কারণে ইঙ্গিত করেছেন।

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

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


37
+ 1 কোনও বিকাশকারীর মেশিনে কত সময় কাজ করে, এবং তার দলের বাকী
অংশগুলি তা নয়

45
এই. প্রধান অন্য মেশিনে নির্মাণের উদ্দেশ্য থাকতে হয় গঠনকর তৈরী করে ; উল্লেখযোগ্যভাবে অ-প্রতিশ্রুতিবদ্ধ স্টাফ, পরিবেশের ভেরিয়েবলগুলি ইত্যাদি সমীকরণ থেকে বাদ দিয়ে।
ম্যাথিউ এম।

9
এতে প্রসারিত করুন: একটি নতুন, পরিষ্কার ধারক চিত্র ব্যবহার করুন যা থেকে আপনি প্রতিটি বিল্ড শুরু করেন start তারপরে একটি বুটস্ট্র্যাপ স্ক্রিপ্ট সেটআপ করুন সিস্টেমটি। এটি সত্যিই পুনরুত্পাদনযোগ্য বিল্ডগুলির গ্যারান্টি দেয়।
ম্যাথিয়াস কুহন

9
@MatthiasKuhn: সত্যিই (বাইট জন্য বাইট) পুনরায় উত্পাদন আরো অনেক কিছু প্রয়োজন, তৈরী করে, CF: reproducible-builds.org wiki.debian.org/ReproducibleBuilds
ninjalj

1
এছাড়াও, কেবলমাত্র আপনার লিনাক্স ডেস্কটপে পণ্যটির লিনাক্স সংস্করণ তৈরি করে এবং পরীক্ষাগুলি পাস করার অর্থ উইন্ডোজ সংস্করণ বা ম্যাক সংস্করণটি তৈরি করবে না will
সলোমন স্লো

53

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

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

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


উপরন্তু, অতিরিক্ত ভাইরাস প্রতিরোধের।
জোশুয়া

@ জোশুয়া আপনাকে কী ধারণা দেয়?
jpmc26

14
@ jpmc26: বিল্ড মেশিনটি এতে কম কম সফ্টওয়্যার ইনস্টল করে, এর জন্য কম দূরবর্তী অ্যাক্সেস পয়েন্টের প্রয়োজন হয় এবং এটির এলোমেলো ইন্টারনেট সাইটগুলিতে কেউ ওয়েব ব্রাউজার খুলছে না।
জোশুয়া

19

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

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

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


16

... আমাদের অফিসে প্রকৃত মেশিনটি ব্যবহার করার পরিবর্তে, আমাদের বেশ কয়েকটি গ্রুপের সাথে একটি মেশিন ভাগ করতে হবে ...

আপনি বলেন যে এটি একটি খারাপ জিনিস।

আপনার এখন একটি সাধারণ বিল্ড সার্ভার রয়েছে যা আপনার বিল্ডগুলির সমস্ত - আপনার এবং অন্যান্য দলগুলির - এর মাধ্যমে তৈরি। নির্মানের ধারাবাহিকতা? পরীক্ষা করে দেখুন।

... সমস্ত প্রয়োজনীয় তথ্য সহ আমার অফিস ছেড়ে চলে যেতে এবং তারপর অন্য কোনও অফিসে সিঁড়ি দিয়ে একটি ফ্লাইটের উপর দিয়ে কেবল সাধারণ বিল্ড সম্পাদন করার ঝামেলা আমাকে অবাক করে তুলছে কেন আমি কেন প্রথম স্থানে প্রস্তাব দিয়েছিলাম।

আপনি এখনও ম্যানুয়ালি বিল্ডটি সম্পাদন করছেন এবং এটি ভাল নয়।

আপনার পক্ষে এমন একটি সার্ভার প্রক্রিয়া দরকার যা আপনি বিল্ড করার জন্য আপনার পক্ষ থেকে সারি / অনুরোধ জমা দেওয়ার অনুরোধ জমা দিয়েছেন এবং সেই প্রক্রিয়া আপনাকে ফলাফল (গুলি) ফেরত প্রেরণ করবে।


5
"আপনি বলেন যে এটি একটি খারাপ জিনিস।" এটি হতে পারে যদি তারা যা কিছু জাঙ্কস চায় সেগুলি ইনস্টল করার জন্য নিখরচায় রাজত্ব থাকে। যদি তারা এটিকে সরাতে বা শারীরিকভাবে অ্যাক্সেস করে চলেছে তবে কীভাবে এটি প্রতিরোধ করা যেতে পারে তা আমি দেখতে পাচ্ছি না।
jpmc26

7
"আপনি বলেন যে এটি একটি খারাপ জিনিস। এখন আপনার কাছে একটি সাধারণ বিল্ড সার্ভার রয়েছে যা আপনার সমস্ত বিল্ডস - আপনার এবং অন্যান্য দলগুলির - এর মাধ্যমে নির্মিত। বিল্ডের ধারাবাহিকতা? পরীক্ষা করুন"। এটি একটি সামঞ্জস্যপূর্ণ বিল্ড সম্পূর্ণ বিপরীত! অন্য কোনও দল যদি তাদের সংকলক বা অন্য কোনও সরঞ্জাম আপডেট করার সিদ্ধান্ত নিয়ে থাকে তবে আপনি হঠাৎই সম্পূর্ণ ভিন্ন বিল্ড পরিবেশের সাথে व्यवहार করছেন। এটি মোটামুটি সবচেয়ে খারাপ পরিস্থিতি (শুরু করার জন্য কোনও বিল্ড মেশিন না রেখে)।
ভু

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

@ ভু এটি খুব খারাপ পরিস্থিতি নয়, এটি একটি মধ্যম পরিস্থিতি। প্রশ্নকর্তার কাছে বর্তমানে যা আছে তা সবচেয়ে খারাপ পরিস্থিতি। (আরও মনে রাখবেন যে আপনি যদি বিল্ডগুলি পুনরুত্পাদন না করেন তবে এলোমেলো সংকলক আপগ্রেডগুলি খুব বেশি সমস্যা হয় না)
imm

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

1

অন্যান্য প্রাসঙ্গিক উত্তরের পাশাপাশি, এগুলিও শোনা যাচ্ছে যে আপনি নিজের বিল্ডগুলি সরাসরি প্রশ্নযুক্ত মেশিনে চালাচ্ছেন।

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


1

এটি পৃথক বিকাশকারীদের আইডিই, ওএস, লাইব্রেরি কনফিগারেশন ব্যতীত বিল্ড সম্পাদন করার জন্য একটি কেন্দ্রীভূত, নিরপেক্ষ অবস্থান সরবরাহ করে।

একটি উত্সর্গীকৃত বিল্ড মেশিনের সাহায্যে, প্রতিবার ভান্ডারটিতে কোনও কোড পুশ থাকার সময় আপনি এটি পুনর্নির্মাণ করতে পারেন। কেউ যখন বিল্ডটি ভাঙেন, প্রক্রিয়াটি তত্ক্ষণাত্ একটি সতর্কতা প্রেরণ করতে পারে যাতে সমস্যাটি তাত্ক্ষণিকভাবে সংশোধন করা যায়।

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


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