feat: add chapter 13-product-maintenance specs
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# مشخصات درسنامه: مشاهدهپذیری و مانیتورینگ منابع سرور (Observability & Monitoring)
|
||||
- **شناسه در سیلابس:** `L13.2`
|
||||
- **فصل:** فصل ۱۳: نگهداری محصول (Ch 13)
|
||||
- **نوع محتوا:** 📘 درسنامه متنی
|
||||
- **زمان تقریبی مطالعه:** ۱۶ دقیقه
|
||||
- **پیشنیازهای مستقیم:** `L13.1` (اهداف فصل سیزدهم)
|
||||
|
||||
---
|
||||
|
||||
## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
|
||||
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
|
||||
- [ ] **درک کند (Understand):** تفاوت میان «مانیتورینگ ساده» (آیا سرور بالاست؟) با «مشاهدهپذیری عمیق» (چرا حافظه رم پر شده و کدام روت باعث کندی است؟) را شرح دهد.
|
||||
- [ ] **تحلیل/ارزیابی کند (Evaluate):** چهار سیگنال طلایی پایداری نرمافزار (تأخیر Latency، ترافیک Traffic، نرخ خطا Errors، و درجه اشباع منابع Saturation) را در داشبوردهای ابری تحلیل کند.
|
||||
- [ ] **بهکار ببندد (Apply):** نمودارهای زندهی مصرف حافظه (RAM)، پردازنده (CPU)، دیسک، و اتصالات فعال دیتابیس Supabase را در پنلهای لیارا و ورسل بازرسی و مدیریت نماید.
|
||||
- [ ] **ایجاد کند (Create):** راهکارهای برطرفسازی نشت حافظه (Memory Leaks) در روتهای Next.js را با کمک ابزارهای بهینهسازی شناسایی کند.
|
||||
|
||||
---
|
||||
|
||||
## ۲. محدوده و مرزهای محتوا (Scope & Boundaries)
|
||||
|
||||
### آنچه باید پوشش داده شود (In-Scope):
|
||||
1. **استعاره علائم حیاتی بیمار در اتاق مراقبتهای ویژه (ICU):**
|
||||
* پزشک تنها به زنده بودن بیمار نگاه نمیکند؛ فشار خون، ضربان قلب و اکسیژن خون را رصد میکند.
|
||||
2. **چهار سیگنال طلایی گوگل برای ارزیابی سلامت سیستمها (Four Golden Signals):**
|
||||
* ۱. تاخیر (Latency): مدت زمانی که طول میکشد تا سرور به درخواست کاربر پاسخ دهد (بررسی شاخصهای p50 و p95).
|
||||
* ۲. ترافیک (Traffic): حجم تقاضا و تعداد درخواستهای وارده در ثانیه/دقیقه.
|
||||
* ۳. نرخ خطا (Errors): درصد درخواستهایی که با کدهای خطای ۵۰۰ یا ۴۰۰ شکست میخورند در مقایسه با پاسخهای ۲۰۰ موفق.
|
||||
* ۴. درجه اشباع (Saturation): درصد مصرف منابع محدود سرور (رم، پردازنده، دیسک، تعداد اتصالات استخر دیتابیس).
|
||||
3. **رصد زنده منابع در کنسول پلتفرم ابری لیارا:**
|
||||
* نمودارهای لحظهای پردازنده (CPU) و رم (Memory) در داشبورد برنامه پورتفولیو.
|
||||
* تشخیص وضعیت کرش ناشی از کمبود رم (Out of Memory - OOM) و نحوه ارتقای اندازه پلن یا ریاستارت کانتینر.
|
||||
4. **رصد متریکها در داشبورد Vercel:**
|
||||
* مشاهده درصد درخواستهای کششده در لبه (Edge Cache Hit Ratio) و تاخیر توابع سرورلس.
|
||||
5. **رصد شاخصهای پایگاه داده در کنسول Supabase:**
|
||||
* تعداد کانکشنهای باز به PostgreSQL و اطمینان از بسته شدن مناسب اتصالات در Server Actions.
|
||||
6. **کالاوتهای آموزشی و هشدار کوئرا:**
|
||||
* کالاوت بنفش (`<details class="violet">`): مفهوم شاخص صدک ۹۵ام (p95 Latency)؛ چرا بررسی «میانگین» گولزننده است و تاخیر کندترین ۵ درصد کاربران را پنهان میکند.
|
||||
* کالاوت سبز (`<details class="green">`): مشاهده نمودار مصرف رم لیارا در مقیاس مگابایت که برای پورتفولیو معمولاً زیر ۱۵۰ مگابایت بسیار پایدار است.
|
||||
* کالاوت قرمز (`<details class="red">`): خطر نشت حافظه (Memory Leak)؛ ذخیره آرایههای غولپیکر در متغیرهای سراسری خارج از توابع که سرور را وادار به ریستارت مداوم میکند.
|
||||
|
||||
### آنچه نباید وارد آن شویم (Out-of-Scope):
|
||||
- نصب سیستمهای پیچیده پایش کلاستری Prometheus و Grafana.
|
||||
- تنظیمات شبکه SDN دیتاسنترها.
|
||||
|
||||
---
|
||||
|
||||
## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
|
||||
|
||||
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|
||||
| :--- | :--- | :--- |
|
||||
| Golden Signals | سیگنالهای طلایی سلامت | چهار معیار کلیدی سنجش عملکرد و قابلیت اطمینان سیستمهای نرمافزاری تحت شبکه |
|
||||
| Latency (p95) | تاخیر صدک نود و پنج | حداکثر زمانی که طول میکشد تا ۹۵٪ کاربران پاسخ درخواست خود را دریافت کنند |
|
||||
| Saturation | اشباع منابع | میزان پر بودن یا نزدیک شدن ظرفیت پردازنده، حافظه یا شبکه به سقف ۱۰۰ درصدی |
|
||||
| Memory Leak | نشت حافظه | باگی که در آن حافظه اشغالشده پس از اتمام کار آزاد نشده و سرور را به سمت کرش OOM میبرد |
|
||||
| OOM (Out of Memory) | خطای اتمام حافظه | وضعیتی که سیستمعامل به دلیل پر شدن ۱۰۰٪ رم، فرآیند اجرای برنامه را اجباراً متوقف میکند |
|
||||
| Connection Pooling | استخر اتصالات دیتابیس | مدیریت اشتراکی کانکشنهای پایگاه داده برای جلوگیری از باز شدن صدها اتصال همزمان سنگین |
|
||||
|
||||
---
|
||||
|
||||
## ۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
|
||||
> **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` ذخیره شده و در جدول تکخانهای وسطچین درج شوند:
|
||||
|
||||
1. **تصویر کاور درس:** `images/cover.png`
|
||||
* **موضوع:** مانیتورهای نئونی مدرن با نمودارهای ضربان قلب دیجیتال، مصرف رم و پردازنده و عقربههای سرعت لود صفحات.
|
||||
2. **چهار سیگنال طلایی سلامت سیستم:** `images/four-golden-signals-infographic.png`
|
||||
* **موضوع:** اینفوگرافیک ۴ گانه: تاخیر (کرنومتر)، ترافیک (موج ورودی)، خطا (آیکون ارور قرمز)، و اشباع (گیج نشانگر رم و سیپییو).
|
||||
3. **نمودارهای مصرف منابع در داشبورد لیارا:** `images/liara-metrics-graphs.png`
|
||||
* **موضوع:** اسکرینشات از پنل پایش لیارا با خطوط نمودار مصرف رم و پردازنده بر حسب درصد و مگابایت در طول ۲۴ ساعت.
|
||||
4. **داشبورد متریکهای پایگاه داده Supabase:** `images/supabase-database-metrics.png`
|
||||
* **موضوع:** اسکرینشات از بخش Database Metrics در سوپابیس با نمودار کانکشنهای فعال و فضای اشغالشده دیسک.
|
||||
|
||||
---
|
||||
|
||||
## ۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (`README.md`)
|
||||
|
||||
1. **تیتر اصلی:** `# مشاهدهپذیری و مانیتورینگ منابع سرور (Observability & Monitoring)`
|
||||
2. **مقدمه:** سایت بالا آمد؛ اما چگونه مثل یک پزشک متخصص، ضربان قلب و علائم حیاتی سرور خود را از راه دور رصد کنیم؟
|
||||
3. **جدول کاور درس**
|
||||
4. **استعاره رانندگی با سرعت ۲۰۰ کیلومتر با داشبورد خاموش!**
|
||||
* اگر عقربه بنزین، دمای آب و سرعتسنج نباشد، هر لحظه منتظر انفجار موتور باشید.
|
||||
5. **معرفی ۴ سیگنال طلایی گوگل برای سنجش پایداری وب:**
|
||||
* تاخیر (Latency)، ترافیک (Traffic)، خطاها (Errors)، و اشباع منابع (Saturation).
|
||||
6. **خوانش نمودارهای مصرف در پلتفرم ابری لیارا:**
|
||||
* بررسی رم و پردازنده؛ چه موقع سرور زیر بار کم میآورد و نیاز به افزایش پلن دارد؟
|
||||
7. **کالبدشکافی خطای مرگبار Out of Memory (OOM):**
|
||||
* چرا رم سرور پر میشود و چطور با کدهای استاندارد از نشت حافظه جلوگیری کنیم؟
|
||||
8. **پایش اتصالات پایگاه داده در Supabase:**
|
||||
* مفهوم Connection Pooling و جلوگیری از قفل شدن دیتابیس توسط اکشنهای سرور.
|
||||
9. **باکس نکته Quera (`<details class="violet">`):** جادوی شاخص صدک ۹۵ام (p95)؛ چرا میانگینها دروغ میگویند و تاخیر افراد با اینترنت ضعیف را پنهان میکنند.
|
||||
10. **باکس هشدار Quera (`<details class="red">`):** هرگز فایلهای بزرگ یا استریمهای ویدیویی را بدون کش روی سرور اصلی پردازش نکنید؛ فشار آنی پردازنده مساوی با قطع سایت خواهد بود.
|
||||
11. **باکس رضایتبخش Quera (`<details class="green">`):** تماشای نمودارهای آرام و سبز مصرف منابع پورتفولیو پس از استقرار موفق و پایدار.
|
||||
12. **جمعبندی درسنامه:** تسلط بر پایش منابع سرور؛ ورود به مبحث حیاتی هشدارهای زنده و سیستم اعلان آپتایم ۲۴ ساعته در درس بعدی.
|
||||
|
||||
---
|
||||
|
||||
## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
|
||||
- [ ] تمایز میان Monitoring سطحی و Observability عمیق تبیین شود.
|
||||
- [ ] سیگنالهای چهارگانه طلایی به همراه شاخصهای آماری نظیر p95 تشریح گردند.
|
||||
- [ ] نحوه خواندن داشبوردهای مصرف منابع در لیارا و ورسل آموزش داده شود.
|
||||
- [ ] مفهوم خطای OOM و روشهای پیشگیری از نشت حافظه لحاظ گردد.
|
||||
Reference in New Issue
Block a user