رفتار پیشفرض
در انتشار برنامههای دارای دیسک RWO، پاستا محل اجرای فعلی را تا زمانی که سالم و قابل زمانبندی باشد حفظ میکند. پیشفرض، تعویض ترتیبی است: نسخهٔ قبلی متوقف میشود و سپس نسخهٔ جدید شروع میشود. این حالت قطعی کوتاه دارد و از اجرای همزمان دو نسخه روی دادهٔ مشترک جلوگیری میکند. هنگام خرابی یا تخلیهٔ محل اجرا، قید قبلی برداشته میشود؛ انتقال ایمن دیسک ممکن است زمان ببرد.
انتشار همزمان با انتخاب صریح
فقط اگر برنامه و تغییر ساختار دادهٔ آن اجرای همزمان دو نسخه و نوشتن مشترک روی دیسک را پشتیبانی میکنند، در بخش متغیرهای پروژه مقدار PAASTA_RWO_ROLLING_UPDATE=true را ثبت کنید و سپس استقرار تازهای بسازید. سیاست تازه از استقرار بعدی اعمال میشود؛ ذخیرهٔ متغیرها بهتنهایی سیاست انتشار موجود را تغییر نمیدهد. در Compose این انتخاب در متغیرهای مشترک پروژه ثبت میشود و برای سرویسهای دارای دیسک RWO همان پروژه اعمال میشود.
نسخهٔ جدید کنار نسخهٔ قبلی اجرا میشود و نسخهٔ قبلی تا آمادهشدن نسخهٔ جدید باقی میماند. Health Check باید آمادهبودن واقعی برنامه را تأیید کند. محل اجرا باید ظرفیت موقت برای هر دو نسخه داشته باشد؛ در صورت کمبود ظرفیت، نسخهٔ قبلی حفظ میشود و استقرار منتظر میماند. این حالت تضمین قطعی صفر در خرابی برنامه، شبکه یا دیسک نیست.
چه زمانی فعال نکنیم؟
برای برنامههای تکنویسنده، SQLite بدون طراحی مناسب برای همزمانی، مهاجرت ناسازگار داده یا پردازشهایی که اجرای تکراری ندارند، تعویض ترتیبی را نگه دارید. قالبهای n8n، WordPress، GitLab و Uptime Kuma همچنان ترتیبی منتشر میشوند. اشتراک دیسک روی یک محل اجرا بهتنهایی به معنی سازگاری برنامه با چند نویسنده نیست.
بازگشت به حالت ترتیبی
متغیر PAASTA_RWO_ROLLING_UPDATE را حذف کنید یا مقدار آن را false بگذارید و سپس استقرار تازه بسازید. حذف متغیر، فایلهای دیسک را حذف یا جابهجا نمیکند. در برنامههای بدون دیسک RWO این متغیر رفتار انتشار را تغییر نمیدهد.