راهنمای مفهومی High Availability
این کتاب درباره این است که چگونه وبسایتها و سرویسهای دیجیتال را، فارغ از هر اتفاقی که میافتد، آنلاین نگه داریم. هدف ما در اینجا این است که مفاهیم پیچیده مهندسی را ساده کنیم و با استفاده از مثالها و داستانهای ملموس، آنها را توضیح دهیم. این کتاب برای کسانی نوشته شده که میخواهند بدون درگیر شدن با جزئیات فنی سنگین، اصول کار را یاد بگیرند.
دربارهی دوره
درباره این کتاب
این کتاب درباره این است که چگونه وبسایتها و سرویسهای دیجیتال را، فارغ از هر اتفاقی که میافتد، آنلاین نگه داریم. هدف ما در اینجا این است که مفاهیم پیچیده مهندسی را ساده کنیم و با استفاده از مثالها و داستانهای ملموس، آنها را توضیح دهیم. این کتاب برای کسانی نوشته شده که میخواهند بدون درگیر شدن با جزئیات فنی سنگین، اصول کار را یاد بگیرند.
فهرست مطالب
بخش ۱: زیربنا و هدف (The Foundation & The Goal)
۱. مقدمه: چرا "Up" بودن مهم است؟
- هزینه واقعی Downtime (پول و اعتبار).
- معنای واقعی "High Availability".
- داستان "Nines": تفاوت ۹۹.۹٪ با ۹۹.۹۹۹٪.
- Scale Perspectives: وقتی ترافیک از ۱۰۰ به ۵۰۰,۰۰۰ درخواست در ثانیه میرسد چه تغییری میکند؟
۲. فیزیکِ Performance (متریکها)
- Latency: زمان سفر (رفت و برگشت).
- Throughput: ظرفیت بزرگراه (تعداد خودروها).
- Bandwidth: پهنای لوله.
- The Trade-off: چرا همیشه نمیتوانیم همزمان سرعت و حجم بالا داشته باشیم.
- Response Time: حسی که کاربر از سرعت دارد.
۳. اندازهگیری Reliability (خطکش اندازهگیری)
- SLA (Service Level Agreement): قولی که به مشتری میدهیم.
- SLO (Service Level Objective): هدفی که خودمان داریم.
- SLI (Service Level Indicator): چیزی که در واقعیت اتفاق میافتد.
- MTTR و MTTF: سرعت تعمیر در برابر مدت زمان کارکردن بدون خرابی.
بخش ۲: سرعت و کارایی (لایه Caching)
۴. اینترنت واقعاً چگونه کار میکند (به زبان ساده)
- سفر یک کلیک: از مانیتور شما تا سرور و برگشت.
- پروتکلها: HTTP (مکالمه) و TCP/IP (پستچی).
- Compression: فشردهسازی برای سفر سریعتر.
۵. هنر به خاطر سپردن (Caching)
- مفهوم Caching (مثال "کوله پشتی").
- Browser Caching: حافظه مرورگر شما.
- DNS Caching: دفترچه تلفن اینترنت.
- CDN: نزدیک کردن محتوا به کاربر.
- استراتژیها: Cache-Aside و Write-Through.
- مشکلات رایج: وقتی کش دردسرساز میشود (Stale Data و Cache Stampede).
بخش ۳: طراحی نرمافزار Reliable (منطق)
۶. معماری Application
- Stateless Systems: چرا سرورها باید "حافظه ماهی قرمز" داشته باشند.
- Microservices vs Monoliths: تکهتکه کردن برنامه برای امنیت بیشتر.
- API Gateways: مسئول پذیرش.
- Serverless: تمرکز روی کد به جای سرور.
۷. مهندسی برای سرعت و Scale
- Algorithmic Efficiency: چرا کدهای بد در مقیاس بالا فاجعه میسازند.
- Data Structures: انتخاب ظرف مناسب برای دیتا.
- Concurrency vs Parallelism: انجام کارهای همزمان.
- انتخاب ابزار: استفاده از ابزار درست برای هر کار.
۸. مدیریت الگوهای Traffic
- صفها (Queues): اتاق انتظار برای مدیریت ترافیک.
- Asynchronous Processing: انجام کارها در پسزمینه.
- Rate Limiting: جلوگیری از شلوغی بیش از حد.
- Throttling: کنترل سرعت به جای مسدود کردن.
۹. مکانیسمهای ایمنی در کد
- Idempotency: جلوگیری از پرداخت تکراری.
- Timeouts و Retries: کی صبر کنیم و کی دوباره تلاش کنیم.
- Exponential Backoff: صبر هوشمندانه.
- Circuit Breakers: فیوزهایی برای جلوگیری از سوختن سیستم.
- Feature Flags: کنترل امکانات بدون تغییر کد.
بخش ۴: لایه Data (حافظه)
۱۰. مدیریت Data در Scale
- Replication: کپی کردن دیتا برای روز مبادا.
- Sharding: تقسیم کردن دیتابیسهای غولپیکر.
- Connection Pooling: مدیریت خطوط ارتباطی.
- Indexing: فهرستبندی برای جستجوی سریع.
- Query Optimization: نوشتن کوئریهای بهینه.
۱۱. جابجایی Data و Consistency
- Batch vs Stream: جابجایی با کامیون یا لوله؟
- Push vs Pull: خبر کردن یا پرسیدن؟
- ACID vs BASE: دقت بانکی یا سرعت شبکههای اجتماعی؟
- The CAP Theorem: انتخاب بین Consistency و Availability.
بخش ۵: ضدگلوله کردن Infrastructure (سختافزار)
۱۲. Redundancy و Scaling
- Load Balancing: توزیع ترافیک (لایه ۴ و ۷).
- الگوریتمها: روشهای انتخاب سرور.
- Horizontal vs Vertical Scaling: تعداد بیشتر یا قدرت بیشتر؟
- Auto-Scaling: تغییر سایز خودکار.
۱۳. استراتژیهای Disaster Recovery
- Availability Zones: محافظت در برابر حوادث محلی.
- Multi-Region: محافظت در برابر حوادث منطقهای.
- انواع Failover: آمادهباش Hot، Warm و Cold.
بخش ۶: عامل انسانی و Operations
۱۴. چه کسی چراغها را روشن نگه میدارد؟
- DevOps و SRE: نقشها و فرهنگ.
- On-Call: مدیریت شیفتهای اضطراری.
- Runbooks: دستورالعملهای زمان بحران.
۱۵. تعالی عملیاتی
- CI/CD: اتوماسیون در توسعه و عرضه.
- Blue/Green Deployments: آپدیت بدون قطعی.
- Canary Releases: تست روی جمعیت کم.
- Observability: دیدن داخل سیستم (Logging, Metrics, Tracing).
بخش ۷: مدیریت آشوب، Security و اقتصاد
۱۶. Security به عنوان Availability
- DDoS: حمله با ارتش زامبیها.
- WAF: فایروال هوشمند وب.
- Bot Mitigation: مدیریت رباتها.
۱۷. برنامهریزی برای بدترین شرایط
- RPO و RTO: چقدر دیتا و زمان میتوانیم از دست بدهیم؟
- Chaos Engineering: تمرین شکست برای قویتر شدن.
۱۸. اقتصادِ Uptime
- FinOps: مدیریت هزینهها.
- Diminishing returns: هزینه رسیدن به ۱۰۰٪.
نتیجهگیری
۱۹. فلسفه Reliability
- طراحی برای شکست.
- اعتماد سازی.
رایگان
دسترسی کامل به محتوای دوره