Failover Mechanism

Failover কী?

Failover হলো এমন একটি কৌশল, যেখানে সিস্টেমের কোনো অংশ বিকল হলে স্বয়ংক্রিয়ভাবে ব্যাকআপ রিসোর্সে সুইচ করা হয়, যাতে ব্যবহারকারী সার্ভিসে কোনো ব্যাঘাত না পান।

উদাহরণ: বিমানের একটি ইঞ্জিন নষ্ট হলেও অন্য ইঞ্জিন দিয়ে বিমান নিরাপদে গন্তব্যে পৌঁছায়। তেমনি Primary সার্ভার বা Database বিকল হলে Backup সার্ভার দায়িত্ব নেয়।

ব্যাংকিং অ্যাপে টাকা ট্রান্সফারের সময় সার্ভার বিকল হলেও যেন লেনদেন আটকে না যায় বা টাকা হারিয়ে না যায়, Failover সেটি নিশ্চিত করতে সাহায্য করে। তবে এর সাথে Transaction ও Replication সঠিকভাবে ডিজাইন করা লাগে, শুধু Failover যথেষ্ট নয়।

Failover কেন প্রয়োজন?

  • High Availability: নিরবচ্ছিন্ন সার্ভিস, Downtime কম।

  • Automatic Recovery: ম্যানুয়াল হস্তক্ষেপ ছাড়াই ব্যাকআপে সুইচ।

  • Disaster Recovery: দুর্যোগ, সাইবার আক্রমণ বা হার্ডওয়্যার বিকলের সময় সিস্টেম টিকিয়ে রাখা।

  • Reliability: Mission-critical সিস্টেমের আস্থা বাড়ায়।

সংশোধনী: মূল লেখায় "Performance Improvement" কে Failover-এর সুবিধা বলা হয়েছিল। এটি আসলে Load Balancing-এর কাজ। Failover-এর মূল কাজ ব্যর্থতা সামলানো, তাই আমি সেটি বাদ দিয়েছি।

Failover কীভাবে কাজ করে?

  1. Monitoring: Health Check ও Heartbeat দিয়ে Primary সিস্টেমের অবস্থা নজরে রাখা হয়।

  2. Failure Detection: সাড়া না পেলে বা বারবার Check ব্যর্থ হলে বিকল ঘোষণা করা হয়।

  3. Traffic Redirection: ট্রাফিক Backup সার্ভারে পাঠানো হয় (Backup-কে Primary পদে উন্নীত করা হয়)।

  4. Recovery ও Failback: মূল সার্ভার ঠিক হলে সেটিকে আবার যুক্ত করা হয়, এবং প্রয়োজনে দায়িত্ব ফিরিয়ে দেওয়া হয়।

Failover এর ধরন

Manual Failover

অ্যাডমিন নিজে ব্যাকআপে সুইচ করে। ধীর ও মানবিক ভুলের ঝুঁকি আছে, তবে নিয়ন্ত্রণ বেশি থাকে।

Automatic Failover

সিস্টেম নিজেই শনাক্ত করে সুইচ করে। দ্রুত, তবে ভুল শনাক্তকরণ (False Positive) হলে অকারণে সুইচ হতে পারে।

Failover এর জনপ্রিয় কৌশল

১. Active-Passive

  • Primary (Active) কাজ করে, Backup (Passive) অপেক্ষায় থাকে

  • Primary বিকল হলে Backup Active হয়

  • সুবিধা: সহজ, Data Conflict কম

  • অসুবিধা: Backup-এর Resource অলস পড়ে থাকে; Failover-এ কিছু সময় লাগে

  • উদাহরণ: Primary ও Standby Database

২. Active-Active

  • একাধিক সার্ভার একসাথে কাজ করে, Load Balancer ট্রাফিক ভাগ করে

  • একটি বিকল হলে বাকিরা তার কাজ নেয়

  • সুবিধা: Resource-এর পূর্ণ ব্যবহার, Failover প্রায় তাৎক্ষণিক

  • অসুবিধা: জটিল; বাকি সার্ভারগুলো বাড়তি চাপ সামলাতে সক্ষম হতে হবে; Database-এ Conflict সামলাতে হয়

