আসুন মাইক্রোসার্চ পদ্ধতির ইতিবাচক এবং নেতিবাচক কথা বলি।
প্রথম নেতিবাচক। আপনি যখন মাইক্রোসার্ভিসেস তৈরি করেন, আপনি নিজের কোডটিতে অন্তর্নিহিত জটিলতা যুক্ত করেন। আপনি ওভারহেড যুক্ত করছেন। আপনি পরিবেশটিকে প্রতিলিপি করা শক্ত করে তুলছেন (যেমন বিকাশকারীদের জন্য)। আপনি মাঝারি সমস্যাগুলি ডিবাগিংকে আরও শক্ত করে তুলছেন।
আমাকে একটি বাস্তব নেপথ্য চিত্রিত করুন। একটি পৃষ্ঠা উত্পন্ন করার সময় আপনার কাছে 100 টি মাইক্রোসার্ভেসিস কল করার ক্ষেত্রে অনুমানের বিষয়টিকে বিবেচনা করুন, যার মধ্যে প্রতিটি সময় 99.9% সঠিক কাজ করে। তবে 0.05% সময় তারা ভুল ফলাফল দেয়। এবং সময়টির 0.05% ধীরে সংযোগের অনুরোধ রয়েছে যেখানে বলুন, সংযোগের জন্য একটি টিসিপি / আইপি সময়সীমা প্রয়োজন এবং এটিতে 5 সেকেন্ড সময় লাগে। আপনার অনুরোধটি প্রায় 90.5% সময় পুরোপুরি কার্যকর করে। তবে প্রায় 5% সময় আপনার ভুল ফলাফল এবং প্রায় 5% সময় আপনার পৃষ্ঠা ধীর হয়। এবং প্রতিটি অ প্রজননযোগ্য ব্যর্থতার আলাদা কারণ রয়েছে।
আপনি যদি পর্যবেক্ষণ, পুনরুত্পাদন এবং আরও অনেক কিছুর জন্য সরঞ্জামাদি সম্পর্কে প্রচুর চিন্তাভাবনা না করেন তবে এটি একটি বিশৃঙ্খলায় পরিণত হতে চলেছে। বিশেষত যখন কোনও মাইক্রোসার্ভিস অন্যকে কল করে যা অন্যটিকে কয়েক স্তর গভীর করে। এবং একবার আপনার সমস্যা হয়ে গেলে এটি সময়ের সাথে সাথে আরও খারাপ হবে।
ঠিক আছে, এটি দুঃস্বপ্নের মতো শোনাচ্ছে (এবং একাধিক সংস্থা এই পথে নেমে নিজেদের জন্য বিশাল সমস্যা তৈরি করেছে)। সাফল্য কেবলমাত্র আপনি সম্ভাব্য ক্ষয়ক্ষতি সম্পর্কে স্পষ্টভাবে অবগত এবং এটি সমাধান করার জন্য ধারাবাহিকভাবে কাজ করা সম্ভব।
সুতরাং যে একতরফা পদ্ধতি সম্পর্কে কি?
দেখা যাচ্ছে যে কোনও একশব্দ অ্যাপ্লিকেশন মাইক্রোসার্ফেস হিসাবে মডুলারাইজ করা ঠিক তত সহজ। এবং একটি ফাংশন কল একটি আরপিসি কলের তুলনায় সস্তা এবং আরও নির্ভরযোগ্য practice সুতরাং আপনি একই জিনিসটি আরও নির্ভরযোগ্য হিসাবে চালিত করতে পারেন, দ্রুত চালান, এবং এতে কম কোড জড়িত except
ঠিক আছে, তবে সংস্থাগুলি কেন মাইক্রোসারিসেসের পদ্ধতির দিকে যান?
উত্তরটি হ'ল কারণ আপনি স্কেল করার সাথে সাথে এককৃত প্রয়োগের সাথে আপনি কী করতে পারেন তার একটি সীমা রয়েছে। এতগুলি ব্যবহারকারী, অনেকগুলি অনুরোধ এবং এর পরে, আপনি এমন একটি পয়েন্টে পৌঁছেছেন যেখানে ডেটাবেসগুলি স্কেল করে না, ওয়েবসার্সগুলি আপনার কোডটিকে মেমরিতে রাখতে পারে না এবং আরও অনেক কিছু। তদ্ব্যতীত মাইক্রোসারওয়াস পদ্ধতির সাহায্যে আপনার অ্যাপ্লিকেশনটির স্বাধীন এবং বর্ধিত আপগ্রেড করা যায়। সুতরাং একটি মাইক্রোসারাইস আর্কিটেকচার হ'ল আপনার অ্যাপ্লিকেশনকে স্কেল করার সমাধান।
আমার থাম্বের ব্যক্তিগত নিয়মটি হ'ল স্ক্রিপ্টিং ভাষায় কোড (উদাহরণস্বরূপ পাইথন) থেকে অপ্টিমাইজড সি ++ এ যাওয়া সাধারণত পারফরম্যান্স এবং মেমরির ব্যবহার উভয় ক্ষেত্রে 1-2 মাত্রার পরিমাণ বাড়িয়ে তোলে। বিতরণ করা আর্কিটেকচারের অন্য পথে যাওয়া রিসোর্স প্রয়োজনীয়তার সাথে একটি বিশালতা যুক্ত করে তবে আপনাকে অনির্দিষ্টকালের জন্য স্কেল করতে দেয়। আপনি একটি বিতরণ করা আর্কিটেকচার কাজ করতে পারেন, তবে এটি করা আরও কঠিন।
অতএব আমি বলব যে আপনি যদি কোনও ব্যক্তিগত প্রকল্প শুরু করেন তবে একচেটিয়া হন। কীভাবে এটি করতে হয় তা শিখুন। বিতরণ করবেন না কারণ (গুগল | ইবে | অ্যামাজন | ইত্যাদি)। যদি আপনি বিতরণকৃত কোনও বৃহত সংস্থায় অবতরণ করেন তবে তারা কীভাবে এটি কাজ করে এবং এটিকে ত্রুটিযুক্ত না করে সে সম্পর্কে খুব মনোযোগ দিন। এবং যদি আপনি রূপান্তরটি করতে না পেরে থাকেন তবে খুব, খুব সাবধান হন কারণ আপনি এমন কিছু কঠিন কাজ করছেন যা খুব সহজেই পাওয়া যায়, খুব ভুল।
প্রকাশ, আমার কাছে সমস্ত আকারের সংস্থাগুলিতে প্রায় 20 বছরের অভিজ্ঞতা রয়েছে। এবং হ্যাঁ, আমি একচেটিয়া এবং বিতরণ করা স্থাপত্যগুলি কাছাকাছি এবং ব্যক্তিগত উভয়ই দেখেছি। এটি সেই অভিজ্ঞতার ভিত্তিতেই যে আমি আপনাকে বলছি যে একটি বিতরণ করা মাইক্রোসার্ভিস আর্কিটেকচার সত্যই আপনার প্রয়োজন এমন কিছু যা আপনার প্রয়োজন কারণ নয়, কারণ এটি কোনওরকম ক্লিনার এবং আরও ভাল।