42 lines
3.5 KiB
Markdown
42 lines
3.5 KiB
Markdown
# دواپس و مانیتورینگ سیستم (DevOps & Monitoring)
|
||
|
||
این مستند توضیحاتی در مورد پایش مستمر سامانه و اتوماسیون (CI/CD) پس از انتشار ارائه میدهد. هدف این است که اطمینان حاصل شود سرورها همیشه با بالاترین بهرهوری در حال اجرا هستند و کدهای جدید با کمترین خطا دیپلوی میشوند.
|
||
|
||
## ۱. فرآیند استقرار خودکار (CI/CD)
|
||
در تیمهای بزرگ برای جلوگیری از بروز خطای انسانی در سرور، از فرآیند استقرار خودکار استفاده میشود.
|
||
|
||
- کدهای جدید ابتدا در برنچهای مختلف توسعه داده شده و پس از تست (توسط GitHub Actions یا ابزارهای مشابه) به شاخه `main` یا `production` مرج میشوند.
|
||
- یک اکشن در گیتهاب پس از Push شدن کدهای جدید به صورت خودکار تغییرات را بیلد کرده و بر روی سرور کپی میکند.
|
||
- برای انجام دستی این کار یک اسکریپت در سرور وجود دارد که آخرین کدها را `git pull` کرده، دستورات نصب وابستگی و `npm run build` را اجرا و در نهایت سرویسهای PM2 را ریاستارت میکند.
|
||
|
||
## ۲. مانیتورینگ عملکرد (PM2 Dashboard)
|
||
با توجه به اینکه سامانه روی پلتفرم Node.js و از طریق مدیریت فرآیند `pm2` اجرا میشود، بهترین راه برای نظارت محلی (Local Server Monitoring) استفاده از دستورات زیر است:
|
||
|
||
- **مشاهده داشبورد منابع:**
|
||
```bash
|
||
pm2 monit
|
||
```
|
||
این دستور در ترمینال یک محیط گرافیکی را نشان میدهد که میزان مصرف CPU و RAM برای سرویسهای فرانتاند و بکاند را نمایش میدهد.
|
||
|
||
- **مشاهده لیست وضعیت برنامهها:**
|
||
```bash
|
||
pm2 list
|
||
```
|
||
نمایش Uptime (میزان زمان روشن ماندن) و وضعیت اجرا. اگر سرویسی Crash کرده باشد، در این لیست مشخص خواهد بود.
|
||
|
||
## ۳. بررسی لاگهای سیستم (Logs Management)
|
||
سیستم لاگین بکاند (NestJS) ارورهای پایگاه داده و ریکوئستهای ناموفق را ثبت میکند. خطاهای رندرینگ فرانتاند نیز در لاگهای اجرای اپلیکیشن قابل ردیابی است.
|
||
|
||
- برای مشاهده لاگهای زنده سیستم از این دستور استفاده کنید:
|
||
```bash
|
||
pm2 logs
|
||
```
|
||
- برای فیلتر کردن لاگهای مشخص، مثلاً فقط بکاند:
|
||
```bash
|
||
pm2 logs canino-api --lines 100
|
||
```
|
||
|
||
## ۴. مانیتورینگ دیتابیس (PostgreSQL)
|
||
از آنجا که پایگاه داده یکی از گلوگاههای اصلی (Bottlenecks) سرعت در سیستمهای فروشگاهی است، میتوانید در صورت بروز کندی سیستم از ابزار `pg_stat_statements` برای ردیابی کوئریهای کُند (Slow Queries) در دیتابیس استفاده کنید.
|
||
همچنین پیشنهاد میشود از دیتابیس به صورت دورهای بکآپ گرفته و لاگهای بکآپ را در سرور مانیتورینگ نظارت کنید.
|