ویژگیهای سیستم خوب
پنج ویژگی کلیدی سیستم: دسترسپذیری، مقیاسپذیری، تأخیر، سازگاری و دوام — معیارهای تصمیمگیری معماری
معیارهای سیستم خوب
هر تصمیم System Design با این سؤالها سنجیده میشود — این پنج ویژگی، زبان مشترک معماران است:
۱. دسترسپذیری (Availability)
درصد زمانی که سیستم کار میکند:
| سطح | دowntime سالانه | نام |
|---|---|---|
| ۹۹٪ | ۳.۶۵ روز | دو ناین |
| ۹۹.۹٪ | ۸.۷۶ ساعت | سه ناین |
| ۹۹.۹۹٪ | ۵۲ دقیقه | چهار ناین |
| ۹۹.۹۹۹٪ | ۵ دقیقه | پنج ناین |
هر «ناین» اضافه = هزینه چند برابر! راهحل: افزونگی (Redundancy) — چند نسخه از هر جزء.
۲. مقیاسپذیری (Scalability)
توانایی جذب بار بیشتر بدون افت کیفیت. دو مسیر:
- عمودی (Scale Up): سرور قویتر — ساده اما سقف دارد و تکنقطهشکست
- افقی (Scale Out): سرورهای بیشتر — نامحدود اما پیچیده (مبحث بعد)
۳. تأخیر (Latency) و توان عملیاتی (Throughput)
- Latency: زمان یک درخواست (ms) — «چقدر سریع؟»
- Throughput: درخواست در ثانیه (RPS/QPS) — «چقدر زیاد؟»
قاعده تجربی: کاربر، تأخیر زیر ۱۰۰ms را «آنی» و بالای ۱ ثانیه را «کند» حس میکند. p50/p95/p99: تأخیر بدترین ۱٪ درخواستها را هم ببینید!
۴. سازگاری (Consistency)
همه کاربران همان داده را میبینند؟ در سیستم توزیعشده، همیشه «بله» ممکن نیست (قضیه CAP — مبحث بعدیها). طیف: Strong تا Eventual.
۵. دوام (Durability)
داده هرگز گم نمیشود — حتی با قطع برق، آتشسوزی دیتاسنتر! راه: چند نسخه در چند مکان (Replication + Backup).
تریدآفها — قلب طراحی
| بیشتر بخواه... | قربانی... |
|---|---|
| دسترسپذیری | سازگاری (CAP!) |
| سرعت (کش) | تازگی داده |
| دوام (همگامسازی) | تأخیر نوشتن |
| همه ویژگیها | 💰 هزینه! |
جمعبندی
- Availability: ناینها + افزونگی
- Scalability: عمودی ساده/سقفدار، افقی پیچیده/نامحدود
- Latency vs Throughput: سریع vs زیاد
- Consistency و Durability: درست بودن داده
- همه با هم ممکن نیست — تریدآف!
این مبحث بخشی از دوره آموزش کامل طراحی سیستم (System Design) است.