ডিভিসিএস ভৌগলিকভাবে বিতরণকারী দলের মধ্যে রেপো প্রতিলিপিটির আশীর্বাদ করেছে


9

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

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

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

আমি সচেতন যে সাধারণত আপনার কাছে কেবল একটি আশীর্বাদী রেপো রয়েছে তবে এটি বিশ্বব্যাপী স্কেল নাও হতে পারে এবং প্রতিটি আশীর্বাদী সংগ্রহস্থল কেবলমাত্র একক দেশের টিমের জন্য প্রযোজ্য।

আমার প্রশ্ন : ডিভিসিএসের রেপো রেপ্লিকেশনের ধারণাটি বাস্তবে ব্যবহৃত কিছু ?, কেউ কি সফলভাবে এটি করেছে ?, যদি তা হয় তবে এটি করার সঠিক উপায় কী?


বিতর্কিত সংস্করণ নিয়ন্ত্রণ ব্যবহার করে কোনও বিতরণকারী দলের সদস্যরা?
ডিউকোফগেমিং

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

1
"কোম্পানির রাজনীতির উপর নির্ভরশীল" <--- হ্যাঁ
ডিউকুফগেমিং

উত্তর:


11

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

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

উ: ডিভিসিএসে, যে কোনও ক্লোনটিতে একই ফাইলের সামগ্রী এবং ইতিহাসের মতো ইতিহাস থাকে।

রিপোসটি আপনাকে সিঙ্কে সঠিকভাবে রাখার অর্থ এই, আপনি একটি প্রতিলিপি সিস্টেম তৈরির জন্য সাধারণ ডিভিসিএস পরিবর্তন প্রসারণ অপারেশন (ক্লোন, পুশ, টান) এবং সাধারণ রেপো ব্যবহার করতে পারেন।

খ। নতুন পরিবর্তনগুলি কোথা থেকে এসেছে সেগুলি প্রচার করতে হবে না।

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

সি পরিবর্তন বা ধাক্কা মাধ্যমে প্রচার করা যেতে পারে।

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

উদাহরণ

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

0. সেন্ট্রালাইজড পুশ মডেল

Hg.duke.de এ একটি একক রেপো রাখুন এবং সমস্ত অবস্থানের বিকাশকারীদের ক্লোন করুন এবং এখান থেকে টানুন এবং পরিবর্তনগুলি এখানে ঠেলে দিন। এটি জার্মানির লোকদের জন্য কাজ করতে পারে তবে এটি সম্ভবত বিশ্বের অন্যান্য অঞ্চলের লোকদের জন্য সমস্যা হবে। সমস্ত ক্লোন, টানুন এবং ধাক্কা দেওয়া ক্রিয়াকলাপগুলি ধীর দীর্ঘ-দুরত্ব নেটওয়ার্ক লিঙ্কগুলি জুড়ে যাবে। এটি একটি ডিভিসিএস ঠিক একটি কেন্দ্রীয় সিস্টেমের মতো ব্যবহার করছে। এই সমস্যাটি আপনি সমাধান করার চেষ্টা করছেন।

1. প্রতিলিপি সঙ্গে কেন্দ্রিয় ধাক্কা

Hg.duke.de এ ধন্য রেপো রাখুন এবং hg.duke.cn, hg.duke.mx, এবং hg.duke.us এ প্রতিলিপি আছে বিকাশকারীরা তাদের স্থানীয় প্রতিলিপি থেকে ক্লোন করে hg.duke.de এ পরিবর্তনগুলি চাপান Hg.duke.de এ যখনই নতুন পরিবর্তনগুলি উপস্থিত হয়, একটি হুক চালায় যা তাদের প্রতিরূপে প্রচার করে। প্রতিলিপিগুলি অন্যথায় কেবল পঠনযোগ্য, সুতরাং কখনও কোনও মার্জ বা দ্বন্দ্ব থাকবে না।

উদাহরণস্বরূপ, আমি যদি মেক্সিকোতে বিকাশকারী হয়ে থাকি তবে আমি hg.duke.mx থেকে ক্লোন করব তবে hg.duke.de এ পরিবর্তনগুলি চাপব আমার পরিবর্তনগুলি ধাক্কা দেওয়ার আগে যদি অন্যান্য পরিবর্তনগুলিকে hg.duke.de এ ঠেলে দেওয়া হয় তবে আমার ধাক্কা বন্ধ হয়ে যাবে। অন্যান্য পরিবর্তনগুলি hg.duke.mx এ প্রতিলিপি করা হবে, সুতরাং আমি স্থানীয়ভাবে এই পরিবর্তনগুলি টানবো, একত্রীকরণ করব এবং তারপরে আবার hg.duke.de এ ধাক্কা দেওয়ার চেষ্টা করব।

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

