Azure App Service Slot Deployment azd ile Kolaylaştı
Deployment Slot’lar: Bulutun Gizli Kahramanları
İtiraf edeyim, Açıkçası, Azure App Service’in bana göre en gizli silahı deployment slot’ları diyebilirim. Hani yıllardır “Blue/Green deployment lazım” diye anlatıyoruz ya, ‘sıfır downtime’, risksiz geçiş filan (evet, doğru duydunuz). Ama iş yazılımı gerçekten o slot’a ellemeden, tek komutla gönderme kısmına gelince çoğumuz dağılıyor (buna dikkat edin). Ne oluyor? Bir bakmışız PowerShell scriptlerle debeleniyoruz veya portaldan tık-tık ilerlerken başka bir sayfada kaybolmuşuz — hiç pratik değil.
Peki ya şöyle düşün! Bir komutla, mesela “azd deploy”, doğrudan istediğin slota anında atsan? Dürüst olayım; ilk okuduğumda abartılmıştır sandım. Yanı genelde kulağa güzel gelen her bulut yeniliğinde bir sürü ama’sı çıkar. Sınırlama, eksik uçlar… “Yok canım, bu kadar kolay olamaz,” dedim. Sonra bizzat deneyip yanıldım – çünkü şaşırttı bu sefer.
azd deploy Şimdi Gerçekten Akıllı mı?
Dürüst olmak gerekirse, Daha geçen hafta canlıya çıkmadan önce migration için deneme yaparken bir tesadüfle “azd deploy”daki slot desteğini denedim ki… Şimdi şöyle sorayım – önceden ne vardı elimizin altında? Hep production’a otomatik gönderirdi azd; diğerlerine (mesela “staging”) gitmek için türlü numaralar çevirmek gerekiyordu (ki bu çoğu kişinin gözünden kaçıyor). Çözüm arayanlar bazen kendini pipeline’da custom script yazar buluyordu.
Yeni özelliğiyle beraber, Bicep dosyasında birden fazla slot tanımlandığında azd bunu hemen algılıyor ve doğal olarak “Hadi bakalım, hangisine deploy etmek istersin?” diye soruyor! Bu kadar mı kolay dersin… Vallahi aynen öyle! Üstelik daha ilk deploy’da hem production hem tanımlanan tüm slot’lara kodu paylaştırabiliyor — sanki ekstra çaba harcamadan olmuş gibi.
PowerShell betiklerine veya karmaşık workaround peşinde koşmaya elveda demek isteyenlere haber vereyim:Bicep içinde dilediğiniz kadar slot tanımlayın yeter — bundan sonrası tamamen azd’in derdi!
Bicep ile Slot’u Nasıl Tanımlarsınız?
Kod gözünüze büyüyorsa hemen korkmayın — bak örnek üzerinden gidelim:
// Temel web app tanımı
resource webApp 'Microsoft.Web/sites@2021-03-01' = {
name: 'my-appservice'
location: resourceGroup().location
kind: 'app'
properties: { serverFarmId: myPlan.id }
}
// Staging için ek slot
resource stagingSlot 'Microsoft.Web/sites/slots@2021-03-01' = {
name: '${webApp.name}/staging'
location: webApp.location
properties: {}
}
Büyük ekipte mısınız? O zaman modül mantığı ile Azure Verified Modules da hayli rahatlatıyor (özellikle elde çok proje varsa):
// App service modülü şeklinde
module appservice 'br/public:app-service:1.3.2' = {
name:'my-appservice'
params:{ /*... */ }
}
module stagingSlot 'br/public:web-app-deployment-slot:1.0.2' = {
name:'staging'
params:{ appServiceName: appservice.outputs.name }
}
“Staging mi Production mı?” Kararı Otomatikleştirmek
Diyelim birden fazla slot var; sürekli prompt penceresi açılıp senaryo seçiyorsun — biraz yorucu olabiliyor cidden! Hele bir de acelem olduğunu farz et… İşte burada minicik ama oyunu değiştiren bir detay çıktı karşıma:
- Konsoldan otomasyon zamanı:Sadece aşağıdaki env değişkenini sete çekiyorsun:
azd env set AZD_DEPLOY_MYAPI_SLOT_NAME staging
Böylelikle ister lokalde manuel çalıştır ister CI/CD sürecine göm; hangi slota gideceğini kesin şekilde söylüyorsun, karışıklık da bitiyor.
Bence sık build/deploy yapan takımlar için müthiş ferahlık bu!

