Dağıtım Yuvaları ve Geçiş
Mavi-yeşil dağıtımlar için hazırlama yuvaları oluşturun, yeni sürümü hazırlama yuvasında kullanıma hazır hâle getirin ve sıfır kesintiyle üretime geçirin.
Dağıtım Yuvaları ve Geçiş, CoddyKit'te ücretsiz bir Azure Fundamentals dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Azure Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Azure Fundamentals kursu toplamda 4 dersten oluşur.
Dağıtım Yuvaları Nedir?
Dağıtım yuvaları, bir App Service web uygulaması için canlı ve birbirinden ayrı ortamlardır; her yuvanın kendi ana bilgisayar adı vardır (ör. myapp-staging.azurewebsites.net). Yuvalar, Production yuvasıyla aynı App Service planını ve kaynaklarını paylaşır ancak birbirinden bağımsız çalışır. Bu yapı, mavi-yeşil dağıtımları mümkün kılar: Yeni sürümü Staging yuvasında doğrular, ardından sıfır kesintiyle Production ortamına geçirirsiniz. Yuvalar Standard katmanında ve üzerindeki katmanlarda kullanılabilir.
Dağıtım Yuvası Oluşturma
Azure portalını veya CLI'yi kullanarak web uygulamanıza yeni bir dağıtım yuvası ekleyin. Her yuvanın kendi URL'si, uygulama ayarları ve bağlantı dizeleri olur. Standard katmanında en fazla 5 yuva, Premium katmanında ise en fazla 20 yuva oluşturabilirsiniz. Yaygın yuva adları arasında sürüm yayımlama işlem hattının farklı aşamalarını yansıtan staging, canary, hotfix ve integration bulunur.
# Create a staging deployment slot
az webapp deployment slot create \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging
# Deploy code to the staging slot
az webapp deploy \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--src-path app.zip
# The staging slot is live at:
# https://MyUniqueWebApp-staging.azurewebsites.netStaging Yuvasını Isıtma
Geçiş yapmadan önce, yeni sürümün tamamen başlatıldığından emin olmak için Staging yuvasını ısıtmak kritik önem taşır. Soğuk durumdaki bir App Service örneği, çalışma zamanı başlatılırken ilk isteklere yavaş yanıt verir; bu durum Production ortamında kabul edilemez. Auto Swap özelliğini etkinleştirin veya Staging yuvasına el ile ısıtma HTTP istekleri gönderin. App Service ayrıca yuvanın hazır kabul edilmesi için 200 döndürmesi gereken ısıtma yollarını tanımlayan bir applicationInitialization yapılandırmasını destekler.
# web.config snippet for warm-up (IIS/Windows)
# <system.webServer>
# <applicationInitialization>
# <add initializationPage='/health' hostName='MyUniqueWebApp-staging.azurewebsites.net'/>
# </applicationInitialization>
# </system.webServer>
# Or use a startup probe via the App Service health check
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--generic-configurations '{"healthCheckPath": "/health"}'Yuvaları Değiştirme
Geçiş, Staging ve Production yuvalarını atomik olarak yer değiştirir. Geçiş sırasında App Service önce trafiği yeni kodu çalıştıran Staging örneklerine yönlendirir, bunların başlatılmasını bekler, ardından tüm Production trafiğini yeni örneklere yönlendirir ve eski Production örnekleri yeni Staging yuvası olur. Bu sayede geri alma işlemi son derece kolaydır; geri dönmek için yeniden geçiş yapmanız yeterlidir.
# Swap staging into production
az webapp deployment slot swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--target-slot production
# Rollback: swap production back to staging
az webapp deployment slot swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot production \
--target-slot stagingYuvaya Özel ve Yuvaya Özel Olmayan Ayarlar
Uygulama ayarları yapışkan (yuvaya özel) veya yapışkan olmayan (değiştirilebilir) olarak işaretlenebilir. Yapışkan olmayan ayarlar, geçiş yaptığınızda dağıtım yuvasıyla birlikte taşınır; bu nedenle Staging veritabanı bağlantı dizeniz kodla birlikte Production ortamına geçer. Yapışkan ayarlar, geçişlerden bağımsız olarak yuvayla birlikte kalır; Production her zaman kendi Production veritabanı bağlantı dizesini korur. Ayarları, 'deployment slot setting' onay kutusunu veya CLI'yi kullanarak yapışkan olarak işaretleyin.
# Mark a setting as sticky (slot-specific) -- it won't swap
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--slot-settings DATABASE_URL='postgresql://staging-db/...'
# Set a non-sticky setting (it WILL travel with a swap)
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--settings FEATURE_FLAG_NEW_UI=trueCanary Sürümleri için Trafik Bölme
App Service, tam bir geçiş gerçekleştirmeden Production trafiğinin belirli bir yüzdesini Production dışı bir yuvaya yönlendiren trafik bölme özelliğini destekler. Bu özellik, yeni sürüme duyduğunuz güven arttıkça trafiği %5'ten %10'a ve ardından %50'ye kademeli olarak kaydırdığınız canary sürümlerini mümkün kılar; her adımda hata oranlarını izleyebilirsiniz. Canary yuvasına yönlendirilen kullanıcılar, oturum tutarlılığını korumak için onları aynı sürümde tutan yapışkan bir çerez alır.
# Route 10% of traffic to the staging slot (canary)
az webapp traffic-routing set \
--name MyUniqueWebApp \
--resource-group MyRG \
--distribution staging=10
# View current traffic distribution
az webapp traffic-routing show \
--name MyUniqueWebApp \
--resource-group MyRG
# Reset all traffic to production
az webapp traffic-routing clear \
--name MyUniqueWebApp \
--resource-group MyRGAuto Swap
Auto Swap, yeni kod dağıtıldığında bir Staging yuvasını otomatik olarak Production ortamına geçirir. Her başarılı dağıtımın hemen canlıya alınmasını istediğiniz CI/CD işlem hatları için idealdir. Auto Swap, geçişi tamamlamadan önce Staging yuvasındaki HTTP isteklerinin 200 döndürmesini bekler. Bu özelliği portalda veya CLI'de yuva başına etkinleştirin; ancak dağıtım ile Production arasında el ile onay adımı bulunmadığından dikkatli kullanın.
# Enable Auto Swap for the staging slot
az webapp deployment slot auto-swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--auto-swap-slot production
# Disable Auto Swap
az webapp deployment slot auto-swap \
--name MyUniqueWebApp \
--resource-group MyRG \
--slot staging \
--disableDağıtım Yuvaları için En İyi Uygulamalar
Dağıtım yuvaları için şu en iyi uygulamaları izleyin: Production ortamına geçiş yapmadan önce her zaman Staging ortamında doğrulama yapın, Production veritabanı bağlantılarını Staging ortamından ayrı tutmak için yapışkan ayarlar kullanın, dağıtımdan sonra Staging yuvası URL'sine karşı temel duman sınamaları çalıştırın, yeni sürüm sağlıklı değilse App Service'in geçişi tamamlamamasını sağlamak için durum denetimi yollarını yapılandırın ve her yuvada hangi işlemenin canlı olduğunu izleyebilmek için dağıtımlarınızı etiketleyin.
CI/CD İşlem Hatlarında Yuvalar
Tipik bir CI/CD işlem hattında derleme aşaması kodu derleyip sınar, dağıtım aşaması yapıtı Staging yuvasına gönderir, bir tümleştirme sınaması aşaması Staging URL'sine karşı otomatik sınamalar çalıştırır ve geçiş aşaması Staging yuvasını Production ortamına geçirir; isteğe bağlı olarak bu aşamadan önce el ile onay alınabilir. Bu düzen, App Service dağıtım eylemiyle hem Azure işlem hatlarında hem de GitHub Actions içinde yerel olarak desteklenir.
# GitHub Actions step: deploy to staging slot
# - name: Deploy to Staging Slot
# uses: azure/webapps-deploy@v2
# with:
# app-name: MyUniqueWebApp
# slot-name: staging
# publish-profile: ${{ secrets.AZURE_STAGING_PUBLISH_PROFILE }}
#
# - name: Swap to Production
# uses: azure/CLI@v1
# with:
# inlineScript: |
# az webapp deployment slot swap \
# --name MyUniqueWebApp \
# --resource-group MyRG \
# --slot stagingGeçiş Sağlığını İzleme
Bir yuva geçişi sırasında ve sonrasında, yeni sürümün sağlıklı olduğunu doğrulamak için Azure İzleyici içindeki temel ölçümleri izleyin. HTTP 5xx hatalarında, ortalama yanıt süresinde ve CPU/bellek kullanımında ani artış olup olmadığını gözlemleyin. Hata oranları bir eşiği aşarsa tetiklenecek ölçüm uyarıları oluşturun; bu, hızlıca geri geçiş yapmanız için bir sinyal sağlar. Uygulama İçgörüleri'nin akıllı algılama özelliği, dağıtımdan sonra anormallikler konusunda sizi otomatik olarak uyarabilir.
# Create an alert rule for HTTP 5xx errors post-swap
az monitor metrics alert create \
--name 'HighErrorRate' \
--resource-group MyRG \
--scopes '/subscriptions/.../providers/Microsoft.Web/sites/MyUniqueWebApp' \
--condition 'avg Http5xx > 10' \
--window-size 5m \
--evaluation-frequency 1m \
--action-group MyActionGroupYuvalar ve Birden Çok Uygulama
Dağıtım yuvaları, Staging ve Production için tamamen ayrı App Service uygulamalarını sürdürmeye kıyasla daha uygundur; çünkü aynı planı paylaşırlar (ek maliyet yoktur), geri alma özellikli tek tıklamalı geçiş sunarlar, trafik bölmeyi desteklerler ve aynı App Service kaynağı altında yönetilirler. Ayrı uygulamaları yalnızca Staging ortamının temelde farklı plan SKU'larına, yalıtım gereksinimlerine veya tamamen ayrı bir faturalandırmaya ihtiyaç duyduğu durumlarda kullanın.
Kısa Kontrol
Bu derste ele alınan Microsoft Azure Fundamentals (AZ-900) kavramlarını anlayıp anlamadığınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: dağıtım yuvaları, yalıtılmış ortamlar sağlayarak mavi-yeşil dağıtımları mümkün kılar; yuvaya özel ayarlar, veritabanı URL'leri gibi ortama özgü yapılandırmayı kod yerine yuvaya bağlı tutar ve trafik bölme, Production trafiğinin belirli bir yüzdesini yeni sürüme yönlendirerek canary sürümlerini mümkün kılar. Sırada otomatik ölçeklendirme ve özel etki alanlarını inceleyeceğiz.
Sıkça Sorulan Sorular
“Dağıtım Yuvaları ve Geçiş” dersi ücretsiz mi?
Evet — “Dağıtım Yuvaları ve Geçiş” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Azure Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Azure Fundamentals kursu toplamda 4 dersten oluşur.
“Dağıtım Yuvaları ve Geçiş” dersinde ne öğreneceğim?
Mavi-yeşil dağıtımlar için hazırlama yuvaları oluşturun, yeni sürümü hazırlama yuvasında kullanıma hazır hâle getirin ve sıfır kesintiyle üretime geçirin. Azure Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Azure Fundamentals öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Azure Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Dağıtım Yuvaları ve Geçiş” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Azure Fundamentals dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Azure Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- App Service Planı ve Web Uygulaması Oluşturma
- Dağıtım Yuvaları ve Geçiş
- Otomatik Ölçeklendirme ve Özel Etki Alanları
- App Service Kimlik Doğrulama ve Ağ Oluşturma