মার্চুরিয়ালে, আপনি একটি অবস্থান থেকে টানতে স্থানীয় একটি রেপো সেট আপ করতে পারেন এবং .hg/hgrcফাইলে নীচের মতো কিছু রেখে অন্যটিতে চাপ দিতে পারেন :

[paths]
default = ssh://hg.duke.mx
default-push = ssh://hg.duke.de

2. সাধারণ পুল মডেল

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

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

প্রকারভেদ

বিভিন্ন গুচ্ছ রয়েছে যা প্রয়োগ করা যেতে পারে।

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

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

পুশ মডেলটির সাথে যারা আরও আরামদায়ক হয় তারা প্রতিরূপের পাশাপাশি প্রতিটি জায়গায় একটি স্থানীয় স্টেজিং রেপো স্থাপন করতে চাইতে পারে, যেমন: hg-stage.duke.mx, hg-stage.duke.cn ইত্যাদি। এতে আরও কিছুটা কাজ দরকার, যদিও, ডেভেলপারদের হিসাবে কেবল অন্যান্য স্থানীয় পরিবর্তনের বিরুদ্ধে মার্জ করতে হবে না, তবে কাউকে স্টেজিং রেপো থেকে আশীর্বাদী রেপোতে পরিবর্তনগুলি মার্জ করার জন্য দায়বদ্ধ হতে হবে। যদিও এটি সঠিক পরিস্থিতিতে কাজ করতে পারে এবং অটোমেশন দ্বারা সহায়তা করা যেতে পারে।

"স্বচ্ছতা"

এখন স্বচ্ছ প্রতিলিপি ইস্যুতে।

উপরোক্ত পরিস্থিতিগুলি দেখে আমি সত্যিই স্বচ্ছ প্রতিরূপের প্রয়োজন দেখতে পাচ্ছি না। সমস্ত রেপো প্রত্যেকের কাছে দৃশ্যমান এবং স্থানীয় প্রতিলিপি থেকে টানা / ক্লোনিং করার জন্য এবং একটি আশীর্বাদী রেপো বা স্থানীয় মঞ্চে স্থান দেওয়ার জন্য সম্মেলন রয়েছে।

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

আমি আশা করি এটি আপনার প্রশ্নের উত্তর দেয়। আমি প্রতিক্রিয়া সহ অনেক স্বাধীনতা গ্রহণ করেছি, তবে আমার কাছে মনে হচ্ছে যে আমি উপরে বর্ণিত কৌশলগুলির ব্যবহারের মাধ্যমে আপনার পরিস্থিতি প্রতিকার করতে পারি।


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

1
এসই আমাকে (24 ঘন্টা) দেওয়ার পরে আমি আপনাকে কিছু অতিরিক্ত অনুদান দেব, দুর্দান্ত উত্তর
ডিউকোফগেমিং

1
স্থানীয় স্টেজিং রেপগুলিতে ... স্থিতিশীল না হওয়া পর্যন্ত যদি স্থানীয়ভাবে পরিবর্তনগুলি অনুষ্ঠিত হয় এবং কেবলমাত্র মূল রেপোতে সংহত করা হয় তবে এটি বিভিন্ন দলের মধ্যে প্রচারের বিলম্ব বাড়িয়ে তোলে। এর ফলে দিনগুলিতে বা সপ্তাহের মধ্যে পরিবর্তনগুলির মধ্যে একটি খারাপ মিথস্ক্রিয়া ধরা না পড়ার ফলে রোগ নির্ণয়কে আরও কঠিন করে তোলে result আমি ইনক্রিমেন্টাল বিকাশের মাধ্যমে অস্থায়ী অস্থিতিশীলতা এড়াতে এবং যত তাড়াতাড়ি সম্ভব প্রত্যেকের (স্থিতিশীল) পরিবর্তনের জন্য সবার সামনে তুলে ধরার পরামর্শ দিচ্ছি।
স্টুয়ার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.