কার্যকরভাবে কনফিগারেশন থেকে ডেভ থেকে প্রোড পর্যন্ত পরিবর্তনগুলি ট্র্যাক করা


9

এই প্রশ্নটি একটি স্প্রিং বুট পরিষেবা উদাহরণ হিসাবে গ্রহণ করে তবে এটি কোনও প্রযুক্তি হতে পারে।

নিম্নলিখিতগুলি ধরে নেওয়া:

  • এনভায়রনমেন্টস (ডেভ / কিউএ / প্রোড) বিভিন্ন টিমের মালিকানাধীন। এর অর্থ দেবের কনফিগারেশনের অ্যাক্সেস থাকতে হবে না।
  • কনফিগারেশন (যাক অ্যাপ্লিকেশন। প্রপার্টিগুলি বলা যাক) বহিরাগত, অর্থাৎ বাইনারি অংশ নয়
  • একই বাইনারি / প্যাকেজ (যাক বলে যাক সার্ভিস.জার) প্রতিটি পরিবেশে মোতায়েন করা হয় এবং স্বয়ংক্রিয় স্থাপনা দ্বারা নিয়ন্ত্রিত হয়

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

উদাহরণস্বরূপ, ধরা যাক দেব দলটি তাদের পরিবেশে অ্যাপ্লিকেশন.সম্পত্তিগুলিতে কয়েকটি কী-মান জোড় যুক্ত করে। এই নতুন কীগুলি রেকর্ড করার সর্বোত্তম উপায় কী হবে, যাতে যখন অপারেশন দলে ডিপ্লোমেন্ট ঘটে তখন তারা ঠিক কী কী যুক্ত করতে পারে তা জানতে পারে, সুতরাং নতুন পরিষেবাটি শুরু করার এবং এটি অনুপস্থিত কীয়ের কারণে ব্যর্থ হওয়ার ঝুঁকি হ্রাস করা যায়?

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


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

সুরক্ষা একটি প্রধান প্রতিবন্ধকতা যেখানে এমন কিছু পরিবেশে সম্পূর্ণ ক্রস কার্যকরী দলগুলি অর্জন করা কঠিন হতে পারে।
ম্যাথিউ ফোর্টিন

আমি @ ম্যাথিউফোর্টিনকে জানি এ কারণেই আমি মন্তব্য না করে এটিকে উত্তর দেওয়ার পরিবর্তে "স্পর্শকাতর উত্তর" দিয়ে উপস্থাপন করেছি। এটি আমার আদর্শ সমাধান তবে দুঃখজনকভাবে আপনার পক্ষে কাজ করবে এমন একটি নয়।
রাবারডাক

উত্তর:


3

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

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

উদাহরণস্বরূপ, ধরুন দেব দলটি তাদের পরিবেশে অ্যাপ্লিকেশন.সম্পত্তিগুলিতে কয়েকটি কী-মান জোড়া যুক্ত করে। এই নতুন কীগুলি রেকর্ড করার সর্বোত্তম উপায় কী হবে, যাতে যখন অপারেশন দলে ডিপ্লোমেন্ট ঘটে তখন তারা ঠিক কী কী যুক্ত করতে পারে তা জানতে পারে, সুতরাং নতুন পরিষেবাটি শুরু করার এবং এটি অনুপস্থিত কীয়ের কারণে ব্যর্থ হওয়ার ঝুঁকি হ্রাস করা যায়?

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

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

যদি কনফিগারেশনটি জটিল হয় এবং ম্যানুয়াল সম্পাদনা ত্রুটি প্রবণ হয়ে ওঠে এমন ফর্ম্যাটটি পরিবর্তিত হয় তবে আপনি কনফিগারগুলি সম্পাদনা করার জন্য এবং একটি নতুন সংস্করণে স্থানান্তরিত করার জন্য সরঞ্জাম সরবরাহ করতেও বিবেচনা করতে পারেন।

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


0

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

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

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

এই প্রযুক্তিটি অনেকটা পরিচালনা করার জন্য জেনকিনস ছিল। জেনকিন্সের মাধ্যমে অনুরোধ করতে ও শিডিয়ুল করার জন্য ব্যবহৃত একটি গৃহ-সরঞ্জামও ছিল।

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