> For the complete documentation index, see [llms.txt](https://mominur.gitbook.io/mominur-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mominur.gitbook.io/mominur-notes/system-design/availability/failover-mechanism.md).

# Failover Mechanism

ধরুন, আপনি একটি Banking অ্যাপে টাকা ট্রান্সফার করছেন, অথবা কোনো ই-কমার্স ওয়েবসাইটে পেমেন্ট দিচ্ছেন। হঠাৎ যদি সার্ভার ডাউন হয়ে যায়? আপনি কি টাকা হারাবেন? অথবা আপনার পেমেন্ট আটকে যাবে?&#x20;

না! এরকম পরিস্থিতি এড়ানোর জন্যই Failover Mechanism ব্যবহার করা হয়। এটি এমন একটি পদ্ধতি যা কোনো সার্ভার বা সিস্টেম Fail হলে স্বয়ংক্রিয়ভাবে অন্য একটি ব্যাকআপ সার্ভারে ট্রাফিক রিডাইরেক্ট করে, যাতে ব্যবহারকারীরা কোনো সমস্যার সম্মুখীন না হন।

### **Failover Mechanism কী?**

Failover Mechanism এমন একটি কৌশল, যা সিস্টেমের কোনো অংশ ব্যর্থ হলে স্বয়ংক্রিয়ভাবে ব্যাকআপ রিসোর্সে স্যুইচ করে।

ধরুন, আপনি বিমানে ভ্রমণ করছেন। যদি বিমানের একটি ইঞ্জিন নষ্ট হয়ে যায়, তাহলে কি পুরো বিমানটি থেমে যাবে? না! কারণ বিমানের আরেকটি ইঞ্জিন রয়েছে, যা স্বয়ংক্রিয়ভাবে চালু হয়ে যায় এবং বিমান নিরাপদে গন্তব্যে পৌঁছে যায়।

একইভাবে, কোনো সার্ভার বা ডাটাবেস Fail হলে, Failover Mechanism স্বয়ংক্রিয়ভাবে অন্য একটি ব্যাকআপ সার্ভারে রিকোয়েস্ট পাঠিয়ে দেয়, যাতে ব্যবহারকারীরা কোনো বিভ্রাট অনুভব না করেন।

***

### **Failover কেন প্রয়োজন?**

Failover Mechanism ব্যবহারের প্রধান কারণগুলো হলো:

**High Availability (HA)**

ব্যবহারকারীরা সবসময় নিরবিচ্ছিন্নভাবে সার্ভিস পেতে চান। Failover নিশ্চিত করে যে কোনো ডাউনটাইম ছাড়া সার্ভার চলতে থাকবে।

**Automatic Recovery**

কোনো সার্ভার ডাউন হলে, এটি স্বয়ংক্রিয়ভাবে অন্য একটি ব্যাকআপ সার্ভারে সুইচ করে যায়, ফলে ম্যানুয়ালি কিছু করতে হয় না।

**Performance Improvement**

Failover এর মাধ্যমে ট্রাফিক লোড ব্যালেন্স করা যায়, ফলে সার্ভারের উপর চাপ কমে এবং পারফরম্যান্স উন্নত হয়।

**Disaster Recovery**

প্রাকৃতিক দুর্যোগ, সাইবার আক্রমণ বা হার্ডওয়্যার ফেইলিওরের সময় সিস্টেম যেন Fail না হয়, Failover সেটআপ তাই অত্যন্ত গুরুত্বপূর্ণ।

***

### **Failover Mechanism কীভাবে কাজ করে?**

Failover Mechanism সাধারণত নিচের ধাপগুলো অনুসরণ করে:

1️⃣ Primary System Monitoring:

* সার্ভারের Health এর উপর নজর রাখা হয় (**Health Check**)।

2️⃣ Failure Detection:

* যদি কোনো সার্ভার Fail হয়, তাহলে এটি স্বয়ংক্রিয়ভাবে শনাক্ত করা হয়।

3️⃣ Traffic Redirection:

* ব্যাকআপ সার্ভারে ট্রাফিক পাঠানো হয়।

4️⃣ Recovery and Failback:

* মূল সার্ভার পুনরুদ্ধার হলে আবার এটি স্বাভাবিকভাবে কাজ শুরু করে।

***

### **Failover Mechanism এর ধরন**

Failover মূলত দুইভাবে কাজ করে:

#### ১️) **Manual Failover**

* যদি কোনো সার্ভার Fail হয়, তাহলে অ্যাডমিন নিজে ব্যাকআপ সার্ভারে সুইচ করে।
* Example: কোনো সাইটের Primary Database ব্যর্থ হলে, অ্যাডমিন Secondary Database-এ ট্রাফিক পাঠায়।
* Cons: এটি স্বয়ংক্রিয় নয়, সময় লাগে।

#### ২️) **Automatic Failover**

* কোনো সমস্যা হলে, সিস্টেম নিজেই ব্যাকআপ সার্ভারে সুইচ করে।
* Example: AWS, Google Cloud-এর মতো ক্লাউড সার্ভিসে এটি স্বয়ংক্রিয়ভাবেই ঘটে।
* Pros: দ্রুত কাজ করে, ব্যবহারকারীরা কোনো ব্যাঘাত টের পায় না।

***

### **Failover এর জনপ্রিয় কৌশলসমূহ**

বিভিন্ন ধরনের Failover কৌশল ব্যবহার করা হয়, যার মধ্যে সবচেয়ে জনপ্রিয় কিছু নিচে দেওয়া হলো:

#### 🛠 **Active-Passive Failover**

* Primary Server (Active) কাজ করে, এবং একটি Backup Server (Passive) অপেক্ষায় থাকে।
* যখন Primary Server ব্যর্থ হয়, তখন Backup Server Active হয়ে যায়।

**Example:**

* আপনার একটি ওয়েবসাইটের Primary Database এবং Secondary Database রয়েছে।
* Primary Database ব্যর্থ হলে, Secondary Database কাজ করা শুরু করে।

***

#### **Active-Active Failover**

* একাধিক Active Server একইসাথে কাজ করে এবং যখন একটি সার্ভার ব্যর্থ হয়, তখন অন্যটি দায়িত্ব নেয়।
* Load Balancer এর মাধ্যমে ট্রাফিক ভাগ করা হয়।

**Example:**

* Google Search Engine একাধিক সার্ভারে চলে।
* একটি সার্ভার ব্যর্থ হলে, অন্য সার্ভার স্বয়ংক্রিয়ভাবে কাজ করে।

***

#### **Geographical Failover**

* সার্ভার Multiple Locations-এ থাকে।
* যদি একটি Region-এর সার্ভার ব্যর্থ হয়, তাহলে ট্রাফিক অন্য Reg**ion**-এর সার্ভারে চলে যায়।

**Example:**

* AWS, Azure, Google Cloud একাধিক Data Center ব্যবহার করে, যাতে একটি লোকেশনের সার্ভার ব্যর্থ হলেও অন্যটি কাজ করতে পারে।

***

### **Failover Mechanism বাস্তবায়নের জন্য জনপ্রিয় টুলস**

আপনার সিস্টেমে Failover Mechanism যুক্ত করার জন্য নিচের টুলগুলো ব্যবহার করতে পারেন:

**Load Balancers:**

* AWS ELB, Nginx, HAProxy

**Database Replication:**

* MySQL Replication, PostgreSQL Streaming Replication

**DNS Failover:**

* AWS Route 53, Cloudflare DNS

**Cloud Failover Services:**

* AWS Auto Scaling, Azure Traffic Manager, Google Cloud Load Balancer

***

### **Failover বাস্তবায়নের ৫টি সহজ ধাপ**

**Step 1:** Health Monitoring টুল ব্যবহার করুন (**Ping, Heartbeat, Logs**)\
**Step 2:** Primary এবং Backup সার্ভার তৈরি করুন\
**Step 3:** Load Balancer সেটআপ করুন\
**Step 4:** Automatic Failover Configuration করুন\
**Step 5:** Disaster Recovery Plan তৈরি করুন

***

Failover Mechanism হলো System Reliability নিশ্চিত করার অন্যতম সেরা উপায়। এটি সার্ভারের Downtime কমিয়ে সিস্টেমকে High Availability এবং Scalability প্রদান করে।

যদি আপনি Banking System, Cloud Computing, বা Mission-Critical Application তৈরি করেন, তাহলে Failover Mechanism অবশ্যই ব্যবহার করা উচিত!
