Bir kod tabanından birden fazla ortam dağıtma

Aynı kod tabanından, her biri biraz farklı yapılandırmaya sahip birden fazla ortamın dağıtılması yaygın bir durumdur. Örneğin, hazırlık ortamınıza daha az CPU ve RAM atamak veya üretim ortamınızın en az 1 örneğin etkin ve istekleri hizmet vermeye hazır olduğundan emin olmak isteyebilirsiniz.

Ortamlar hakkında daha fazla bilgi edinmek için Ortamlara genel bakış ve Firebase projeleri oluşturmak için genel en iyi uygulamalar sayfalarına göz atın.

Ön koşullar

0. Adım: Üretim git dalınızı ayarlayın

Üretim ortamınızı main şubenizden dağıtmayı tercih ederseniz bir sonraki adıma geçin. Örneğin, şu gibi başka bir şubeden üretim dağıtmak istiyorsanız: production, önce GitHub'da oluşturmanız gerekir.

GitHub kullanıcı arayüzüyle üretim dalınızı oluşturmak için Kod deponuzda dal oluşturma ve silme bölümüne bakın.

Üretim dalınızı yerel olarak oluşturmak için:

$ git checkout -b production
$ git push origin production:production

1. Adım: Üretim apphosting.yaml dosyanızı yapılandırın

Üretiminizde her zaman en az 1 makinenin çalıştığından ve üretime özgü bazı ortam değişkenlerine sahip olduğundan emin olmak istediğinizi düşünelim. Projenizin kök düzeyinde aşağıdaki gibi bir apphosting.yaml dosyası oluşturarak bunu yapılandırabilirsiniz:

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

Desteklenen ayarların tam listesini görmek için Uygulama Barındırmayı Yapılandırma bölümüne bakın.

apphosting.yaml öğesini düzenledikten sonra GitHub deponuza aktarın:

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

2. Adım: Kod tabanınızı üretime dağıtın

Üretim git dalınız yapılandırıldıktan sonra yeni üretim Uygulama Barındırma arka ucunuzu oluşturabilirsiniz. Ayrıntılı talimatlar için Uygulama Barındırma'yı kullanmaya başlama bölümüne bakın.

Firebase Konsolu ile yeni bir arka uç oluşturmak için https://console.firebase.google.com/project/_/apphosting adresine gidin.

Yerel olarak oluşturmak için önce Firebase CLI'ı yüklemeniz ve ardından şunu çalıştırmanız gerekir:

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

Bu komut başarılı olduğunda üretim arka ucunuz çalışır durumda olmalıdır ve üretim dalınıza yapılan tüm yeni taahhütler App Hosting tarafından otomatik olarak derlenir ve dağıtılır.

3. Adım: Hazırlama git dalınızı ayarlayın

GitHub'da hazırlık dalınızı oluşturmak için yukarıdaki adımları uygulayın:

$ git checkout -b staging
$ git push origin staging:staging

4. Adım: Hazırlık apphosting.yaml dosyanızı yapılandırın

Hazırlık dalınızda zaten üretim apphosting.yaml dosyanızın bir kopyası bulunmalıdır. Bunu, App Hosting'in aktif olarak kullanılmadığında hazırlık ortamınızı kapatabileceği ve STORAGE_BUCKET ortam değişkeni için farklı bir değer ayarlayabileceği şekilde değiştirelim.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

Düzenlemelerinizi bitirdikten sonra dosyayı hazırlık git dalınıza aktarın:

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

5. Adım: Kod tabanınızı hazırlık için dağıtın

Hazırlama git dalınız yapılandırıldıktan sonra kod tabanınızı hazırlık aşamasına dağıtmak için yukarıdaki adımları uygulayabilirsiniz:

firebase apphosting:backends:create --project <replace with your STAGING project ID>

Bu adımı tamamladıktan sonra her biri farklı bir Firebase projesinde olmak üzere, biri üretim ve diğeri hazırlık için olmak üzere aynı kod tabanı tarafından desteklenen iki App Hosting arka ucunuz olur.

Sonraki adımlar