استقرار بدون توقف سرویس با Docker Compose؛ راهنمای گامبهگام
آپدیت رولینگ، health check ها و ترتیب دقیق فلگها؛ چطور یک استک Docker Compose را بدون افتادن حتی یک درخواست بهروزرسانی کنیم.
- Home-
- Categories-
- دواپس و استقرار-
استقرار بدون توقف سرویس با Docker Compose؛ راهنمای گامبهگام
استقرار بدون توقف سرویس با Docker Compose
هدف
راهاندازیِ مجددی که سایت را چند ثانیه آفلاین کند، استقراری است که بیسروصدا شکست خورده. با یک ریورس پراکسی جلوی سرویسها و یک health check پشت آن، میشود استک را طوری بهروزرسانی کرد که کانتینر قدیمی تا وقتی جدید آماده شود به درخواستها پاسخ دهد.
اول health check ها
کامپوز به شما اجازه میدهد برای هر سرویس یک healthcheck تعریف کنید.
- پراکسی فقط به کانتینرهایی که «healthy» اعلام شدهاند ترافیک بدهد.
- اندپوینت سلامت فقط ۲۰۰ نباشد؛ باید اتصال به دیتابیس پشت آن را هم بررسی کند.
- برای بوت اول، start_period سخاوتمندانه بگذار.
تاکتیک بهروزرسانی
وقتی `docker compose up -d` اجرا میکنید، کامپوز کانتینرهای تغییرکرده را یکییکی بازسازی میکند. این را کنار یک پراکسی در حال اجرا بگذارید و یک آپدیت رولینگ رایگان دارید.
- مهاجرتها و کارهای طولانی را بهعنوان سرویس جداگانهی one-shot و قبل از ریاستارت وب اجرا کن.
- بگذار کانتینر جدید قبل از حذف کانتینر قدیمی به حالت healthy برسد.
- هنگام جابهجایی لاگها را تماشا کن؛ برنامه «بگذار و برو» نیست.
دیپلوی این وبلاگ واقعاً چه میکند
اسکریپت استقرار این سایت تصاویر جدید را میکشد، قبل از مهاجرتها یک گارد اجرا میکند، کانتینرهای جدید را بالا میآورد و بعد از آن URL سلامت میگیرد تا قبل از اعلام موفقیت، ۲۰۰ بودن را ببیند. همین قدمِ راستیآزمایی است که استقرار را از آرزو به واقعیت تبدیل میکند.
جمعبندی
عدم توقف سرویس ترکیبی از عادتهای کوچک است: اندپوینت سلامتِ واقعی، پراکسیای که به آن احترام میگذارد و اسکریپتی که زود خوشحال نمیشود. بررسیها را خودکار کن؛ همکارانت تشکر میکنند.
210
2400
you might also like...
Rolling updates, health checks and the careful order of flags — how to update a Docker Compose stack without dropping a single request.


