Loading...

CONTAINER APPS · REHBER

Dağıtım hattı: push → Test Ortamı, Yayına al → Production

Git deposunu bir kez bağlayın; her push, uygulamanızın bir Test Ortamı (Staging) kopyasını deploy eder — push production'a asla dokunmaz. Yeni derlemeyi Staging'in kendi URL'inde test eder, sonra Yayına al'a tıklayarak tam da o test edilmiş sürümü canlıya alırsınız. Bir terslik görürseniz Geri al önceki sürümü (veritabanı anlık görüntüsü dahil) tek tıkla geri getirir. "Her commit production'ı yeniden deploy ediyor" kesintileri biter.

← Tüm platform rehberleri
Neye ihtiyacınız var

“Keep connected — auto-deploy on every push” açık olarak Git'ten Deploy ile yayına alınmış bir compose projesi. Ön koşulun tamamı bu: dağıtım hattı kartı, bağlı her depo için Platformlar → Container Apps'ta otomatik belirir.

Hat bir bakışta

git push ──▶ [ TEST ORTAMI ]  ──  Yayına al ──▶ [ PRODUCTION ]
              her push\'ta              manuel; test edilmiş
              yeniden deploy           derlemeyi canlıya alır
  • Test Ortamı, uygulamanızın kendi <uid>.cdn.com.tr test URL'ine sahip gerçek ve ayrı bir kopyasıdır — tıpkı production gibi CDN edge üzerinden sunulur.
  • Production, Staging derlenip deploy olurken eski sürümü dokunulmadan sunmaya devam eder. Yalnızca siz Yayına al dediğinizde değişir.
  • Geri al, her Yayına al'dan sonra hazırdır — trafik/imaj ve yayına-alma öncesi veritabanı anlık görüntüsü geri yüklenir.
Dağıtım hattı kartı: üstte depo ve branch; kendi test URL'iyle otomatik deploy olan Test Ortamı sütunu; Yayına al düğmesi; canlı URL'li Production sütunu
Platformlar → Container Apps'teki Dağıtım hattı kartı. Sol: Test Ortamı (otomatik deploy, test URL'i). Sağ: Production (canlı URL). Ortada: Yayına al.

1 · Deponuzu bağlayın (bir kez)

Platformlar → Container Apps → App creation → Deploy from Git'te GitHub'ı bağlayın (önerilen — tek tık GitHub App, yönetilecek token yok) ya da depo URL'i + erişim token'ı kullanın; depoyu ve branch'i seçin, “Keep connected — auto-deploy on every push to this branch” kutusunu işaretleyin, sonra Build & deploy. Ayrıntılar: Git'ten Deploy rehberi.

GitHub bağlanmış, depo seçici, branch ve keep-connected otomatik deploy kutulu Deploy from Git paneli
GitHub'ı bağlayın ve depoyu bağlı tutun — hattı yaratan budur.

2 · Test Ortamını açın

Hat kartında Test ortamını aç (Enable staging)'a tıklayın. Bu, deponun her uygulaması için bir test kopyası oluşturur ve otomatik deploy'u ona yönlendirir — o andan itibaren push'lar Staging'i deploy eder, Production'ı asla.

  • Test kopyası kendi public test URL'ini (<uid>.cdn.com.tr) otomatik alır. Daha önce oluşturulmuş bir kopyanın URL'i yoksa kartta Test URL'i al düğmesi görünür.
  • Veri paylaşımı (“Data sharing options” altında, varsayılan shared): shared — Staging, production ile aynı veritabanı/Redis/depolamayı kullanır (kod/arayüz değişiklikleri için en iyisi); cloned — Staging, verinin kopyasıyla kendi MySQL'ini alır (şema değişiklikleri için güvenli); isolated — temiz başlangıç.
  • Yeni bir test URL'inin ilk açılışı, edge/DNS etkinleşirken (~bir dakika) kısa süreliğine 502 dönebilir — normaldir ve tek seferliktir.
Staging henüz yokken hat kartı: Staging sütununda Test ortamını aç düğmesi, altında veri paylaşımı seçenekleri
İlk çalıştırma: Test ortamını aç, test kopyasını oluşturur ve otomatik deploy'u ona yönlendirir.

3 · Push — Test Ortamı kendini deploy eder

  • Bağlı branch'e her push imajı derler ve Test Ortamına yayar. Kart son push'u (commit + zaman) ve Staging durumunu canlı gösterir.
  • Test URL'ini açıp yeni derlemeyi doğrulayın — production hâlâ önceki sürümü sunuyordur, tamamen etkilenmemiştir.
  • Staging yayılırken durumu deploying görünür; kopya çalışır duruma gelene kadar Yayına al devre dışı kalır.

4 · Yayına al — test edilmiş sürümü canlıya taşıyın

Yayına al'a tıklayın. Production, test edilmiş sürümü anında sunmaya başlar — derleme yok, kesinti yok. Önce otomatik bir veritabanı anlık görüntüsü alınır; böylece geri alma veri değişikliklerini de döndürebilir. Arka planda iki mekanizmadan biri kullanılır:

  • Kendi alan adınız bağlıysa → CDN edge'de anlık origin geçişi: production alan adı önce staging uygulamasına bağlanır, sonra eskisinden bırakılır — saf trafik taşıması, saniyeler, yeniden başlatma yok.
  • Production kendi <uid>.cdn.com.tr alt alan adındaysa → zaten derlenmiş, test edilmiş imaj production uygulamasına sıfır-boşluklu rolling update ile yayılır (yeni pod hazır olana dek eski pod sunmaya devam eder). URL'ler sabit kalır: test URL'i hep Staging, canlı URL hep Production'dır.

Yayına al derlemeyi taşır, yapılandırmayı değil: Staging'de ayarlanan ortam değişkenleri ve secret'lar Staging'de kalır. Production yapılandırmasını production uygulamasında değiştirin.

Çalışan bir Staging derlemesi ve etkin Yayına al düğmesiyle hat kartı
Staging çalışıyor ve doğrulandı — Yayına al tam da bu derlemeyi canlıya taşır.

5 · Geri al (gerekirse)

  • Bir Yayına al'dan sonra Production tarafında Geri al düğmesi belirir. Tek tık önceki sürümü geri getirir — alan adı geçişi tersine çevrilir (ya da önceki imaj yeniden deploy edilir) ve yayına-alma öncesi veritabanı anlık görüntüsü geri yüklenir.
  • Geri alma da Yayına al gibi anlık, yeniden-derlemesiz bir işlemdir.

Bilmekte fayda var

  • Hattı kapatmak: Karttaki “Disable staging”, push'ların yeniden doğrudan production'ı deploy etmesini sağlar (eski davranış — deploy sırasında kesintiye yol açabilir). Test kopyası korunur.
  • Yeni servisler: otomatik deploy mevcut servisleri günceller; compose dosyasına yeni eklenen bir servis otomatik eklenmez — eklemek için Deploy from Git'i bir kez çalıştırın.
  • Çok uygulamalı projeler: Test ortamını aç, deponun her servisi için bir test kopyası oluşturur; “Tümünü yayına al” tüm seti birlikte canlıya taşır.
  • Manuel test kopyaları: bir depoya bağlı olmayan uygulamalar da aynı staging/yayına-alma mekaniğini ortamlar panelinden kullanabilir — Blue/green ortamları rehberine ve vaka etüdüne bakın.
  • CLI: aynı işlemler cdnctl üzerinden de yapılabilir.