পরীক্ষার পরিবেশগুলিতে অবিচ্ছিন্ন একীকরণজনিত অস্থিরতা কীভাবে এড়ানো যায়?


19

ধরে নিন আপনি অবিচ্ছিন্ন ইন্টিগ্রেশন প্রক্রিয়া ব্যবহার করছেন যা ঘন ঘন কিছু টার্গেট এনভায়রনমেন্ট আপডেট করে, যাতে প্রতিবার কিছু পরিবর্তন হয় "আপনি" আপনার পরিবর্তনগুলি এখনই পরীক্ষা করতে পারে। এটা সিআই এর লক্ষ্য অংশ, না?

তবে, ধরে নিও যে আপনার পরীক্ষা চক্রের সাথে জড়িত অন্যান্য ব্যক্তিও রয়েছে, যেমন পরিচালক বা গ্রাহক। আপনার আসন্ন পরিবর্তনগুলি পর্যালোচনা করার চেষ্টা (বিরতি?) করার সাথে জড়িত হওয়ার জন্য অন্য মানুষকে বোঝায় কি না?

তবে আপনি যদি সেই পরিবেশে ক্রমাগত পরিবর্তনগুলি সরবরাহ করতে থাকেন যেখানে এই অন্যান্য ব্যক্তিরা গুরুত্ব সহকারে তাদের পরীক্ষা করার চেষ্টা করছেন, তবে একাধিক সমস্যা দেখা দিতে পারে যেমন:

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

সুতরাং এই জাতীয় (হতাশাব্যঞ্জক) পরিস্থিতি এড়াতে আপনি কীভাবে (জিনিসগুলি কনফিগার করবেন?) করতে পারেন?

উত্তর:


10

আমি এই সম্পর্কে আমার অভিজ্ঞতা দেব, বেশিরভাগ কারণ এটি কেন কিছু উত্তর সর্বদা প্রযোজ্য নয় তা প্রদর্শন করে।

শুরু করার জন্য কিছু প্রসঙ্গ:

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

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

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

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

অবশ্যই সহজ উপায়, অন্যরা যেমন উল্লেখ করেছেন, উপরে বর্ণিত সেমফোরটি এড়াতে তার সমস্ত নির্ভরতা সহ একটি অ্যাপ্লিকেশনটির জন্য একটি নতুন পরিবেশ তৈরি করা।


এই উত্তরটি আমি (মেইনফ্রেমেস) যা ব্যবহার করি তার একটি তারতম্য, যেখানে আমরা কমপক্ষে 1,5 দশক বা এর আগেও ("ডেভোপস" জন্মগ্রহণের আগে) এই ধরণের জিনিসগুলি করি। আমি অবাক হয়েছি যে এখানে আমার নিজের উত্তর যুক্ত করা কি অর্থপূর্ণ হবে (এই উত্তরটির আরও প্রসারিত করার জন্য, আমরা কীভাবে সিএমএন / জেডএমএফ যেমন উদাহরণস্বরূপ "ব্যাংকগুলি" দিয়ে থাকি), বা কেবল এটি একটি নতুন (স্ব-জবাবদিহি) প্রশ্নে নিয়ে যাই? আপনি কি মনে করেন? এছাড়াও, আমি সেই রূপক জিনিসটি সম্পর্কে কৌতূহলী, একটি নতুন প্রশ্নের মূল্য (এই উত্তরটির প্রসঙ্গে)? পিএস: আমি কিছু টাইপস সংশোধন করে দিলে আপনার আপত্তি আছে?
Pierre.Vriens

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

ঠিক আছে, সম্পাদনা সম্পন্ন হয়েছে (যথারীতি: রোলব্যাক / আপনি উপযুক্ত দেখায় উন্নত)। বিটিডাব্লু, আপনার কিবোর্ডে "এস" আছে?!?!?! তা ছাড়া: উইকএন্ডে ভাবার মতো জিনিস: আমার নতুন মেটা প্রশ্নটি দেখুন ... বোন উইকএন্ড! এখানে বাগানের সময় (ছাঁটাই ...)
পিয়ের.ভ্রিয়েন্স

8

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

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

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

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


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

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

7

সাধারন পদ্ধতি হল বিভিন্ন পরিবেশ তৈরি করা:

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

