
Docker Compose برای توسعه محلی عالی است: سرویسها، شبکه، متغیرهای محیطی و Volumeها در یک فایل کنار هم قرار میگیرند. مسئله زمانی شروع میشود که همان پروژه باید پایدار، قابل ارتقا و قابل پایش روی Kubernetes اجرا شود. پاستا Compose را تحلیل میکند و هر سرویس را به یک واحد مستقل در گروه پروژه تبدیل میکند.
پاستا از Compose چه چیزهایی را تشخیص میدهد؟
- سرویسهای دارای
buildو Dockerfile اختصاصی - سرویسهایی که مستقیماً از Image آماده اجرا میشوند
- پورتها، Health Check و وابستگی میان سرویسها
- متغیرهای محیطی، Secretها و فایلهای پیکربندی
- Named Volumeها و مسیرهای داده پایدار
- PostgreSQL، MySQL، MongoDB و Redis قابل تبدیل به سرویس مدیریتشده
چرا هر سرویس باید مستقل باشد؟
قرار دادن تمام کانتینرهای Compose داخل یک Pod ساده به نظر میرسد، اما مقیاسپذیری و عیبیابی را محدود میکند. وقتی Web، Worker و Scheduler جدا باشند، هر کدام منابع، Replica، لاگ و وضعیت سلامت مستقل دارند. خرابی Worker باعث Restart شدن Web نمیشود و میتوانید فقط بخش پرترافیک را بزرگتر کنید.
دیتابیس داخل Compose یا دیتابیس مدیریتشده؟
برای محیط Production، دیتابیس مدیریتشده معمولاً انتخاب مطمئنتری است. پاستا سرویسهای شناختهشده دیتابیس را در مرحله بررسی نشان میدهد تا نسخه، پلن، اندازه دیسک و هزینه را پیش از استقرار انتخاب کنید. سپس مقادیر اتصال قبلی Compose با Secretهای امن جایگزین میشوند.
Volume و فایلهای پیکربندی
Named Volume به PersistentVolume تبدیل میشود. Bind mountهایی که فقط برای تنظیمات هستند، در صورت امکان به ConfigMap یا Secret تبدیل میشوند. مسیرهایی مثل سورس محلی توسعه نباید بدون بررسی به Production منتقل شوند. برای هر دادهای که باید پس از Restart باقی بماند یک Volume پایدار تعریف کنید.
ارتباط داخلی سرویسها
نام سرویسها در شبکه خصوصی پروژه قابل استفاده است. بهجای IP ثابت، سرویسها با نام یکدیگر ارتباط میگیرند. فقط سرویس Web که باید از اینترنت درخواست دریافت کند دامنه عمومی میگیرد؛ دیتابیس و Worker در شبکه خصوصی باقی میمانند.
چکلیست انتقال Compose
- تمام رمزها را از فایل Compose خارج و به Secret منتقل کنید.
- برای Web و Worker منابع جدا انتخاب کنید.
- Health Check واقعی هر سرویس را تعریف کنید.
- دادههای پایدار را به Volume یا دیتابیس مدیریتشده منتقل کنید.
- پس از استقرار لاگ هر سرویس را جداگانه بررسی کنید.
در صفحه هاست Docker پاستا میتوانید روشهای Dockerfile، Compose و Image آماده را مقایسه کنید.
نظرها
هنوز نظری ثبت نشده است. اولین نفر باشید.