আমরা সম্প্রতি বাফারে আমাদের সিস্টেমের অংশগুলি কীভাবে পর্দার আড়ালে যোগাযোগ করে তা পরিষ্কার করার জন্য একটি ছোট প্রকল্প শুরু করেছি৷ কিছু দ্রুত প্রসঙ্গ: আমরা SQS (Amazon Simple Queue Service) নামক কিছু ব্যবহার করি৷ এই সারিগুলি কাজের জন্য অপেক্ষার ঘরের মতো কাজ করে৷ আমাদের সিস্টেমের একটি অংশ একটি বার্তা ছেড়ে দেয়, এবং অন্যটি এটিকে পরে তুলে নেয়৷ এটির কথা মনে করুন, যখন আপনি এই ডেটা পাওয়ার জন্য একটি সুযোগ রেখে যান, তখন একটি cowork করার জন্য একটি সুযোগ রেখে যান: " যে সিস্টেমটি নোটটি পাঠায় তাকে প্রতিক্রিয়ার জন্য অপেক্ষা করতে হয় না৷ আমাদের প্রকল্পটি ছিল রুটিন রক্ষণাবেক্ষণ সম্পাদন করা: স্থানীয়ভাবে সারিগুলি পরীক্ষা করার জন্য আমরা যে সরঞ্জামগুলি ব্যবহার করি তা আপডেট করা এবং তাদের কনফিগারেশন পরিষ্কার করা৷ কিন্তু আমরা আসলে কোন সারিগুলি ব্যবহার করি তা ম্যাপ করার সময়, আমরা এমন কিছু খুঁজে পেয়েছি যা আমরা আশা করিনি: সাতটি ভিন্ন ব্যাকগ্রাউন্ড প্রসেস (বা ক্রোন কাজ, যা স্বয়ংক্রিয়ভাবে পাঁচ বছর ধরে চলমান কর্মীদের জন্য নির্ধারিত ছিল) তারা সবাই কোন কাজেই আসেনি। কেন, আমরা তাদের খুঁজে পেয়েছি এবং আমরা কী করেছি তা এখানে গুরুত্বপূর্ণ। হ্যাঁ, অপ্রয়োজনীয় পরিকাঠামো চালানোর জন্য অর্থ খরচ হয় একটি প্রক্রিয়া যা কিছুই করে না। যাইহোক, আমি যুক্তি দিচ্ছি যে আর্থিক খরচ আসলে সমস্যার সবচেয়ে ছোট অংশ। যখনই একজন নতুন প্রকৌশলী দলে যোগদান করে এবং আমাদের সিস্টেমগুলি অন্বেষণ করে, তখন তারা এই রহস্যময় প্রক্রিয়াগুলির মুখোমুখি হয় "এই কর্মীটি এমন একটি প্রশ্ন হয়ে ওঠে যা আমাদেরকে স্পর্শ করার সময়কে ভয় পায়।" কারণ এটি হয়তো কিছু গুরুত্বপূর্ণ কাজ করে আগে, এবং প্রসঙ্গ তাদের সাথে রেখে গেছে। এটি কীভাবে ঘটে? আঙুল তোলা সহজ, কিন্তু সত্য হল এটি যে কোনও দীর্ঘস্থায়ী সিস্টেমে স্বাভাবিকভাবেই ঘটে। একটি বৈশিষ্ট্য অবমূল্যায়িত হয়ে যায়, কিন্তু যে ব্যাকগ্রাউন্ডের কাজটি এটিকে সমর্থন করে তা চলতে থাকে কেউ একজন কর্মীকে "অস্থায়ীভাবে" স্থানান্তর পরিচালনা করতে, এবং এটি একটি নির্দিষ্ট কাজের সময়সূচীতে পরিণত হয় না আমরা বাফারে জন্মদিন উদযাপনের ইমেলগুলি পাঠাতাম। এটি করার জন্য, আমরা একটি নির্ধারিত কাজ চালিয়েছিলাম যা বর্তমান তারিখের সাথে মিলে যাওয়া জন্মদিনের জন্য একটি ব্যক্তিগত ইমেল পাঠিয়েছিল এবং 2020 সালে একটি রিফ্যাক্টরের সময় আমরা আমাদের লেনদেন সংক্রান্ত ইমেল টুলটি স্যুইচ করেছিলাম কিন্তু এই কর্মীর ব্যর্থতার আরও পাঁচ বছর ধরে রাখা হয়েছে। আমরা কীভাবে কাজ করি তাতে ইচ্ছাকৃত পরিচ্ছন্নতা ছাড়াই, এনট্রপি জেতে। কীভাবে আমাদের আর্কিটেকচারটি অনেক কোম্পানির মতোই মাইক্রোসার্ভিসেস আন্দোলনকে গ্রহণ করেছিল (একটি জনপ্রিয় পদ্ধতি যেখানে কোম্পানিগুলি তাদের কোডকে অনেকগুলি ছোট, স্বাধীন পরিষেবাতে বিভক্ত করে) দলগুলির মধ্যে স্পষ্ট সীমানা সহ, আমরা দেখতে পেলাম যে কয়েক ডজন রিপোজিটরি পরিচালনা করা আমাদের আকারের সুবিধার চেয়ে বেশি হয়েছে তাই আমরা একটি বহু-পরিষেবা একক ভাণ্ডারে একত্রিত হয়েছি, কিন্তু তারা এক জায়গায় একত্রে বসবাস করে একটি রেপোতে ভুলে যাওয়া কর্মী অন্যটিতে কাজ করে এমন কোনো একক স্থান নেই, যেখানে কি চলছে তার কোনো একীভূত দৃশ্য নেই। আমরা শেষ পর্যন্ত প্রতিটি সারির ভোক্তাদের এবং প্রযোজকদের কাছে খুঁজে পেতে পারি না একত্রীকরণ আমাদের জম্বি অবকাঠামো খুঁজে পেতে সাহায্য করার জন্য ডিজাইন করা হয়নি - কিন্তু এটি এটি তৈরি করেছেআবিষ্কার প্রায় অনিবার্য। আমরা আসলে কি করেছি একবার আমরা এতিম প্রক্রিয়াগুলি চিহ্নিত করার পরে, আমাদের সিদ্ধান্ত নিতে হয়েছিল তাদের সাথে কী করা উচিত। এখানে আমরা এটির সাথে কীভাবে যোগাযোগ করেছি। প্রতিটি কর্মী কেন প্রথম স্থানে তৈরি করা হয়েছিল তা বোঝার জন্য আমরা গিট ইতিহাস এবং পুরানো ডকুমেন্টেশনের মাধ্যমে খনন করেছি। বেশিরভাগ ক্ষেত্রে, মূল উদ্দেশ্যটি পরিষ্কার ছিল: একটি এককালীন ডেটা স্থানান্তর, একটি বৈশিষ্ট্য যা সূর্যাস্ত পেয়েছে, একটি অস্থায়ী সমাধান যা এর উপযোগিতাকে ছাড়িয়ে গেছে৷ তারপর আমরা নিশ্চিত করেছি যে সেগুলি সত্যিই অব্যবহৃত ছিল৷ কিছু মুছে ফেলার আগে, আমরা এই প্রক্রিয়াগুলি চুপচাপ কিছু গুরুত্বপূর্ণ কাজ করেনি যা আমরা মিস করব তা যাচাই করার জন্য লগিং যোগ করেছি। আমরা কয়েকদিন ধরে নিরীক্ষণ করেছিলাম যে তাদের মোটেও ডাকা হয়নি, এবং আমরা সেগুলিকে ক্রমবর্ধমানভাবে সরিয়ে দিয়েছি। আমরা একবারে সবকিছু মুছে ফেলিনি। আমরা একের পর এক প্রসেস সরিয়ে দিয়েছি, কোনো অপ্রত্যাশিত পার্শ্বপ্রতিক্রিয়ার জন্য দেখছি। (সৌভাগ্যক্রমে, সেখানে কোন ছিল না।) অবশেষে, আমরা যা শিখেছি তা নথিভুক্ত করেছি। আমরা আমাদের অভ্যন্তরীণ নথিতে নোট যোগ করেছি যে প্রতিটি প্রক্রিয়া মূলত কী করেছিল এবং কেন এটি সরানো হয়েছিল, তাই ভবিষ্যতের প্রকৌশলীরা গুরুত্বপূর্ণ কিছু হারিয়ে গেলে তা ভাববেন না৷ পরিষ্কার করার পরে কী পরিবর্তিত হয়েছে আমরা এখনও সম্পূর্ণ প্রভাব পরিমাপের প্রাথমিক পর্যায়ে আছি, তবে আমরা এখন পর্যন্ত যা দেখেছি তা এখানে৷ আমাদের অবকাঠামো তালিকা এখন সঠিক৷ যখন কেউ জিজ্ঞেস করে, "আমরা কি শ্রমিক চালাই?" আমরা আসলে আত্মবিশ্বাসের সাথে সেই প্রশ্নের উত্তর দিতে পারি৷ অনবোর্ডিং কথোপকথনগুলিও সহজ হয়েছে৷ নতুন প্রকৌশলীরা রহস্যময় প্রক্রিয়ায় হোঁচট খাচ্ছেন না এবং ভাবছেন যে তারা প্রসঙ্গটি হারিয়েছেন কিনা। কোডবেসটি প্রতিফলিত করে যে আমরা আসলে কি করি, আমরা পাঁচ বছর আগে যা করেছি তা নয়। রিফ্যাক্টরগুলিকে প্রত্নতত্ত্ব এবং প্রতিরোধ হিসাবে বিবেচনা করুন এই প্রকল্প থেকে আমার সবচেয়ে বড় উপায়: প্রতিটি উল্লেখযোগ্য রিফ্যাক্টর হল প্রত্নতত্ত্বের জন্য একটি সুযোগ। আপনি যখন একটি সিস্টেমের গভীরে থাকেন, সত্যিই বুঝতে পারেন কিভাবে টুকরোগুলি সংযুক্ত হয়, আপনি এখনও কী প্রয়োজন তা নিয়ে প্রশ্ন তোলার উপযুক্ত অবস্থানে আছেন। কিছু পুরানো প্রকল্প থেকে যে সারি? এক সময়ের ডাটা মাইগ্রেশনের জন্য কর্মী তৈরি করেছেন কেউ? নির্ধারিত টাস্ক যা এমন একটি বৈশিষ্ট্য উল্লেখ করে যা আপনি কখনও শুনেন নি? সেগুলি এখনও চলছে৷ এখানে আমরা আমাদের প্রক্রিয়ার মধ্যে যা তৈরি করছি এগিয়ে যাচ্ছি: যেকোন রিফ্যাক্টর চলাকালীন, জিজ্ঞাসা করুন: এই সিস্টেমটিকে আর কী স্পর্শ করে যা আমরা কিছুক্ষণের মধ্যে দেখিনি? একটি বৈশিষ্ট্যকে অবমূল্যায়ন করার সময়, এটির ব্যাকগ্রাউন্ড প্রসেসগুলির সমস্ত উপায়ে ট্রেস করুন, শুধুমাত্র ব্যবহারকারী-মুখী কোড নয়৷ যখন কেউ দল ছেড়ে যায়, তখনও আমাদের পুরানো জিনিসগুলির ভারপ্রাপ্ত অংশগুলির পটভূমিতে বিশেষ করে আমরা যা পরিচালনা করছিলাম তা নথিভুক্ত করুন৷ কোডবেস যা এখনও একক সংগ্রহস্থলে স্থানান্তরিত হয়নি। আমরা যখন একত্রীকরণ চালিয়ে যাচ্ছি, আমরা আত্মবিশ্বাসী যে আমরা এই লুকানো অবশেষগুলির আরও খুঁজে পাব। কিন্তু এখন আমরা সেগুলিকে ধরতে এবং নতুনগুলি গঠনে বাধা দেওয়ার জন্য সেট আপ করেছি৷ যখন আপনার সমস্ত কোড এক জায়গায় থাকে, তখন অনাথ অবকাঠামো লুকানোর জায়গা নেই৷

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free