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 কীভাবে কাজ করে?
Monitoring: Health Check ও Heartbeat দিয়ে Primary সিস্টেমের অবস্থা নজরে রাখা হয়।
Failure Detection: সাড়া না পেলে বা বারবার Check ব্যর্থ হলে বিকল ঘোষণা করা হয়।
Traffic Redirection: ট্রাফিক Backup সার্ভারে পাঠানো হয় (Backup-কে Primary পদে উন্নীত করা হয়)।
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 বাস্তবায়নের ধাপ
Health Monitoring চালু করুন (Ping, Heartbeat, Log)
Primary ও Backup সার্ভার প্রস্তুত করুন, ডাটা Replication নিশ্চিত করুন
Load Balancer বা DNS Routing সেটআপ করুন
স্বয়ংক্রিয় Failover কনফিগার করুন
Disaster Recovery Plan লিখে রাখুন
নিয়মিত 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 এড়ানো এবং নিয়মিত পরীক্ষা করা ছাড়া এটি পূর্ণ সুরক্ষা দেয় না।