Docker Swarm Basics (ডকার সোয়ার্ম বেসিকস)
ডকার সোয়ার্ম (Docker Swarm) হলো ডকারের নেটিভ অর্কেস্ট্রেশন টুল, যা একাধিক ডকার হোস্টকে একটি ভার্চুয়াল ডকার হোস্টে (Cluster) রূপান্তর করে। এটি ডকার ইঞ্জিনের সাথেই বিল্ট-ইন থাকে, তাই আলাদা করে ইনস্টল করার প্রয়োজন হয় না।
Swarm Mode কি? (What is Swarm Mode?)
Swarm Mode হলো ডকার ইঞ্জিনের একটি বিশেষ মোড যা ক্লাস্টার ম্যানেজমেন্ট এবং অর্কেস্ট্রেশন ফিচারগুলো ইন্যাবল করে। যখন আপনি Swarm Mode চালু করেন, তখন আপনি একটি 'Cluster' বা 'Swarm' তৈরি করেন যেখানে একাধিক সার্ভার মিলে একটি গ্রুপ হিসেবে কাজ করে।
Swarm vs Single-Host (সোয়ার্ম বনাম সিঙ্গেল হোস্ট)
| বৈশিষ্ট্য | Single-Host Docker | Docker Swarm (Cluster) |
|---|---|---|
| ম্যানেজমেন্ট | প্রতিটি হোস্ট আলাদাভাবে ম্যানেজ করতে হয়। | পুরো ক্লাস্টারকে একটি ইউনিট হিসেবে ম্যানেজ করা যায়। |
| স্কেলেবিলিটি | রিসোর্স শেষ হয়ে গেলে নতুন সার্ভারে ম্যানুয়ালি মুভ করতে হয়। | অটোমেটিকভাবে একাধিক নোডে কন্টেইনার ডিস্ট্রিবিউট করা যায়। |
| ফল্ট টলারেন্স | হোস্ট ক্র্যাশ করলে কন্টেইনার ডাউন হয়ে যায়। | একটি নোড ক্র্যাশ করলে সোয়ার্ম অন্য নোডে কন্টেইনার অটো-রিস্টার্ট করে। |
| ব্যালান্সিং | পোর্ট ম্যাপিং ম্যানুয়ালি করতে হয়। | ইনকামিং ট্রাফিক অটো-ব্যালান্সড হয় (Ingress Routing Mesh)। |
Node Roles (নোডের ভূমিকা)
একটি সোয়ার্ম ক্লাস্টারে দুই ধরনের নোড থাকে:
1. Manager Nodes
ম্যানেজার নোড ক্লাস্টারের মস্তিষ্ক হিসেবে কাজ করে। ওর প্রধান কাজ হলো:
- ক্লাস্টারের স্টেট (State) বজায় রাখা।
- সার্ভিসগুলো শিডিউল করা (কোন কন্টেইনার কোথায় চলবে তা ঠিক করা)।
- সোয়ার্ম মোডের API এন্ডপয়েন্ট হিসেবে কাজ করা।
2. Worker Nodes
ওয়ার্কার নোডের কাজ হলো শুধুমাত্র কন্টেইনারগুলো রান করা। ওয়ার্কার নোড কোনো ডিসিশন মেকিংয়ে অংশ নেয় না, তারা শুধুমাত্র ম্যানেজার নোডের দেওয়া ইনস্ট্রাকশন ফলো করে।
Raft Consensus Algorithm
একাধিক ম্যানেজার নোড থাকলে তারা একে অপরের সাথে তাল মিলিয়ে চলার জন্য Raft Consensus Algorithm ব্যবহার করে। এর মূল উদ্দেশ্য হলো:
- ক্লাস্টারে যে ডেটা বা স্টেট আছে তা সব ম্যানেজারের কাছে সমান রাখা।
- যদি কোনো ম্যানেজার ফেইল করে, তবে অন্য ম্যানেজাররা ভোটের মাধ্যমে একজন 'Leader' নির্বাচন করে।
- Quorum: ক্লাস্টারের সিদ্ধান্ত নেওয়ার জন্য অর্ধেকের বেশি ম্যানেজারের সচল থাকা জরুরি (n/2 + 1)। উদাহরণস্বরূপ, ৩টি ম্যানেজারের মধ্যে অন্তত ২টি সচল থাকতে হবে।
High Availability (HA)
সোয়ার্মে হাই অ্যাভেইল্যাবিলিটি নিশ্চিত করার জন্য সাধারণত বিজোড় সংখ্যক (Odd number) ম্যানেজার নোড রাখার পরামর্শ দেওয়া হয় (যেমন ৩টি বা ৫টি)। এতে করে ক্লাস্টারটি কোনো একটি নোড ফেইলার হ্যান্ডেল করতে পারে এবং সার্ভিস সচল রাখতে পারে।
Service Discovery & Load Balancing
সোয়ার্মে যখন আপনি কোনো 'Service' তৈরি করেন, তখন সেটিকে একটি ইন্টারনাল DNS নেম দেওয়া হয়। ক্লাস্টারের যেকোনো জায়গা থেকে ওই নামে সার্ভিসটিকে খুঁজে পাওয়া যায়। এছাড়া সোয়ার্মের Routing Mesh ফিচারের মাধ্যমে যেকোনো নোডে রিকুয়েস্ট আসলেও সেটি সঠিক কন্টেইনারের কাছে পৌঁছে যায়, যা ইনবিল্ট লোড ব্যালান্সিং হিসেবে কাজ করে।