پرش به مطلب اصلی

استقرار مجدد (Redeploy)

🖼
تصویر: استقرار مجدد اپلیکیشنplaceholder — تصویر را اینجا جایگزین کنید

گاهی نیاز دارید بدون تغییر در کدها، اپلیکیشن را مجدداً راه‌اندازی کنید. استقرار مجدد (Redeploy) نسخه فعلی را با پیکربندی‌های جدید بارگذاری می‌کند.


موارد کاربرد استقرار مجدد

  • تغییر متغیرهای محیطی یا Secrets: اعمال فوری تنظیمات محیطی جدید بدون نیاز به بیلد و کامپایل مجدد کدها.
  • رفع خطاهای زمان اجرا: اگر فرآیند بیلد قبلی درست بوده اما به دلیل خطای موقت زمان اجرا، برنامه متوقف شده است.
  • پاک‌سازی حافظه و اتصالات قفل‌شده: بازنشانی کامل کانتینرها جهت پاک‌سازی نشت حافظه (Memory Leaks) یا اتصالات معلق دیتابیس.
  • راه‌اندازی مجدد اضطراری: سریع‌ترین راه برای بازگرداندن برنامه به حالت پایدار اولیه.

روش اول — از طریق داشبورد وب

۱. به بخش برنامه‌ها (Apps) رفته و برنامه مورد نظر خود را انتخاب کنید. ۲. روی زبانه تغییرات و استقرارها (Deployments) کلیک کنید. ۳. در لیست استقرارهای گذشته، نسخه موفق مورد نظر خود را پیدا کنید. ۴. روی دکمه «استقرار مجدد» (Redeploy) در مقابل آن نسخه کلیک کنید.

سیستم به‌طور خودکار:

  • از همان تصویر بیلدشده قبلی (Docker Image) استفاده می‌کند و هیچ فرآیند بیلد زمان‌بری رخ نخواهد داد.
  • یک رکورد استقرار جدید ثبت می‌کند.
  • پادهای جدید (Pods) را با متغیرهای محیطی فعلی راه‌اندازی و پادهای قدیمی را به مرور حذف می‌کند.

روش دوم — از طریق ابزار CLI

برای اجرای استقرار مجدد روی برنامه جاری از طریق ترمینال، دستور زیر را وارد کنید:

abrclick redeploy <app-slug>

همچنین می‌توانید یک شناسه بیلد مشخص (Deployment ID) را برای استقرار مجدد هدف بگیرید:

abrclick redeploy <app-slug> --deployment-id <deployment-id>

پیگیری فرآیند

پس از تایید، می‌توانید وضعیت را بررسی کنید:

  • داشبورد: در زبانه Deployments وضعیت پادها را مشاهده کنید.
  • لاگ‌های CLI:
    abrclick logs <app-slug>
  • متریک‌ها: در بخش مانیتورینگ، روند جایگزینی پادها را ببینید.

نکات مهم

  • استفاده مجدد از Image: چون image از قبل build شده، redeploy معمولاً زیر ۱۰ ثانیه انجام می‌شود.
  • متغیرهای محیطی: تغییرات اخیر در Environment Variables به‌طور کامل اعمال می‌شوند.
  • Zero-Downtime: ابرکلیک با Rolling Update، ابتدا کانتینر جدید را آماده می‌کند و سپس ترافیک را هدایت کرده و کانتینر قدیمی را خاموش می‌کند. کاربران قطعی حس نمی‌کنند.
  • Grace Period: پادهای قدیمی ۳۰ ثانیه فرصت دارند تا connection‌ها را ایمن ببندند.