Availability
সিস্টেম যত সময় up থাকে — তার পরিমাপ ও কৌশল।
আপনি ATM থেকে টাকা তুলতে গেছেন রাত ২টায় — মেশিন কাজ করছে না। ATM-এর availability কম। অন্যদিকে Google.com — বছরে কয়েক মিনিটের বেশি down হয় না। এই দুই-এর পার্থক্যই availability-এর গল্প।
Availability কী?
Availability = একটি সিস্টেম যত শতাংশ সময় কার্যকর ও accessible থাকে।
উদাহরণ: একটি সিস্টেম এক বছরে ১০ ঘণ্টা down ছিল। বছরে মোট ৮৭৬০ ঘণ্টা।
"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
- খুব ব্যয়বহুল
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 (সব একসাথে কাজ করতে হবে)
= 99.9 × 99.9 × 99.9 = 99.7%
Parallel (Redundant)
দুটি server — একটাই কাজ করলেও চলবে।
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% যথেষ্ট।
সাধারণ ভুল ধারণা
- "99% মানে ভালো": বছরে ৩.৬৫ দিন down — ই-কমার্স-এ disaster।
- "Single component fail করবে না": Hardware fail হবেই — ধরে নিতে হবে।
- "100% availability সম্ভব": না — physics ও economics-এর সীমা।
- "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।