আমি কীভাবে নতুন মাইক্রোসার্চেসের মধ্যে ধারাবাহিকতা নিশ্চিত করতে পারি?


10

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

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

আমি কীভাবে নিশ্চিত করতে পারি যে নতুন মাইক্রোসার্ফেসিগুলি সংস্থাগুলির মান মেনে চলে এবং নতুন প্রকল্পগুলি শুরু করতে চান এমন বিকাশকারীদের পক্ষে সহজ এবং স্বজ্ঞাত যেভাবে বিদ্যমান প্রকল্পগুলি থেকে বাগফিক্স / বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করা যায়? এই সমস্যাগুলি সমাধান করার জন্য কয়েকটি সেরা অনুশীলনগুলি কী কী?

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

উত্তর:


5

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

এর জন্য প্রকল্পগুলি তৈরির জন্য ধারাবাহিক বেস না থাকার বিষয়টি সমাধান করার জন্য, আমার ধারণা হ'ল বয়লারপ্লেট / টেম্পলেটগুলির একটি সংগ্রহস্থল (সংগ্রহশালা?) তৈরি করা এবং নতুন মাইক্রোসার্ভিসগুলি খুঁজে বের করার সরঞ্জাম হিসাবে কুকি কিউটার ব্যবহার করা । এইভাবে, প্রতিটি প্রকল্প এটিতে সংহত হিসাবে সংগঠন হিসাবে আমরা শিখেছি সমস্ত পাঠ সহ একটি স্ট্যান্ডার্ড বেস থেকে তৈরি করা হয়। আমরা যে পরিবর্তনগুলি করি তা বয়লারপ্লেট সংগ্রহস্থলের অভ্যন্তরে প্রবাহিত করা যেতে পারে। আমি ভাবছি আমাদের কাছে নোডেজ ডকার ইমেজ, সার্ভারলেস এসপিএ, পাইথন ল্যাম্বডাস ইত্যাদি টেমপ্লেট থাকবে have

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


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

4

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

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

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

এছাড়াও, আপনি যদি নিজের সার্ভারলেস থিম / দৃষ্টান্ত দিয়ে চালিয়ে যেতে চান, পুতুল , উত্তরযোগ্য এবং সল্টট্যাক সমস্ত মাস্টারলেস বা কোনও মাস্টারলেস মোড সমর্থন করে, যদি আপনি এই থিমটি চালিয়ে যেতে চান তবে।


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

1
@ ব্যবহারকারী 2640621 - আপনি কি কোনও কনফিগারেশন ম্যানেজমেন্ট সিস্টেম ব্যবহার করেছেন? "কনফিগারেশন স্প্রোল" কে কেন্দ্রীভূত করা আপনাকে এটিকে আরও সহজে এবং এক জায়গা থেকে (100 টি আলাদা জায়গার পরিবর্তে) পরিচালনা করতে সহায়তা করে। যদিও প্রতিটি প্রকল্প স্বতঃ অন্তর্ভুক্ত থাকতে পারে, স্পষ্টত কিছু ওভারল্যাপ থাকে কারণ আপনি মোতায়েনের মোতায়েন সম্পর্কে জিজ্ঞাসা করছেন। আপনার লেখাগুলি বন্ধ করার আগে তারা কীভাবে কাজ করে তা অনুভব করার জন্য সানবক্সে কয়েকজনের চেষ্টা করার জন্য এটি মূল্যবান হতে পারে ... এটি আপনার কনফিগার ফাইলগুলির পরিচালনা স্বয়ংক্রিয়ভাবে চালিত করে না - এটি এর চেয়ে অনেক বেশি কাজ করে।
জেমস শেইয়

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

2
@ ব্যবহারকারী 2640621: যদি সেগুলি আলাদা হয়: "আপনি এটি কোড করেন, আপনি এটি চালান"। দলগুলিকে তাদের পরিষেবাদির অপশন পরিচালনা করতে দিন। তাদের আপনার কষ্ট অনুভব করতে দিন।
মনিকা পুনরায় ইনস্টল করুন - এম শ্র্র্ডার

3

এই প্রশ্নটি বিস্তৃত তাই আমার উত্তরটি যদি সামান্য অফ-বেস হয় তবে প্রসঙ্গ এবং নির্দিষ্ট উদাহরণগুলি সংযোজন করতে নির্দ্বিধায় যাতে আমার আরও ভাল বোঝা যায় have

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

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

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

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

আমি তিনটি সংস্থার সাথে ছিলাম এবং আমরা তিনটি খুব ভিন্ন পদ্ধতি গ্রহণ করেছি।

শুভকামনা!


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

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