Neden Bu Kadar Önemli?
- Sıfır Downtime: Deploy sırasında kullanıcı laf arasında hata ekranıyla karşılaşmaz.
Kelimeyle anlatayım:
Gerçekten. - Kademeli Yayın/Test: Kodu önce test-slotunda gezdirip özgürce deneme imkanı sunuyor.
- Acil Rollback: Swap tuşuna basınca eski hâline dönmek çocuk oyuncağı resmen.
- Kullanıcı hatalarını azaltmak: Yanlış ortam kaygısı azalıyor ciddi biçimde!
Küçük Tüyolar & Pratik Deneyimlerimden Kesitler
E paha biçilmez avantaj anlattık ama her güzelliğin ufak dokundurması vardır tabiî… Süperiletkenler Veri Merkezlerinde Hız Devrimi yazımızda da bu konuya değinmiştik.
- BASIC/FREE/SHARED planlarda heveslenmeyin hiçbir şey yok – zamanınızı yakmayın.(Not al!)
- Tüm slotlara ve product’a aynı anda kod göndermek kafa karıştırmasın; bazen farkında olmadan canlıya atıp paniğe kapılabilirsiniz – dikkat baştan şart.
- Kodu slota yolluyorsun tamam ama swap işi hâlâ manuel tetikliyor; yanı live site’ta değişiklik için ayrı adım var bilesin.(Swap bekleyenlere duyurulur.)
- Ekip bazlı çalışma varsa — özellikle herkeste farklı env variable aktif kaldıysa — yanlış yere kod atan efsanevi (!) anılardan biri de size ait olabilir – bunu yaşamak istemezsiniz inanın!
- Bicep’te modül bağı kurmadan iş çevirmeye kalkarsanız arka planda “environment drift” belasından nasibini alırsınız… Birkaç kez başıma geldiği için diyorum 🙂
Daha detayına bakmak isteyenler için kendi blogumdan şurayı bırakıyorum:
Azure App Service Slot Swap Artık Tek Komutla?.
Peki Gerçekten Kullanmalı mısınız? Son Söz ve Minik Bir Karşılaştırma Tablosu
| Yöntem | Kurulum Kolaylığı | Esneklik/Destek | Risk/Dikkat Noktası |
|---|---|---|---|
| Manuel Portal Deploy | Orta | Düşük | Yanlış slota kolay deploy |
| El Yapımı Scriptlerle Deploy | Zor | Yüksek (ama bakım maliyetli) | Script hataları/karmaşa |
| azd + Bicep ile Deploy | Çok Kolay | Yüksek (slot seçimi dahil) | Tek dikkat slot adını doğru set etmek! |

Daha Fazlası İçin Nereleri Takip Etmeli?
Eğer Azure Developer CLI tarafındaki yeni özellikleri ben kaçırmam diyorsanız şu linkte bomba içerikler bıraktım:
Azure Developer CLI’de Şubat 2026 Bombaları.
Laf uzun öldü belki ama sonuç net:
Azd ile deployment slot işi nihayet olması gerektiği gibi akıcı gidiyor—tamam harika değil her şey ama yine de ciddi yol aldı bence.
Ya sizde durumlar nasıl?
Hiç yanlışlıkla prod’a kod attığınız öldü mu?
Ben şahsen artık gönül rahatlığıyla “azd up!” diyorum ve dönüşleri heyecanla izliyorum!
Kaynak alınacak resmî açıklama şurada:
Deploy to Azure App Service deployment slots with azd ↗️️🔥😏📦🟢️️️️📑✔︎✔︎✔︎̧̦̼̜̱̲̻͚͙̻͕͎̣͇↗️.
Sıkça Sorulan Sorular
Azure App Service slot deployment nedir ve neden kullanmalıyım?
Deployment slot’lar, uygulamanızın farklı sürümlerini aynı anda barındırmanızı sağlar. Böylece canlıya geçişlerde sıfır kesinti ve risksiz geçiş yapabilirsiniz. Kendi deneyimime göre, özellikle büyük ekiplerde ve sık güncelleme gereken projelerde slot’lar hayat kurtarıyor.
azd deploy komutuyla slot’a nasıl deploy yapabilirim?
Artık azd deploy komutu, Bicep dosyanızda tanımlı slot’ları algılıyor ve size hangi slota deploy yapmak istediğinizi soruyor. Bu sayede ekstra script yazmaya gerek kalmadan kolayca istediğiniz slot’a kod gönderebiliyorsunuz.
App Service planım hangi seviyede olmalı ki slot kullanabileyim?
Slot kullanımı için App Service Plan’ın Standard (S1) veya üzeri olması gerekiyor. Free ve Basic planlarda slot desteği bulunmuyor, yanı slot özelliğini kullanmak için plan yükseltmeniz şart.
Bicep dosyasında slot tanımlamak zor mu, nasıl yapabilirim?
Aslında çok zor değil, yazıda verdiğimiz örnekle birkaç satır kodla kolayca slot tanımlayabilirsiniz. Büyük projelerde işe Azure Verified Modules kullanarak yönetimi daha da pratik hâle getirebilirsiniz.
Önceden azd deploy ile slot’a deploy yapmak neden zordu?
Önceki sürümlerde azd deploy sadece production slot’una otomatik gönderim yapıyordu. Diğer slot’lara deploy etmek için özel scriptler yazmak veya pipeline’da ekstra ayarlamalar yapmak gerekiyordu. Bu da zaman kaybı ve karmaşıklık yaratıyordu.
Kaynaklar ve İleri Okuma
Azure App Service Deployment Slots
Deploy web apps with Azure Developer CLI
Bicep ile Azure Web App ve Slot Deploy
Azure Developer CLI (azd) Resmî GitHub
İçeriği paylaş:
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.






Yorum gönder