Part 1 · নেটওয়ার্কিং 📖 ১২ মিনিট পড়া 📝 ২০টি কুইজ

Availability

সিস্টেম যত সময় up থাকে — তার পরিমাপ ও কৌশল।

📝 কুইজে যান

আপনি ATM থেকে টাকা তুলতে গেছেন রাত ২টায় — মেশিন কাজ করছে না। ATM-এর availability কম। অন্যদিকে Google.com — বছরে কয়েক মিনিটের বেশি down হয় না। এই দুই-এর পার্থক্যই availability-এর গল্প।

Availability কী?

Availability = একটি সিস্টেম যত শতাংশ সময় কার্যকর ও accessible থাকে।

Availability = Uptime / (Uptime + Downtime)

উদাহরণ: একটি সিস্টেম এক বছরে ১০ ঘণ্টা down ছিল। বছরে মোট ৮৭৬০ ঘণ্টা।

(8760 - 10) / 8760 = 99.886%

"Nines"-এর হিসাব

Industry-তে availability বলতে "কত nines"। প্রতি nine বাড়লে downtime ১০× কমে।

99% (Two nines)

  • বছরে ৩.৬৫ দিন down
  • মাসে ৭.২ ঘণ্টা
  • সাধারণ web app

99.9% (Three nines)

  • বছরে ৮.৭৬ ঘণ্টা down
  • মাসে ৪৩ মিনিট
  • Standard SLA target

99.99% (Four nines)

  • বছরে ৫২.৫৬ মিনিট
  • মাসে ৪.৩৮ মিনিট
  • Enterprise grade

99.999% (Five nines)

  • বছরে ৫.২৬ মিনিট
  • Telecom, banking critical
  • খুব ব্যয়বহুল
⚠️ মনে রাখুন: ৯৯% থেকে ৯৯.৯৯%-এ যাওয়া কাগজে সামান্য কিন্তু খরচে ১০০×! Five-nine availability achieve করতে multi-region active-active deployment, custom hardware ও $$$ লাগে।

High Availability-এর কৌশল

১. Redundancy

প্রতিটি critical component-এর duplicate। এক fail হলে অন্যটা কাজ করে।

  • Active-Active: দুটোই একসাথে traffic নেয়।
  • Active-Passive: একটা active, অন্যটা standby। Active fail হলে passive-এ failover।

২. Failover

Failed component থেকে healthy-তে automatic switch। Health check এর সাথে integrated।

৩. Replication

Data multiple server-এ copy। এক DB fail হলেও replica থাকে।

৪. Geographic Redundancy

Multi-region deployment। এক data center crash (earthquake, fire, power) — অন্য region serve করে।

৫. Load Balancing

Health check + traffic distribution = unhealthy server skip।

৬. Stateless Architecture

Stateless server interchangeable — যেকোনোটা fail হলেও user feel করে না।

৭. Graceful Degradation

সম্পূর্ণ down না হয়ে — partial functionality বজায়। উদাহরণ: image load না হলেও text content দেখা যাবে।

৮. Circuit Breaker

একটি service fail করলে তার call বন্ধ — cascading failure প্রতিরোধ।

Series vs Parallel — Availability-র গণিত

Component series-এ থাকলে availability multiply হয়। Parallel-এ probability of failure multiply হয়।

Series

App → DB → Cache (সব একসাথে কাজ করতে হবে)

Total = A1 × A2 × A3
= 99.9 × 99.9 × 99.9 = 99.7%

Parallel (Redundant)

দুটি server — একটাই কাজ করলেও চলবে।

Failure = (1-A1) × (1-A2)
Total = 1 - failure

দুটি 99% server-এর parallel = 99.99%। Redundancy-র জাদু।

বাস্তব উদাহরণ

  • AWS S3: 99.99% SLA, ১১ nines durability।
  • Google Cloud Storage: 99.95% SLA।
  • Banking: 99.999% target।
  • Personal blog: 99% যথেষ্ট।

সাধারণ ভুল ধারণা

  1. "99% মানে ভালো": বছরে ৩.৬৫ দিন down — ই-কমার্স-এ disaster।
  2. "Single component fail করবে না": Hardware fail হবেই — ধরে নিতে হবে।
  3. "100% availability সম্ভব": না — physics ও economics-এর সীমা।
  4. "Availability = Reliability": Reliability-এ failure কম হওয়া বোঝায়; availability-এ recover দ্রুত।

Best Practices

  • Single point of failure (SPOF) চিহ্নিত ও দূর করুন।
  • Multi-AZ deployment minimum, multi-region যদি critical।
  • Automated failover — manual intervention ধীর।
  • Chaos engineering — প্রকৃত failure test (Netflix Chaos Monkey)।
  • Disaster Recovery plan ও regular drill।
  • Realistic SLA — ৯৯.৯৯৯% promise করার আগে হিসাব করুন।

📌 চ্যাপ্টার সারমর্ম

  • Availability = uptime percentage।
  • ৯৯.৯% = বছরে ৮.৭৬ ঘণ্টা down।
  • প্রতি extra nine = ১০× কম downtime, কিন্তু কয়েক গুণ বেশি খরচ।
  • Redundancy + Failover + Replication = HA-র ভিত্তি।
  • Series multiply, parallel reduces failure।