Şimdi yükleniyor

Azure App Service Slot Deployment azd ile Kolaylaştı

Azure App Service Slot Deployments Artık azd ile Çocuk Oyuncağı mı? Deneyimlerim ve Gerçekler

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!

💡 Bilgi: Slot kullanmak istiyorsanız App Service Plan’ınızın mutlaka Standard (S1) veya daha üstünde olması gerekiyor. Free/Basic? Maalesef unutun.

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!

High-tech server rack in a secure data center with network cables and hardware components.
Doğru yapılandırılmış slot deployment ile canlıya geçişler artık daha stressiz.

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!
Detailed view of server racks with glowing lights in a data center environment.
Ekip halinde hızlı teslimat gerektiğinde stabil otomasyon candır — azd iyi ki çıktı valla.

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ş:

Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Yorum gönder

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Paylaş
İçindekiler
    ← Terminalde JSON Sihirbazlığı: ...
    Azd Uzantılarını Otomatik Kurm... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazıları LinkedIn ve X'te ilk burada.