প্রিপ্রড / কিউএ - এটিই "প্লে" কিউএ / পরীক্ষা / বৈধকরণ দল পরীক্ষা করে। এই পরিবেশ সাধারণত পরীক্ষার সময় হিমশীতল হয়। এই পরিবেশের সাথে সিআইয়ের একীকরণ কেবলমাত্র পণ্যটির নতুন সংস্করণ, কনফিগারেশন ইত্যাদি সরবরাহ করতে পারে is

উত্পাদন - এটি কি বোঝানোর দরকার আছে :)?


ঠিক আছে, স্থিতিশীলতা উন্নতি করতে সাহায্য করা উচিত, Merci! আমার প্রশ্নটি "পরীক্ষা" পরিবেশ সম্পর্কিত, সুতরাং স্পষ্টতই "উত্পাদন" এরূপ হিসাবে বিবেচনা করা উচিত নয়। যারা পরীক্ষার জন্য "উত্পাদন" ব্যবহার করেও, আপনি এই উক্তিটি জানেন যে " উত্পাদনে এটি সক্রিয় করা সেরা পরীক্ষা, এবং যদি এটি কাজ না করে তবে কেবল একটি রোলব্যাক / ব্যাকআউট সঞ্চালন করুন! "
Pierre.Vriens

@ পিয়ের.ভ্রিয়েন্স, আইএমএইচও-র "খেলছেন" বুদ্ধিমানের কাজ নয় :) পরিবেশের এই জাতীয় বিচ্ছিন্নতা উদ্দেশ্যমূলক। পূর্ববর্তী চাকরিতে আমাদের 5 টি ভিন্ন পরিবেশ ছিল .... একটি ভোটার
সিরিজ

1
"আমি" সম্মতি দিচ্ছেন যে এমন বাজানো হয় না জ্ঞানী। তবে কাউবয়ে সম্পর্কে "আপনি" কী করতে পারেন (আমার 'টার্ম' আমি এই জাতীয় জুপিয়াদের জন্য ব্যবহার করি) যারা বার বার এটি করে চলেছে এবং প্রতিবারই তারা তাদের পরিচালকদের কাছ থেকে অনুমোদনের জন্য (উদাহরণস্বরূপ) মাসিক রিলিজ অ্যাক্টিভেশন পেতে পারে , অন্য একটি বাগফিক্সের মাধ্যমে (যেমন আগের দিন থেকে তাদের বাগফিক্সের জন্য ... যা একটি নতুন বাগ প্রবর্তন করেছে)। আপনি কি ভাবেন যে বাস্তব জগতে তা ঘটে না? বিটিডাব্লু: আপনার উত্তরের "হিমায়িত" সম্পর্কে, আপনি "হিমায়িত পরিবেশের নমুনা বাস্তবায়নগুলি কী কী" এই জাতীয় একটি প্রশ্ন পোস্ট করা বোধগম্য বলে মনে করেন?
Pierre.Vriens

@ পিয়ের.ভ্রিয়েনস, আমার জন্য এ জাতীয় প্রশ্ন পোস্ট করা সঠিক ধারণা দেয়। সাধারণত এটি কোম্পানির বিধি দ্বারা নিয়ন্ত্রিত হয় তবে ডিওপস বেশ গতিশীল পরিবেশ তৈরি করে এবং এটি একটি বাস্তব চ্যালেঞ্জ হতে পারে :)
রোমিও নিনভ

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

3

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


3

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

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

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


আকর্ষণীয় দৃষ্টিভঙ্গি / সংযোজন, যদিও এর মধ্যে কিছু জিনিস রয়েছে যা সম্ভবত আপনি পরিমার্জন / পুনরায় কাজ করতে চান: (1) এই প্রসঙ্গে "অ্যাপ্লিকেশনগুলি", আপনার অর্থ কী (কিছু উদাহরণ?) (২) এটি কীভাবে কার্যকর হতে পারে তার কোনও ধারণা (ভাল পুরানো) মেইনফ্রেম পরিবেশ (3) এখানে এই প্রসঙ্গে একটি "প্রশান্তিযুক্ত" কী? PS: আপনি যদি মনে করেন এই "জিনিস" (বুলেট) এর জন্য আমার একটি নতুন প্রশ্ন তৈরি করা উচিত তবে আমাকে জানান let
Pierre.Vriens
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.