Loading...

Vaka etüdü

Bir git push’tan production’a — korkmadan

Managed Containers üzerinde çalışan gerçek bir uygulama, bir GitHub deposuna bağlı. main’e her push otomatik derlenip deploy ediliyor — ama doğrudan production’a değil, bir Staging kopyasına. Doğru göründüğünde tek tıkla o build canlıya alınıyor. Derleme sırasında 504 yok, "umarım çalışır" deploy’ları yok. Nasıl yapıldığı için Deployment hattı ve Git’ten deploy rehberlerine bakın.

← Platform Yardım’a dön

1. Depoyu bir kez bağla — hat kendiliğinden oluşur

Örnek uygulama küçük bir aile-ağacı web uygulaması (container arkasında bir Node servisi). Tüm kurulum, GitHub deposunu bağlamaktan ibaret:

  • Platforms → Container Apps’ta GitHub’ı bağlayın, depoyu ve dalı (main) seçin.
  • Bu, uygulamayı bir Deployment hattına dönüştürür: kendi ca-*.cdn.com.tr adresine sahip bir Staging (test kopyası) ve Production, aralarında bir Promote butonu.
  • Bundan sonra her push otomatik Staging’e deploy edilir — kod push’layarak production’a asla dokunmazsınız.
The Deployment pipeline card: Staging (left, auto-deploys) → Promote → Production (right).
The Deployment pipeline card: Staging (left, auto-deploys) → Promote → Production (right).

2. Her push Staging’e düşer — production sunmaya devam eder

Aynı uygulama, aynı anda iki ortamda. Footer’daki build damgasına bakın: Staging son push’tan gelen yeni build’i çoktan almış, Production hâlâ öncekini sunuyor. Production uygulamasında hiçbir şey yeniden derlenmedi, yani yeni build derlenirken kesinti ve 504 yaşanmadı.

Staging: build 20260714.1713 (the latest push) — served on its own ca-*.cdn.com.tr test URL.
Staging: build 20260714.1713 (the latest push) — served on its own ca-*.cdn.com.tr test URL.
Production: build 20260714.1518 (the previous build) — still live and uninterrupted.
Production: build 20260714.1518 (the previous build) — still live and uninterrupted.
  • Staging son commit’i otomatik derleyip deploy etti — kendi test URL’inden erişilebilir.
  • Production dokunulmadan: aynı çalışan build, aynı canlı domain, kesintisiz.
  • Yeni build’i, tek bir production kullanıcısı görmeden gerçek ve izole bir ortamda test edersiniz.

3. Gerçek Staging URL’sinde doğrula

Staging, uygulamanın kendi subdomain’inde gerçekten çalışan bir kopyasıdır — aynı imaj, aynı add-on’lar — böylece değişikliği maket üzerinde değil, gerçekten tıklayarak denersiniz. Ancak doğru olduğunda ilerlersiniz.

  • Hat kartından Staging test URL’sini açın ve değişikliği uçtan uca deneyin.
  • Bir şey mi bozdunuz? Sadece bir düzeltme push’layın — Staging yeniden deploy olur, Production hâlâ güvende.

4. Promote: tek tık, yeniden derleme yok

Promote hiçbir şey derlemez. Production domain’inin origin’ini, zaten çalışan Staging build’ine geçirir — anlık, atomik bir değişim. Test ettiğiniz build, birebir canlıya çıkan build’dir.

  • Hat kartında Promote’a tıklayın — production artık Staging’de doğruladığınız build’i sunar.
  • Bir domain-origin swap olduğu için (yeniden derleme değil), geçiş anlıktır ve kesintisizdir.
  • Rollback aynısının tersidir: tek tık production’ı önceki build’e döndürür (uygulamanın DB snapshot’ı varsa onunla birlikte).

Aynı hat terminalden (cdnctl)

Yukarıdakilerin hepsi script’lenebilir — CI için kullanışlı. Panel ve cdnctl aynı uçları kullanır:

# Connect once in the panel, then every push to main auto-deploys to Staging.
# Verify Staging on its test URL, then promote the tested build to production:
cdnctl container apps status  --account <uuid> --app <staging_app_uuid>
cdnctl container apps promote --account <uuid> --app <staging_app_uuid>

# Roll back to the previous production build if needed (instant, no rebuild):
cdnctl container apps rollback-promotion --account <uuid> --app <prod_app_uuid>

Neden tasarım gereği güvenli

  • Kod push’lamak production’ı asla bozamaz — auto-deploy yalnızca Staging’i hedefler.
  • Promote ettiğiniz şey, test ettiğinizin aynısıdır (test ile canlı arasında yeniden derleme yok).
  • Geçiş ve rollback anlık domain-origin swap’tır, yavaş redeploy değil.
  • Derlemeler kenarda olur, canlı site derlenirken asla 504 dönmez.

Referans rehberler: Deployment hattı · Git’ten deploy · Blue/green ortamlar.