"সমস্ত পণ্যের জন্য একটি বড় ভিসিএস সংগ্রহস্থল" সংগঠন মডেল থেকে "অনেকগুলি ছোট ভিসিএস সংগ্রহস্থল" মডেলটিতে কীভাবে মসৃণ রূপান্তর অর্জন করবেন?


15

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

এই প্রশ্নের উত্তরে আমি দেখতে চাই:

  1. কোন পণ্যটি কী তা একটি কার্যকরী সংজ্ঞা দেওয়ার একটি প্রচেষ্টা যা একটি বিদ্যমান কোডবেজে পণ্যগুলি চিত্রিত করার জন্য ব্যবহারিক মানদণ্ড দেয়।

  2. এই কার্যনির্বাহী সংজ্ঞা অনুসারে, এমন একটি পরিকল্পনা প্রশস্ত করুন যা আসলে বিভাজনটি সম্পাদন করে। আমরা সরল ভাবনাটি হলো এই যে কোডবেস একটি সম্পূর্ণরূপে স্বয়ংক্রিয় দ্বারা প্রক্রিয়াকৃত হয় করতে পারেন বাস্তবায়ন এবং । এটি হ'ল, প্রতিটি শাখা বর্তমান কোডবেসে প্রয়োগ করা একটি স্বয়ংক্রিয় পরীক্ষার মাধ্যমে বৈধতাপ্রাপ্ত এবং প্রত্যেকটি কিছু "যাদু" শাখায় মার্জ করে এমন যা পরীক্ষিত এবং স্থাপন করা হয়। ( প্রোডাক্ট শিল্পকর্ম হয় যেমন উৎস tarballs, ডকুমেন্টেশন, বাইনারি সফটওয়্যার প্যাকেজ, Docker চিত্র, Amis, unikernels।)

  3. এ জাতীয় পরিকল্পনা সন্তোষজনক যে যদি এটি ব্যাখ্যা করে যে কীভাবে এই পরিস্থিতিটি পরিলক্ষিত হয়

বিভাজন দ্বারা উত্থাপিত ইস্যু

  1. কীভাবে স্বয়ংক্রিয় পরীক্ষার পদ্ধতি পূর্ব-বিদ্যমান একশব্দ সংগ্রহস্থল এবং বিভক্ত ভাণ্ডারগুলির সাথে সম্পর্কিত?

  2. কীভাবে স্বয়ংক্রিয় স্থাপনার পদ্ধতি পূর্ব-বিদ্যমান একশব্দ সংগ্রহস্থল এবং বিভক্ত ভাণ্ডারগুলির সাথে সম্পর্কিত?

  3. স্বয়ংক্রিয় স্থাপনার পদ্ধতিগুলির জন্য কোডটি কোথায় সংরক্ষণ করা হয়?

  4. সঞ্চিত , এবং কৌশলগুলি কোথায়?

  5. কীভাবে নিশ্চিত করা যায় যে কোনও বিকাশকারীকে একবারে কেবলমাত্র একটি কোডবেস প্রয়োজন (তবে অন্যান্য কোডবেসগুলি থেকে প্রত্নত ব্যবহারগুলি সম্ভব)।

  6. গিট বিসেক্টের মতো কোনও সরঞ্জাম কীভাবে পারে


প্রান্তিক দ্রষ্টব্য: ব্লাট সংগ্রহস্থল মডেলের তুলনায় ভিসিএস সংগ্রহস্থল অনুযায়ী পণ্য থাকার সুবিধা

একটি নির্দিষ্ট পণ্যের জন্য কোডবেস ধারণ করে বেশ কয়েকটি ছোট সংগ্রহস্থল থাকার "ব্লাট সংগ্রহস্থল" পদ্ধতির উপর নিম্নলিখিত সুবিধা রয়েছে:

  1. একটি ব্লোট রিপোজিটরির সাহায্যে যখন কোনও পণ্য অস্থিতিশীল থাকে তখন কোনও রিলিজ ব্যাক করা শক্ত, কারণ ইতিহাস অন্যান্য পণ্যের ইতিহাসের সাথে মিশে থাকে।

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

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

  4. বেশ কয়েকটি ছোট সংগ্রহস্থল সহ লগগুলি প্রকল্পের একটি তাপের মানচিত্র দেয়। এমনকি তাদের ডেভ দলে জ্ঞান বিস্তারের প্রক্সি হিসাবেও ব্যবহার করা যেতে পারে: আমি যদি 3 মাস থেকে রেপো এক্সে প্রতিশ্রুতি না দিয়ে থাকি তবে রেপো এক্সে কাজ করা একটি দলে আমাকে নিয়োগ দেওয়া ভাল হবে যাতে আমি উন্নয়নগুলি সম্পর্কে সচেতন থাকি যে উপাদান।

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

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

  7. বেশ কয়েকটি ছোট সংগ্রহস্থল সহ, বেশ কয়েকটি পণ্যের মালিক থাকা সহজ।

  8. বেশ কয়েকটি ছোট সংগ্রহস্থল সহ, সহজ কোড স্ট্যান্ডার্ডগুলি পাওয়া সহজ যা সম্পূর্ণ সংগ্রহস্থলের সাথে সম্পর্কিত এবং এটি স্বয়ংক্রিয়ভাবে যাচাই করা যেতে পারে।


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


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

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

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

উত্তর:


9

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

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

নকশা

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

বিশ্বাস

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

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

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

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

এই জাতীয় পরীক্ষার কোডটি যদি কিছু অনুপস্থিত থাকে তবে প্রথমে এটি লেখা উচিত।

কৌশল

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

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

প্রযুক্তিগত tণ

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

Reaggregation

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

ইন্টিগ্রেশন টেস্টিং

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

পুনশ্চ. এটি একটি খসড়া, আমার ইংরেজি খারাপ এবং আমি এটি একদিন ঠিক করব

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