বিগত প্রকল্পগুলি তাদের কাজের উন্নয়নের পরিবেশের সাথে রাখার কার্যকর উপায়?


19

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

উদাহরণস্বরূপ, লিনাক্সে আমার তৈরি পাইথন প্রকল্প রয়েছে এবং এটি লিনাক্সে সহজেই ইনস্টল করা সফ্টওয়্যার প্যাকেজগুলির উপর নির্ভর করে, তবুও আমার আর লিনাক্স ভিএম ব্যবহার করা নেই। এবং আমার অন্যান্য প্রকল্পগুলির মধ্যে কিছু অন্যান্য ওয়েব ভেরিয়েবলের উপর নির্ভর করে যেমন ওয়েব সার্ভার কনফিগারেশন, PATH ভেরিয়েবল, sdk, IDE, ওএস সংস্করণ, ডিভাইস ইত্যাদি on

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


6
এনএসএ আমার ব্যাকআপ
স্টেফ

উত্তর:


17

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


2
আমি মনে করি আপনারও সমস্ত সফ্টওয়্যার / সংস্করণের অনুলিপি ধরে রাখা এবং আপনার প্রকল্পটি কোনও স্ক্রিপ্ট থেকে ইনস্টল করতে হবে। প্রতিবার ইনস্টলটি দ্রুত পুনরুত্পাদন করতে সক্ষম হওয়া এটি একটি বড় পদক্ষেপ ।
tzerb

আমি অতীতে যা করেছি তা ছিল ... বিভিন্ন ক্লায়েন্টের পরিবেশ ইত্যাদিকে সমর্থন করার জন্য দুর্দান্ত .. সমস্যা ... তবে আমি ব্যক্তিগতভাবে হার্ড ড্রাইভগুলি সস্তা বলে মনে করি। :-)
ডেভওয়াথের

এলএক্সসি সমর্থন আরও ভাল হওয়ার সাথে সাথে লিনাক্স পরিবেশের সাথে কথা বলার সময় ভিএম এর পরিবর্তে এটি ব্যবহার করা নিরাপদ। এটি সম্পদ এবং দ্রুততর পথে খুব কম দাবি করা। এটিএম পরিচালনা করার সর্বোত্তম সরঞ্জাম এটিএম হ'ল ডকার
karka91

11

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

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

যদি পরিবেশটি সেটআপ করতে বেশি সময় নেয় (দীর্ঘ চলমান ইনস্টল, ডাউনলোড করতে বড় ফাইলগুলি, এর মতো কিছু) আমি সপ্তাহে একবার উপরোক্ত পদ্ধতিটি করি।

সুবিধাটি হ'ল এটি একটি নতুন মেশিন এবং / অথবা প্রোডাকশন সার্ভারে স্থাপন করা খুব সহজ, এটি সমস্ত স্ক্রিপ্টে নথিভুক্ত হয় এবং স্ক্রিপ্টটি প্রায়শই যাচাই করা হয়।


4

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

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

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

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

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

প্রতিটি সিস্টেম (এবং বৈচিত্রগুলি) সেট আপ করতে কিছুটা সময় নেয়, তবে যদি আপনি একটি সাধারণ কাজ হতে পুনরায় লোড এবং পুনরায় কনফিগার করার কাজটি খুঁজে পান তবে এর কিছু স্পষ্ট মান রয়েছে।


আপনি আপনার বিবৃতিতে যে কৌশলটি উল্লেখ করেছেন তার উপরে কি আপনি প্রসারিত করতে পারেন "তবে এটি যথেষ্ট স্বতন্ত্র যে প্রায়শই একটি পৃথক কৌশল প্রয়োজন"? আমি ভ্যাগ্র্যান্ট ব্যবহার করতে এবং আমার উত্স কোডের সংগ্রহস্থলটিতে একটি ভিএম কনফিগারেশন সঞ্চয় করতে যাচ্ছিলাম, এবং ভাবছি যে এটির সাথে অন্যরকম আচরণ করা হবে কি?
সিএল 22

3

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

ডকার ব্যবহার করে এটি আপনার কর্মপ্রবাহের অন্যান্য অংশগুলিকেও উন্নত করতে পারে:

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

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


2

বেশিরভাগ সিস্টেমে (ভাষা, রানটাইম বা অপারেটিং সিস্টেমগুলি) সফ্টওয়্যার এবং কনফিগারেশন ইনস্টল করার কিছু মানক পদ্ধতি রয়েছে, সুতরাং সেগুলি ব্যবহার করার চেষ্টা করুন। যেমন:

  • জাভার জন্য মাভেন বা গ্রেডল
  • পার্লের সিপিএএন
  • রেডহ্যাট / ফেডোরার জন্য আরপিএম
  • লিনাক্সের জন্য dpkg / apt-get
  • উইন্ডোজ জন্য এমএসআই প্যাকেজ

তারপরে কী ইনস্টল করতে হবে / কোন পদক্ষেপের প্রয়োজন তা বোঝাতে ইনস্টলেশন নির্দেশাবলী তৈরি করুন:

  • আপনি কী ইনস্টল করবেন বলে ধরে নিয়েছেন তার সংক্ষিপ্ত নির্দেশাবলী সরবরাহ করুন (বেস ওএস, বেস রানটাইম যেমন জাভা / পার্ল / পাইথন ...)
  • একটি সংক্ষিপ্ত স্ক্রিপ্ট লিখুন যা প্রয়োজনীয় ইনস্টলেশনগুলি সম্পাদন করে (আদর্শভাবে মাভেনের মতো কোনও সরঞ্জামের একক আহবান)
  • এটি একটি নতুন ইনস্টল (যেমন কোনও ভিএম-তে) পরীক্ষা করুন

তারপরে আপনার পরিবেশটি পুনরায় তৈরি করতে সক্ষম হওয়া উচিত এবং অন্যরাও এটি করতে সক্ষম হবেন (এটি একক প্রকল্প না হলে এটি গুরুত্বপূর্ণ হতে পারে)।

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

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

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