استقرار بدون اختلال

(Zero Downtime Deployment)

به صورت پیش‌فرض، همه‌ی برنامه‌هایی که در لیارا ساخته می‌شوند، از قابلیت «استقرار بدون اختلال» بهره می‌برند. و این قابلیت به این معناست که برنامه‌ی شما همیشه بالا و در حال اجرا خواهد بود، حتی اگر بعد از این که تغییراتی در سورس‌کدتان دادید و استقرار جدیدی برای انتقال آن‌ها به برنامه ایجاد کردید، باز هم برنامه‌ی‌تان در حال اجرا باقی خواهد ماند.

زمانی که این قابلیت فعال است، همه‌ی استقرارهای جدید در پس زمینه و بدون ایجاد اختلال برای سرویس اصلی رخ می‌دهند و در صورتی که استقرار جدید به درستی مستقر شد و پایدار بود، ترافیک به استقرار جدید هدایت شده و نسخه‌ی قدیمی خاموش و حذف می‌شود و برای همین کاربران شما متوجه اختلالی نمی‌شوند و برنامه بدون خارج‌شدن از دسترس، سرویس‌دهی می‌کند.

docker zero downtime deployment

برای تشخیص پایدار بودن وضعیت استقرار جدید، لیارا قابلیتی را به نام «بررسی وضعیت سلامتی برنامه» فراهم کرده است. در صورتی که وضعیت سلامتی یک برنامک، «سالم» باشد، به عنوان نسخه‌ی جدید برنامه تایید می‌شود و ترافیک به روی آن منتقل می‌گردد. در غیر این‌صورت،‌ عملیات استقرار لغو می‌شود.

همچنین، لیارا این امکان را فراهم کرده است که به طور زنده، وضعیت برنامک‌های برنامه‌ی‌تان را مشاهده کنید. در واقع بعد از این که استقرار جدیدی ایجاد می‌کنید، می‌توانید وارد صفحه‌ی «برنامک‌ها» شده و به صورت زنده مشاهده کنید که چگونه برنامک جدید ایجاد شده و جایگزین برنامک قبلی می‌شود.

همان‌طور که گفته شد، چنان‌چه بررسی وضعیت سلامت برنامک جدید ناموفق باشد، عملیات استقرار انجام نمی‌گیرد. حتی اگر از قابلیت «بررسی وضعیت سلامت» استفاده نمی‌کنید، باز هم لیارا به صورت پیش‌فرض مواردی را چک می‌کند تا بتواند «استقرار بدون اختلال» را محقق کند. برای مثال، اگر استقرار جدیدی انجام دهید و برنامک جدید چند ثانیه بعد از اجرا شدن، کرش کند و خاموش شود، لیارا همچنان ترافیک را به برنامک قبلی‌تان هدایت می‌کند چرا که استقرار جدید پایدار نیست و کرش می‌کند. این کرش‌ها ممکن است به دلیل یک خطا در سینتکس کدهای‌تان باشد و یا هر دلیل دیگری که با مشاهده‌ی لاگ‌ها می‌توانید خطا را یافته و آن را رفع کنید و استقرار جدیدی ایجاد کنید و در تمام این مدت، خیال‌تان راحت است که برنامک فعلی همچنان بدون مشکلی در حال اجراست و کاربران‌تان متوجه اختلالی نمی‌شوند.

فعال یا غیر فعال‌کردن

قابلیت «استقرار بدون اختلال» به صورت پیش‌فرض برای برنامه‌های جدید فعال است. اگر برنامه‌ی شما قبل از ارائه‌ی این قابلیت ساخته شده است، می‌توانید از صفحه‌ی تنظیمات برنامه فعال‌اش کنید.

زمانی که این قابلیت فعال است و شما استقرار جدیدی انجام می‌دهید، لیارا برنامک قبلی شما را خاموش نمی‌کند. بلکه برنامک جدیدی را در پس‌زمینه ایجاد می‌کند تا مطمئن شود برنامک جدید پایدار است و بعد ترافیک را به برنامک جدید هدایت می‌کند. و این یعنی زمان‌هایی وجود دارد که برای برنامه‌ی شما دست کم ۲ برنامک موازی ساخته می‌شود.

داشتن ۲ برنامک و یا بیشتر، برای اکثر برنامه‌ها جای نگرانی ندارد و مزایای زیادی را هم فراهم می‌کند. اما ممکن است شما از قابلیتی مانند «دیسک» استفاده می‌کنید و معماری نرم‌افزار شما به‌گونه‌ای است که صلاح می‌دانید که در هر لحظه از زمان، باید تنها یک برنامک از برنامه‌ی‌تان در حال اجرا باشد.

;