رولبک یعنی بعد از انتشار نسخهی جدید، اگر خطای جدی پیدا شد، به نسخهی قبلی که درست کار میکرد برگردید. هدف این است که کاربران کمتر آسیب ببینند و مشکل را بعداً با فراغ بال بررسی کنید.
مثال#
شما قالب یا افزونهی سایت فروشگاهی را بهروز میکنید و ناگهان دکمهی پرداخت کار نمیکند. بهجای اینکه در بحران دنبال علت بگردید، اول نسخهی قبلی را برمیگردانید تا فروش ادامه پیدا کند. بعد روی محیط آزمایشی علت را پیدا میکنید.
چه چیزهایی را باید بتوان برگرداند#
- کد: معمولاً با گیت و برچسب نسخه (Tag) ساده است.
- فایلها: با نگهداشتن نسخههای قبلی استقرار.
- پایگاه داده: سختترین بخش است؛ اگر ساختار جدولها تغییر کرده یا دادهی جدید ثبت شده، برگرداندن ساده نیست.
برای رولبکپذیری چه کنیم#
- پیش از هر انتشار بکاپ کامل بگیرید.
- تغییرات پایگاه داده را سازگار با نسخهی قبل بنویسید (مثلاً ستون جدید اضافه کنید و بعداً قدیمی را حذف کنید).
- انتشار تدریجی انجام دهید تا اگر مشکل پیش آمد فقط بخشی از کاربران درگیر شوند.
- مراحل رولبک را از قبل بنویسید و آزمایش کنید.
اشتباه رایج#
فرض کردن اینکه همیشه برگشت ممکن است. اگر برنامه دادهی کاربران را به شکل جدیدی ذخیره کرده، برگشت به کد قدیمی ممکن است داده را خراب کند. به همین دلیل طراحی انتشار باید از اول به فکر راه برگشت باشد، نه اینکه بعد از خطا به آن فکر شود.