"সত্যিই পুনরুত্পাদনযোগ্য বিল্ডস" আসলে কী?


9

তারা ঠিক কি? ক্রমাগত সরবরাহের ডোমেইনে এগুলি কেন গুরুত্বপূর্ণ?

প্রসঙ্গ: আমি (রেডডিট অনুমান করি) এর একটি মন্তব্যে দেখেছি যে সত্যিকারের পুনঃপ্রজননযোগ্য বিল্ডগুলি এখনও একটি অন-গবেষণা প্রযুক্তি, এবং এটি তৈরি করা খুব কঠিন।

সুতরাং, আমি জানতে চেয়েছিলাম কেন তাদের তৈরি করা এত কঠিন?


যে প্রসঙ্গে তারা উল্লেখ করা হয়েছে তাতে কিছু পয়েন্টার (গুলি) থাকতে পারে?
ড্যান কর্নিলিস্কু

পুনঃটুইট বিশদ যুক্ত হয়েছে :)
ডওয়ানি 33

@ পিয়ের.ভ্রিয়েন্স টান দিয়ে, আমি বোঝাতে চেয়েছিলাম, make possible:) কিউএনও সম্পাদনা করছি!
দাওয়ানি 33

1
সম্পাদনার জন্য Merci, কিন্তু এটি তাকান, আমি মনে করি আপনি কেবল "তৈরি" বলতে চাইছেন ...
পিয়ের.ভ্রিয়েন্স

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

উত্তর:


8

তারা ঠিক কি?

এখানে পুনরুত্পাদনযোগ্য- বিল্ডস.org থেকে একটি উদ্ধৃতি দেওয়া হয়েছে :

পুনরুত্পাদনযোগ্য বিল্ডস হ'ল সফটওয়্যার বিকাশ অনুশীলনের একটি সেট যা মানব পাঠযোগ্য উত্স কোড থেকে কম্পিউটার দ্বারা ব্যবহৃত বাইনারি কোড পর্যন্ত যাচাইযোগ্য পথ তৈরি করে।

কেন তারা গুরুত্বপূর্ণ?

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

উদাহরণ হিসাবে:

  • এমন কোনও ব্যবসায় ধরে নিন যা কিছু সফ্টওয়্যার বিক্রেতার কাছ থেকে লাইসেন্সপ্রাপ্ত কিছু সফ্টওয়্যার প্যাকেজের উপর (নির্ভর করে) ব্যবহার করে। যেখানে ব্যবসাটি কেবল এক্সিকিউটেবল পায়, উত্সগুলি নয়, যা এই নির্বাহযোগ্যকে তৈরি করতে ব্যবহৃত হয়েছিল।

  • সবকিছু ঠিকঠাক হয় তবে কোনও সময়ে সফ্টওয়্যার বিক্রেতার সাথে কিছু ভুল হয়ে যায়, যেমন তারা ব্যবসায়ের বাইরে চলে যায় (যেমন, দেউলিয়া)।

  • এটি ব্যবসায়ের (দীর্ঘমেয়াদে) ঝুঁকি প্রকাশ করতে পারে। অর্থ্যাৎ যদি কার্যনির্বাহী (দ্বারা ব্যবহৃত) যখন ব্যবহৃত সফ্টওয়্যার বিক্রেতার কাছ থেকে কিছু কিছু সম্পর্কিত (প্রয়োজনীয় সময়ে) সমস্ত প্রয়োজনীয় উত্স, ডকুমেন্টেশন, বিল্ডিং পদ্ধতি ইত্যাদিতে ব্যবসায়ের (আইনী) অ্যাক্সেস পাওয়ার (আইনী) অ্যাক্সেস পাওয়ার কোনও ব্যবস্থা বা চুক্তি না থাকে তবে ব্যবসা) তৈরি করা হয়েছিল (এবং ব্যবসায়ের কাছে প্রেরণ করা হয়েছে)।

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

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

এবং এগুলি তৈরি করা এত কঠিন কেন?

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


4

সত্যিকারের পুনরাবৃত্তিযোগ্য বিল্ড তৈরির চেষ্টাটির ব্যবহারিক উদাহরণ দেওয়ার জন্য নিম্নলিখিতগুলি বিবেচনা করুন -

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

উত্স কোডটি যাচাই করার পরে প্রথম "বিল্ড" পদক্ষেপটি একটি ধারক স্পিন করা যাতে সমস্ত বিল্ড সময় নির্ভরতা থাকে।

বিল্ড টাইম ধারক চলমান আউটপুট একটি ধারক যা সংকলিত বাইনারি রয়েছে।

বিল্ডটির পুনরাবৃত্তির আরও গুরুত্বপূর্ণ, নিম্নলিখিত ট্যাগগুলি চূড়ান্ত ধারকটিতে যুক্ত করা হয়:

  • মূল সংগ্রহস্থলটিতে উত্স কোডের সঠিক হ্যাশ এবং উভয়ই গিট রেপোর url এবং কোডটির একটি টার বল স্ন্যাপশট যা একটি আর্টিক্ট রিপোজিটরিতে আপলোড করা হয়।
  • বিল্ড কন্টেইনারটির সঠিক সংস্করণ যা বিল্ডটি চালানোর জন্য ব্যবহৃত হয়েছিল।
  • বাইনারিটি লোড হওয়া আসল বেস ইমেজের সঠিক সংস্করণ।
  • বাইনারি তৈরি করতে ব্যবহৃত সমস্ত বিল্ড-টাইম ভেরিয়েবলের মান।
  • তিনটি কনটেইনার যেখানে তৈরি হয়েছিল সেই সাথে ডকারের সংস্করণ এবং সেই সাথে যে সংস্করণটি তারা তৈরি করার সময় সেখানে চলছে।

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

তাত্ত্বিকভাবে এটি আমাদের উচিত একটি বিল্ড সংস্করণটি পুনরুত্পাদন করার দক্ষতা দেয়।

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

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