محیطها
محیط یک نسخهٔ جدا از کل اپلیکیشن است: سرویسها، دیتابیسها و متغیرهای خودش را دارد. معمولاً یکی «عملیاتی» (production) است که کاربران واقعی میبینند، و یکی «آزمایشی» (staging) که تغییرات را اول آنجا امتحان میکنید. محیطهای «پیشنمایش» را گردو برای Pull Requestها خودکار میسازد.
بالای صفحهٔ اپلیکیشن، از فهرست محیطها بین آنها جابهجا میشوید. هر چیزی که میبینید و تغییر میدهید مال همان محیط است.
ساخت محیط
فرم «محیط جدید» را باز کنید
دو راه دارید: از فهرست محیطها کنار نام اپلیکیشن (همانجا که production نوشته شده) «محیط جدید» را بزنید، یا پنل «محیطها و متغیرها» را باز کنید. فرم پنل یک محیط خالی میسازد؛ برای کپی از یک محیط موجود، از فهرست کنار نام اپلیکیشن استفاده کنید.
نوع و شروع را انتخاب کنید
- نوع محیط: عملیاتی، آزمایشی یا پیشنمایش.
- کپی از یک محیط: همهٔ سرویسها، دیتابیسها، متغیرها و اتصالهای یک محیط کپی میشوند. دامنهها و دادههای ذخیرهشده کپی نمیشوند؛ دیتابیسهای تازه خالیاند.
- محیط خالی: بدون هیچ سرویس یا متغیری، از صفر.
شاخهٔ گیت را بگذارید
اگر سرویسها از گیت میآیند، شاخهای را بنویسید که این محیط از آن ساخته شود (مثلاً develop برای staging). با «استقرار خودکار»، هر push روی آن شاخه همین محیط را بهروز میکند. با «استقرار دستی»، فقط وقتی خودتان بخواهید.
یک روال معمول
- production از شاخهٔ
mainو staging ازdevelopساخته میشود. - تغییر را روی
developpush میکنید و در staging امتحانش میکنید. - وقتی راضی بودید، یا
developرا درmainmerge میکنید، یا همان ساخت آزموده را با انتقال نسخه بدون ساخت دوباره به production میبرید.
متغیرهای هر محیط
متغیرهایی که زیر یک محیط تعریف میکنید فقط به سرویسهای همان محیط میرسند. کلید API آزمایشی درگاه پرداخت را در staging و کلید واقعی را در production بگذارید. متغیرها
توقف و حذف
- مالک یا ادمین میتواند کل یک محیط را متوقف کند (مثلاً staging را شبها یا آخر هفته). سرویسهای متوقف هزینهٔ CPU و RAM ندارند؛ هزینهٔ دیسک و دیتابیسها ادامه دارد.
- «حذف محیط» همهٔ سرویسها و دیتابیسهای آن محیط را حذف میکند. قبلش از هر چیزی که لازم دارید نسخهٔ پشتیبان بگیرید.
محیط هزینهٔ جدا ندارد؛ فقط سرویسها و دیتابیسهای داخلش مصرف حساب میشوند. یک staging کوچک معمولاً خیلی کمتر از production مصرف دارد.