استقرار بدون داون‌تایم

(Zero Downtime Deployment)

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

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

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

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

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

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

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

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

داشتن ۲ برنامک و یا بیشتر، برای اکثر برنامه‌ها جای نگرانی ندارد و مزایای زیادی را هم فراهم می‌کند. اما ممکن است شما از قابلیتی مانند «Volume» استفاده می‌کنید و صلاح می‌دانید که در هر نقطه از زمان، باید تنها یک برنامک از برنامه‌ی‌تان در حال اجرا باشد. اگر دیتابیس دلخواهی را در بخش «برنامه‌ها» مستقر کرده‌اید، بهتر است که این قابلیت را غیر فعال کنید. چون معمولا دیتابیس‌ها انتظار تنها یک برنامک را دارند که فایل‌سیستم را ویرایش کند. برای مثال، در حال حاضر لیارا سرویس RabbitMQ را مستقیما ارائه نمی‌کند اما شما این امکان را دارید که Docker Image این سرویس را از بخش برنامه‌ها دیپلوی کنید و استفاده کنید. برای چنین سرویسی، بهتر است که قابلیت «استقرار بدون داون‌تایم» را غیر فعال کنید چون داشتن بیش از یک برنامک برای این‌گونه سرویس‌ها مناسب نیست.