৩. Geographical (Multi-Region) Failover

  • সার্ভার একাধিক Region বা Data Center-এ থাকে

  • একটি Region বিকল হলে ট্রাফিক অন্য Region-এ যায়

  • উদাহরণ: AWS, Azure, Google Cloud-এর Multi-AZ ও Multi-Region ব্যবস্থা

Failover এর সুবিধা-অসুবিধা তুলনা

বিষয়

Active-Passive

Active-Active

Multi-Region

জটিলতা

কম

বেশি

সবচেয়ে বেশি

খরচ

মাঝারি

বেশি

সবচেয়ে বেশি

Failover গতি

কিছু সময় লাগে

প্রায় তাৎক্ষণিক

নির্ভর করে DNS/Routing-এর ওপর

সুরক্ষা

সার্ভার বিকল

সার্ভার বিকল

পুরো Region বিকল

Failover বাস্তবায়নের টুলস

  • Load Balancer: AWS ELB/ALB, Nginx, HAProxy

  • Database Failover: MySQL ও PostgreSQL Replication, Patroni, Managed Database-এর Multi-AZ

  • DNS Failover: AWS Route 53, Cloudflare

  • Cluster Management: Kubernetes (Pod স্বয়ংক্রিয়ভাবে পুনরায় চালু)

  • Cloud সেবা: Azure Traffic Manager, Google Cloud Load Balancing

Auto Scaling মূলত Load অনুযায়ী সার্ভার বাড়ানো-কমানোর কৌশল। বিকল সার্ভার প্রতিস্থাপনে সাহায্য করলেও এটি সরাসরি Failover নয়।

Failover বাস্তবায়নের ধাপ

  1. Health Monitoring চালু করুন (Ping, Heartbeat, Log)

  2. Primary ও Backup সার্ভার প্রস্তুত করুন, ডাটা Replication নিশ্চিত করুন

  3. Load Balancer বা DNS Routing সেটআপ করুন

  4. স্বয়ংক্রিয় Failover কনফিগার করুন

  5. Disaster Recovery Plan লিখে রাখুন

  6. নিয়মিত Failover Drill চালান

Failover ডিজাইনে মনে রাখবেন

  • RTO ও RPO ঠিক করুন: RTO (Recovery Time Objective) হলো কত সময়ের মধ্যে সিস্টেম ফিরতে হবে, আর RPO (Recovery Point Objective) হলো সর্বোচ্চ কতটুকু ডাটা হারানো মেনে নেওয়া যায়। Synchronous Replication-এ RPO প্রায় শূন্য, Asynchronous-এ কিছু ডাটা হারাতে পারে।

  • Split-Brain এড়ান: দুটি সার্ভার একসাথে নিজেকে Primary ভাবলে ডাটা নষ্ট হতে পারে। Quorum বা Consensus দিয়ে এটি ঠেকানো হয়।

  • Failover-এর Component নিজেও SPOF হতে পারে: Load Balancer, Monitoring ও DNS-কেও Redundant রাখুন।

  • Failback সাবধানে করুন: মূল সার্ভার ফিরলে তার ডাটা আগে সিঙ্ক করে নিন।

  • নিয়মিত পরীক্ষা করুন: পরীক্ষা না করা Failover প্রয়োজনের সময় কাজ নাও করতে পারে।

  • ব্যবসার প্রয়োজন অনুযায়ী বেছে নিন: সব সিস্টেমে Multi-Region দরকার নেই, খরচ অনেক বাড়ে।

Failover হলো High Availability ও Reliability নিশ্চিত করার অন্যতম প্রধান কৌশল। Health Check, Redundancy, Replication ও স্বয়ংক্রিয় Switching মিলিয়ে এটি Downtime কমায়। ব্যাংকিং, Cloud ও Mission-critical সিস্টেমে এটি অপরিহার্য, তবে RTO/RPO ঠিক করা, Split-Brain এড়ানো এবং নিয়মিত পরীক্ষা করা ছাড়া এটি পূর্ণ সুরক্ষা দেয় না।