Skip to Content
سکوی ابری (PaaS)محیط‌ها و ریلیزها

محیط‌ها، Deploy و عملیات

محیط‌ها و preview

production برای کاربران نهایی، staging برای تأیید قبل از انتشار و preview برای تغییر کوتاه‌عمر است. branch، auto-deploy و variableهای هر محیط را مستقل نگه دارید. در preview از credential و داده production استفاده نکنید. GitHub می‌تواند برای Pull Request سرویس preview بسازد و پس از بسته‌شدن PR آن را جمع کند.

Build، release و عملیات پایدار

Build artifact سورس را ثبت می‌کند؛ release یک build و snapshot تنظیمات را در محیط فعال می‌کند. وضعیت‌هایی مثل queued، building، ready و failed مربوط به build هستند. deploy، lifecycle، exposure و deletion عملیات قابل پیگیری‌اند و ممکن است تا رسیدن به حالت terminal چند مرحله داشته باشند.

Rollback و promote

Rollback یک build آماده قبلی را بدون ساخت دوباره به release جدید تبدیل می‌کند. این کار schema دیتابیس را عقب نمی‌برد؛ migration باید backward-compatible یا دارای برنامه جداگانه باشد. Promote همان artifact آزمایش‌شده را به محیط مقصد می‌برد و تفاوت ناشی از rebuild را حذف می‌کند.

Git و deploy hook

با فعال‌بودن auto-deploy، push روی branch متصل build جدید می‌سازد و وضعیت commit در GitHub ثبت می‌شود. Deploy hook یک credential در URL است و برای CI استفاده می‌شود؛ اگر افشا شد آن را rotate کنید. Watch path در monorepo از deployهای نامرتبط جلوگیری می‌کند.

Web، worker، cron و replica

  • web ترافیک HTTP یا TCP می‌گیرد؛
  • worker بدون endpoint عمومی کار پس‌زمینه انجام می‌دهد؛
  • cron طبق عبارت cron اجرا می‌شود و هر run وضعیت، زمان و exit code دارد؛
  • replicaهای بیشتر process را افقی تکثیر می‌کنند؛ برنامه باید stateless باشد یا state مشترک را در Add-on نگه دارد.

مشاهده و کنترل

لاگ runtime از stdout/stderr می‌آید. Metrics مصرف CPU/RAM و ترافیک را نشان می‌دهد. Restart process جاری را بازراه‌اندازی می‌کند، Stop سرویس را در حالت stopped نگه می‌دارد و Start آن را دوباره اجرا می‌کند. تغییر image، command، variable یا release ممکن است reprovision ایجاد کند.

پیش از Delete از Volume و دیتابیس بکاپ بگیرید. حذف resource با Stop فرق دارد و می‌تواند داده و endpoint را برای همیشه آزاد کند.