3.5 KiB
دواپس و مانیتورینگ سیستم (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) استفاده از دستورات زیر است:
-
مشاهده داشبورد منابع:
pm2 monitاین دستور در ترمینال یک محیط گرافیکی را نشان میدهد که میزان مصرف CPU و RAM برای سرویسهای فرانتاند و بکاند را نمایش میدهد.
-
مشاهده لیست وضعیت برنامهها:
pm2 listنمایش Uptime (میزان زمان روشن ماندن) و وضعیت اجرا. اگر سرویسی Crash کرده باشد، در این لیست مشخص خواهد بود.
۳. بررسی لاگهای سیستم (Logs Management)
سیستم لاگین بکاند (NestJS) ارورهای پایگاه داده و ریکوئستهای ناموفق را ثبت میکند. خطاهای رندرینگ فرانتاند نیز در لاگهای اجرای اپلیکیشن قابل ردیابی است.
- برای مشاهده لاگهای زنده سیستم از این دستور استفاده کنید:
pm2 logs - برای فیلتر کردن لاگهای مشخص، مثلاً فقط بکاند:
pm2 logs canino-api --lines 100
۴. مانیتورینگ دیتابیس (PostgreSQL)
از آنجا که پایگاه داده یکی از گلوگاههای اصلی (Bottlenecks) سرعت در سیستمهای فروشگاهی است، میتوانید در صورت بروز کندی سیستم از ابزار pg_stat_statements برای ردیابی کوئریهای کُند (Slow Queries) در دیتابیس استفاده کنید.
همچنین پیشنهاد میشود از دیتابیس به صورت دورهای بکآپ گرفته و لاگهای بکآپ را در سرور مانیتورینگ نظارت کنید.