Supervisord দিয়ে সমস্ত প্রক্রিয়া একত্রিত করুন এবং বিশৃঙ্খলা প্রকৌশলের জন্য প্রস্তুত হন
নমস্কার, আমি অযোগ্য।
আপনারা সবাই কেমন আছেন?
গতকাল, আমি মোট ৬ ঘন্টা সাইক্লিং করতে বেরিয়েছিলাম, পথে বন্ধুদের সাথে দেখা হয়েছিল।


এটি একটি জ্যাজ উৎসব ছিল, তাই আমি গান শুনতে শুনতে শহর ঘুরে বেড়াচ্ছিলাম, এবং বয়স্কদের পোশাক প্রায়শই আকর্ষণীয় এবং অনুপ্রেরণামূলক ছিল।
শহরে বাইরে থাকা মানুষদের বাস্তবতা, সরাসরি দেখা, স্ট্রিট স্ন্যাপ ইত্যাদির চেয়ে বেশি সত্য।
তারপর, আমার বন্ধু তার বাড়িতে বোলোনিজ পাস্তা বানাবে বলেছিল, তাই আমরা একটি বিজনেস সুপারমার্কেটে গিয়ে 'PRAI নেস্ট পাস্তা' নামক অতিরিক্ত মোটা নুডুলস দিয়ে এটি বানানোর চেষ্টা করলাম এবং এটি অবিশ্বাস্যরকম সুস্বাদু হয়েছিল।
এভাবে, এটি এমন একটি দিন ছিল যেখানে আমরা একটি ভিন্টেজ পোশাকের দোকানে গিয়েছিলাম, প্রজেক্ট মিরাই সম্পর্কে কথা বলেছিলাম, অপ্টিমাল ট্রান্সপোর্ট এবং ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং সম্পর্কে রাত ২টা পর্যন্ত জেনেছিলাম, এবং তারপর আমি আমার ফিক্সড-গিয়ার বাইকে করে কয়েক কিলোমিটার পথ পাড়ি দিয়ে বাড়ি ফিরেছিলাম।
ভূমিকা
সম্প্রতি, আমি আমার বাড়ির অবকাঠামো পরিবেশ পুনর্গঠন করছি কারণ আমি এটিকে বিশৃঙ্খলা প্রকৌশলের জন্য একটি পরীক্ষার পরিবেশ হিসাবে ব্যবহার করতে চাই, যা নিয়ে আমি দীর্ঘদিন ধরে আগ্রহী।
আগে, Netflix প্রথম ChaosMonkey নামে একটি জিনিস প্রকাশ করেছিল, কিন্তু মনে হচ্ছে সেই ফর্ক করা বানরগুলি এখন বিলুপ্তপ্রায় প্রজাতিতে পরিণত হয়েছে।
তারা ক্রিপ্টোকারেন্সির মতো দ্রুত গতিতে অদৃশ্য হয়ে যাচ্ছে, কিন্তু এর মধ্যে ChaosBlade নামে একটি OSS রয়েছে যা রিয়েল-টাইমে আপডেট হচ্ছে। আমি এটি চালাতে চাই।
এটি চীনের Alibaba Cloud দ্বারা প্রবর্তিত একটি জিনিস, এবং এটি কোথায় বাস্তবায়িত হয়েছে তা Issues-এ সংক্ষিপ্ত করা হয়েছে।
Who is using ChaosBlade
জাপানে এর সম্পর্কে প্রায় কোনো তথ্য নেই, তবে ডকুমেন্টেশন বেশ ভালোভাবে তৈরি করা হয়েছে এবং এটি রিয়েল-টাইমে কমিট করা হচ্ছে, তাই এটি ব্যবহারযোগ্য হওয়া উচিত।
আমি বিস্তারিত কাজ শুরু করার পর করব।
Supervisord স্থানান্তরের আগে ডেমন স্টার্টআপ
এমন অনেক কিছু ছিল যা আমি এত দীর্ঘ সময় ধরে চালিয়ে যাব বলে ভাবিনি।
আসলে, আমি সার্ভারের rc.local-এ একটি স্ক্রিপ্ট লিখেছিলাম এবং এটিকে স্টার্টআপে চালু করার জন্য একটি র্যাপার হিসাবে ব্যবহার করছিলাম।
বিশেষত,
rc.local
$ sudo cat /etc/rc.local
[sudo] haturatu এর পাসওয়ার্ড`
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
[ -d /etc/boot.d ] && run-parts /etc/boot.d
/root/serverboot.sh &
এভাবে, আমি root এর হোম ডিরেক্টরিতে একটি অগোছালো serverboot.sh তৈরি করে প্রতিটি অ্যাপ্লিকেশন চালু করছিলাম।
সত্যি বলতে, এটি কেবল স্ক্রিপ্ট চালু করছে, তাই এটিকে র্যাপার বলা সঠিক কিনা তা নিয়ে বিতর্ক থাকতে পারে।
তবে, আপনারা হয়তো লক্ষ্য করেছেন যে, এতে প্রক্রিয়াগুলি ক্র্যাশ হতে পারে এবং লগ ফাইলগুলি আলাদাভাবে আউটপুট হয় না।
অতএব, আমি সবকিছু Supervisord দিয়ে পরিচালনা করেছি।
তারপরে
এর ফলে, যদি কোনো কারণে একটি প্রক্রিয়া ক্র্যাশ হয়, Supervisor স্বয়ংক্রিয়ভাবে এটিকে পুনরায় চালু করবে এবং প্রতিটি সেটিং অনুযায়ী লগ আউটপুট হবে।
মোট ৮টি প্রক্রিয়ার জন্য এটি করা হয়েছে।
কাজটি করতে এক ঘন্টাও লাগেনি, তাই আমার মনে হয়েছিল এটি আগে করা উচিত ছিল, কিন্তু এটি অনিবার্য। কারণ আমি মানুষ।
অন্যান্য করণীয়
HA Proxy দিয়ে লোড ব্যালেন্সার ব্যবহার করা, এর জন্য আরেকটি সার্ভার প্রস্তুত করতে হবে, কিন্তু বাড়িতে আরেকটি দ্বিতীয় মেশিন রাখাটা খুব অর্থহীন, তাই কোনোভাবে একটি সস্তা VPS খুঁজে বের করতে হবে।
কারণ শেষ পর্যন্ত বাড়ির পরিবেশের ঝুঁকি, যেমন বিদ্যুৎ বিভ্রাট, এই ধরনের পরিবেশগত ঝুঁকি বেশি, তাই সম্পূর্ণ ভিন্ন স্থানে একটি সার্ভারকে দ্বিতীয় মেশিন হিসাবে ব্যবহার করা ভালো বলে মনে হয়।
কেন আমি এমনটা মনে করি, কারণ এটি কেবল বাড়ির সার্ভার পরিবেশের ব্যাপার নয়, আমার মনে আছে প্রায় ২০২১ সালের দিকে AWS এর US অঞ্চলে একটি বড় ধরনের বিভ্রাট হয়েছিল। সেই সময় Binance এর মতো এক্সচেঞ্জগুলি বন্ধ হয়ে গিয়েছিল এবং আমি যখন এর কারণ খুঁজছিলাম, তখন দেখা গেল কারণটি ছিল AWS।
একই অঞ্চলে রিডানড্যান্ট কনফিগারেশন রাখা শেষ পর্যন্ত অর্থহীন।
বিদ্যুৎ বিভ্রাট বা, আমার মনে আছে আমেরিকার Google DC কে Youtube বা Google Map এর মাধ্যমে ভিতরে দেখা যেত, এবং যদিও এটি দেখলে একেবারেই অসম্ভব মনে হয়, তবে এটি যে একেবারেই ঘটবে না এমনটা নয়।
আপনারা হয়তো বলতে পারেন, HA Proxy এর পরিবর্তে Nginx দিয়ে লোড ব্যালেন্সার ব্যবহার করলে কেমন হয়? কিন্তু আমার মনে আছে অতীতে আমি এটি দেখেছিলাম।
লোড ব্যালেন্সিংয়ের জন্য Nginx কেন ব্যবহার করা উচিত নয়
এছাড়াও, যদি ওয়েব সার্ভার এবং লোড ব্যালেন্সার একই সফটওয়্যার দিয়ে চালানো হয়, তবে এটি জটিল হয়ে ওঠে, তাই আমার মনে হয় HA Proxy ব্যবহার করা আরও স্পষ্ট এবং সহজে বোঝা যায়।
কিন্তু যদি জিজ্ঞাসা করা হয় যে বর্তমানে সত্যিই রিডানড্যান্ট কনফিগারেশন করার কোনো মানে আছে কি না? তাহলে উত্তর হবে সম্পূর্ণ না। ChaosMonkey-এর মতো সফটওয়্যার দিয়ে ক্লাউডে অপ্রয়োজনীয় রিসোর্স ব্যবহার করলে সমস্যা হতে পারে, এবং DNS স্তরে এটি করলে তাও...
আমি আরও কিছুক্ষণ ভেবে দেখব, তারপর ChaosBlade চালাব।
আমি এখনও বিশৃঙ্খলা প্রকৌশলের সময় সার্ভারের তথ্য Get করার জন্য প্রস্তুত নই, তাই এক অর্থে এটি একটি সিক্যুয়েল হিসাবে চলবে।
তাহলে। আবার দেখা হবে।