Düzenle

Aracılığıyla paylaş


Temel yüksek oranda kullanılabilir alanlar arası yedekli web uygulaması

Azure App Service
Azure Application Gateway
Azure Storage
Azure SQL Database
Azure Private Link
Azure Virtual Network
Azure Monitor

Bu temel mimari, Temel web uygulaması mimarisini temel alır ve Azure'da güvenli, alanlar arası yedekli ve yüksek oranda kullanılabilir bir web uygulaması tasarlamaya yönelik ayrıntılı yönergeler sağlayacak şekilde genişletir. Mimari, Web Uygulaması Güvenlik Duvarı ile Azure Uygulaması lication Gateway aracılığıyla genel uç noktayı kullanıma sunar. İstekleri Özel Bağlantı aracılığıyla Azure Uygulaması Hizmetine yönlendirir. App Service uygulaması, Azure Key Vault ve Azure SQL Veritabanı gibi Azure PaaS hizmetleriyle güvenli bir şekilde iletişim kurmak için sanal ağ tümleştirmesi ve Özel Bağlantı kullanır.

Önemli

GitHub logosuKılavuz, Azure'da temel App Service uygulamasını gösteren örnek bir uygulama tarafından desteklenmiştir. Bu uygulama, üretime yönelik ilk adımınızda daha fazla çözüm geliştirme için temel olarak kullanılabilir.

Mimari

Bölgesel yedeklilik ve yüksek kullanılabilirlik ile temel App Service mimarisini gösteren diyagram.

Şekil 1: Temel Azure Uygulaması Hizmet mimarisi

Bu mimarinin bir Visio dosyasını indirin.

Bileşenler

Bu mimarinin birçok bileşeni, temel web uygulaması mimarisiyle aynıdır. Aşağıdaki listede yalnızca temel mimarideki değişiklikler vurgulanır.

  • Application Gateway bir katman 7 (HTTP/S) yük dengeleyici ve web trafiği yöneticisidir. Gelen trafiği kullanılabilirlik alanları arasında dağıtmak için URL yol tabanlı yönlendirmeyi kullanır ve uygulama performansını geliştirmek için şifrelemeyi boşaltılır.
  • Web Uygulaması Güvenlik Duvarı (WAF), web uygulamalarını SQL ekleme ve siteler arası betik oluşturma gibi yaygın açıklardan koruma sağlayan buluta özel bir hizmettir. WAF, web uygulamanıza gelen ve gelen trafikte görünürlük sağlayarak uygulamanızı izlemenize ve güvenliğini sağlamanıza olanak tanır.
  • Azure Key Vault gizli dizileri, şifreleme anahtarlarını ve sertifikaları güvenli bir şekilde depolayan ve yöneten bir hizmettir. Hassas bilgilerin yönetimini merkezileştirir.
  • Azure Sanal Ağ, Azure'da yalıtılmış ve güvenli özel sanal ağlar oluşturmanıza olanak tanıyan bir hizmettir. App Service'te bir web uygulaması için, kaynaklar arasında ağ güvenli iletişim için özel uç noktaları kullanmak üzere bir sanal ağ alt ağına ihtiyacınız vardır.
  • Özel Bağlantı, istemcilerin genel IP adresi kullanmadan doğrudan özel sanal ağlardan Azure hizmet olarak platform (PaaS) hizmetlerine erişmesini mümkün kılar.
  • Azure DNS , Microsoft Azure altyapısını kullanarak ad çözümlemesi sağlayan DNS etki alanları için bir barındırma hizmetidir. Özel DNS bölgeleri, bir hizmetin tam etki alanı adını (FQDN) özel uç noktanın IP adresiyle eşlemek için bir yol sağlar.

Ağ güvenliği, App Services temel mimarisinin temelini oluşturur (bkz. Şekil 2). Ağ mimarisi yüksek düzeyden aşağıdakileri sağlar:

  1. İstemci trafiği için tek bir güvenli giriş noktası
  2. Ağ trafiği filtrelendi
  3. Aktarımdaki veriler TLS ile uçtan uca şifrelenir
  4. Özel Bağlantı kullanarak Azure'da trafik tutularak veri sızdırma en aza indirilir
  5. Ağ kaynakları mantıksal olarak gruplandırılır ve ağ segmentasyonu aracılığıyla birbirinden yalıtılır

Ağ akışları

Temel App Service ağ mimarisini gösteren diyagram.

Şekil 2: Temel Azure Uygulaması Hizmeti uygulamasının ağ mimarisi

Aşağıda, İnternet trafiğinin App Service örneğine gelen akışının ve App Service'ten Azure hizmetlerine giden akışın açıklamaları yer alır.

Gelen akış

  1. Kullanıcı, Application Gateway genel IP'sine bir istekte bulunur.
  2. WAF kuralları değerlendirilir. WAF kuralları, siteler arası betik (XSS) ve SQL ekleme gibi çeşitli saldırılara karşı koruma sağlayarak sistemin güvenilirliğini olumlu yönde etkiler. Azure Uygulaması lication Gateway, bir WAF kuralı ihlal edilirse ve işleme durdurulursa istekte bulunana bir hata döndürür. Hiçbir WAF kuralı ihlal edilmezse, Application Gateway isteği arka uç havuzuna yönlendirir ve bu durumda App Service varsayılan etki alanıdır.
  3. Özel DNS bölgesi privatelink.azurewebsites.net sanal ağa bağlıdır. DNS bölgesi, App Service varsayılan etki alanını App Service özel uç noktasının özel IP adresiyle eşleyen bir A kaydına sahiptir. Bu bağlantılı özel DNS bölgesi, Azure DNS'nin varsayılan etki alanını özel uç nokta IP adresine çözümlemesine olanak tanır.
  4. İstek, özel uç nokta üzerinden bir App Service örneğine yönlendirilir.

App Service'in Azure PaaS hizmet akışı

  1. App Service, gerekli Azure hizmetinin DNS adına bir istekte bulunur. İstek bir gizli dizi almak için Azure Key Vault'a, yayımlama zip dosyası almak için Azure Depolama'ya, Azure SQL Veritabanı veya Özel Bağlantı destekleyen başka bir Azure hizmetine olabilir. App Service sanal ağ tümleştirme özelliği, isteği sanal ağ üzerinden yönlendirir.
  2. Gelen akıştaki 3. adım gibi, bağlantılı özel DNS bölgesinde de Azure hizmetinin etki alanını özel uç noktanın özel IP adresine eşleyen bir A kaydı vardır. Bu bağlantılı özel DNS bölgesi, Azure DNS'nin etki alanını hizmetin özel uç nokta IP adresine çözümlemesine olanak tanır.
  3. İstek, özel uç nokta üzerinden hizmete yönlendirilir.

Uygulama Hizmetlerine Giriş

Application Gateway, bu temel mimarinin gereksinimlerini karşılayan bölgesel bir kaynaktır. Application Gateway, web uygulaması güvenlik duvarı ve TLS boşaltma gibi özellikleri destekleyen ölçeklenebilir, bölgesel, katman 7 yük dengeleyicidir. Azure Uygulaması Hizmetlerine giriş için Application Gateway'i uygularken aşağıdaki noktaları göz önünde bulundurun.

  • Application Gateway'i dağıtın ve Microsoft tarafından yönetilen bir kural kümesiyle waf ilkesi yapılandırın. Bir kaynak hizmetin (mimaride App Service) kullanılamaz duruma gelmesine neden olabilecek web saldırılarını azaltmak için Önleme modunu kullanın.
  • Uçtan uca TLS şifrelemesi uygulayın.
  • App Service'inize gelen özel erişimi uygulamak için özel uç noktaları kullanın.
  • Application Gateway'in dinamik trafik akışlarına kolayca uyum sağlamak için otomatik ölçeklendirmeyi uygulamayı göz önünde bulundurun.
  • En az üç ölçek örneği sayısını kullanmayı ve bölgenizin desteklediği tüm kullanılabilirlik alanlarını her zaman kullanmayı göz önünde bulundurun. Application Gateway, tek bir ölçek örneği için bile yüksek oranda kullanılabilir bir şekilde dağıtılırken, hata durumunda yeni bir örnek oluşturmak yedi dakikaya kadar sürebilir. Kullanılabilirlik Alanları arasında birden çok örnek dağıtmak, bir hata oluştuğunda yeni bir örnek oluşturulurken bir örneğin çalıştığından emin olmaya yardımcı olur.
  • Ağ yalıtımını sağlamak için App Service'te genel ağ erişimini devre dışı bırakın. Bicep'te bu, properties/siteConfig altında ayarlanarak publicNetworkAccess: 'Disabled' gerçekleştirilir.

App Services'ten Azure hizmetlerine akış

Bu mimari, app service için sanal ağ tümleştirmesini kullanır ve özellikle trafiği sanal ağ üzerinden özel uç noktalara yönlendirmek için kullanır. Temel mimari, tüm trafiğin sanal ağ üzerinden giden trafiği zorlamasını sağlamaz; yalnızca özel uç noktalar için giden trafik gibi iç trafiktir.

Genel İnternet'ten erişim gerektirmeyen Azure hizmetlerinde özel uç noktaların ve genel uç noktaların devre dışı bırakılması gerekir. Özel uç noktalar, App Service'inizin genel IP adresi kullanmadan doğrudan özel sanal ağınızdan Özel Bağlantı hizmetlere bağlanmasına izin vererek güvenliği geliştirmek için bu mimari boyunca kullanılır.

Bu mimaride Azure SQL Veritabanı, Azure Depolama ve Key Vault'ta genel uç noktaların tümü devre dışı bırakılmıştır. Azure hizmeti güvenlik duvarları yalnızca diğer yetkili Azure hizmetlerinden gelen trafiğe izin vermek için kullanılır. Azure Cosmos DB ve Azure Redis Cache gibi özel uç noktalarla diğer Azure hizmetlerini yapılandırmanız gerekir. Bu mimaride Azure İzleyici özel uç nokta kullanmaz, ancak kullanabilir.

Temel mimari, her hizmet için özel bir DNS bölgesi uygular. Özel DNS bölgesi, hizmetin tam etki alanı adı ile özel uç nokta özel IP adresi arasında eşlenen bir A kaydı içerir. Bölgeler sanal ağa bağlıdır. Özel DNS bölge grupları, özel bağlantı DNS kayıtlarının otomatik olarak oluşturulduğunu ve güncelleştirildiğinden emin olun.

Sanal ağ tümleştirmesi ve özel uç noktaları uygularken aşağıdaki noktaları göz önünde bulundurun.

Sanal ağ segmentasyonu ve güvenliği

Bu mimarideki ağ Application Gateway, App Service tümleştirme bileşenleri ve özel uç noktalar için ayrı alt ağlara sahiptir. Her alt ağın, bu alt ağlara yönelik hem gelen hem de giden trafiği yalnızca gerekli olanla sınırlayan bir ağ güvenlik grubu vardır. Aşağıdaki tabloda, temelin her alt ağa eklediği NSG kurallarının basitleştirilmiş bir görünümü gösterilmektedir. Tablo kural adını ve işlevini verir.

Alt ağ Gelen Giden
snet-AppGateway AppGw.In.Allow.ControlPlane: Gelen denetim düzlemi erişimine izin ver

AppGw.In.Allow443.Internet: Gelen internet HTTPS erişimine izin ver
AppGw.Out.Allow.AppServices: AppServicesSubnet'e giden erişime izin ver

AppGw.Out.Allow.PrivateEndpoints: PrivateEndpointsSubnet'e giden erişime izin ver

AppPlan.Out.Allow.AzureMonitor: Azure İzleyici'ye giden erişime izin ver
snet-PrivateEndpoints Varsayılan kurallar: Sanal ağdan gelenlere izin ver Varsayılan kurallar: Sanal ağa giden ağa izin ver
snet-AppService Varsayılan kurallar: Sanal ağdan gelenlere izin ver AppPlan.Out.Allow.PrivateEndpoints: PrivateEndpointsSubnet'e giden erişime izin ver

AppPlan.Out.Allow.AzureMonitor: Azure İzleyici'ye giden erişime izin ver

Sanal ağ segmentasyonu ve güvenliği uygularken aşağıdaki noktaları göz önünde bulundurun.

  • Genel IP'ye sahip bir uygulama ağ geçidinin parçası olan bir alt ağ ile sanal ağ için DDoS korumasını etkinleştirin.
  • Mümkün olduğunda her alt ağa bir NSG ekleyin. Tam çözüm işlevselliğini etkinleştiren en katı kuralları kullanmanız gerekir.
  • Uygulama güvenlik gruplarını kullanın. Uygulama güvenlik grupları NSG'leri gruplandırmanıza olanak tanıyarak karmaşık ortamlar için kural oluşturmayı kolaylaştırır.

Sanal alt ağ şemasına örnek olarak aşağıdakiler gösterilebilir:

Tür Veri Akışı Adı Adres Aralığı
Sanal Ağ Adres Ön Eki 10.0.0.0/16
Alt ağ GatewaySubnet 10.0.1.0/24
Alt ağ AppServicesSubnet 10.0.0.0/24
Alt ağ PrivateEndpointsSubnet 10.0.2.0/27
Alt ağ AgentsSubject 10.0.2.32/27

Azure-Samples\app-service-baseline-implementation başvurusu

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

Temel Uygulama Hizmetleri mimarisi, önemli bölgesel hizmetler için bölgesel yedekliliğe odaklanır. Kullanılabilirlik alanları, bir bölge içinde fiziksel olarak ayrı konumlardır. İki veya daha fazla örnek destekleyici bölgelere dağıtıldığında destek hizmetleri için bölgesel yedeklilik sağlar. Bir bölge kapalı kalma süresiyle karşılaştığında, diğer bölgeler hala etkilenmeyebilir.

Mimari ayrıca talebi karşılamak için yeterli Sayıda Azure hizmeti örneği sağlar. Aşağıdaki bölümler, mimarideki önemli hizmetler için güvenilirlik kılavuzu sağlar. Bu şekilde, kullanılabilirlik alanları yüksek kullanılabilirlik ve hataya dayanıklılık sağlayarak güvenilirlik elde etme konusunda size yardımcı olur.

Application Gateway

Azure Uygulaması lication Gateway v2'yi alanlar arası yedekli bir yapılandırmaya dağıtın. Hata olması durumunda Application Gateway örneğinin altı ile yedi dakikalık başlangıç süresini önlemek için en az üç ölçek örneği sayısını kullanmayı göz önünde bulundurun.

Uygulama Hizmetleri

  • Kullanılabilirlik Alanı desteğiyle en az üç Uygulama Hizmeti örneği dağıtın.
  • Uygulamalarınızda sistem durumu denetimi uç noktalarını uygulayın ve app Hizmet durumu denetimi özelliğini yapılandırarak istekleri iyi durumda olmayan örneklerden uzaklaştırın. App Service Sistem Durumu denetimi hakkında daha fazla bilgi için bkz . Sistem durumu denetimini kullanarak App Service örneklerini izleme. ASP.NET uygulamalarında sistem durumu denetimi uç noktalarını uygulama hakkında daha fazla bilgi için bkz . ASP.NET Core'da sistem durumu denetimleri.
  • Bölge hatalarını işleyebilmek için kapasiteyi fazla sağlama.

SQL Veritabanı

  • Alanlar arası yedeklilik etkinken Azure SQL DB Genel Amaçlı, Premium veya İş Açısından Kritik dağıtın. Genel Amaçlı, Premium ve İş Açısından Kritik katmanları Azure SQL DB'de Alanlar arası yedekliliği destekler.
  • SQL DB yedeklemelerini alanlar arası yedekli depolama (ZRS) veya coğrafi alanlar arası yedekli depolama (GZRS) kullanacak şekilde yapılandırın.

Blob depolama

  • Azure Alanlar Arası Yedekli Depolama (ZRS), verilerinizi bölgedeki üç kullanılabilirlik alanında zaman uyumlu olarak çoğaltır. Verilerin kullanılabilirlik alanları arasında çoğaltılmasını sağlamak için Standart ZRS veya Standart GZRS depolama hesapları oluşturun.
  • Hesapları ayrı ayrı yönetebilmeniz ve yapılandırabilmeniz için dağıtımlar, web varlıkları ve diğer veriler için ayrı depolama hesapları oluşturun.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

Aşağıdaki bölümlerde bu mimarideki önemli bileşenler için ölçeklenebilirlik açıklanmıştır.

Application Gateway

  • Application Gateway'in ölçeğini daraltmak veya talebi karşılamak üzere genişletmek için otomatik ölçeklendirme uygulayın.
  • En yüksek örnek sayısını beklenenden daha yüksek bir sayıya ayarlayın. Yalnızca kullandığınız Kapasite Birimleri için ücretlendirilirsiniz.
  • Trafikteki küçük ani artışları işleyebilen en düşük örnek sayısını ayarlayın. Minimum örnek sayınızı hesaplamak için ortalama İşlem Birimi kullanımını kullanabilirsiniz.
  • Application Gateway alt akını boyutlandırma yönergelerini izleyin.

App Service

SQL Server

Veritabanı kaynaklarını ölçeklendirme, bu mimarinin kapsamı dışında karmaşık bir konudur. Veritabanınızı ölçeklendirirken aşağıdaki kaynakları göz önünde bulundurun,

Diğer ölçeklenebilirlik kılavuzu

  • Hizmetlerin talebe göre ölçeklendirildiğinden emin olmak için abonelik sınırlarını ve kotalarını gözden geçirin.
  • Performansı ve ölçeklenebilirliği artırmak için aşağıdaki veri türlerini önbelleğe almayı göz önünde bulundurun:
    • Yarı statik işlem verileri.
    • Oturum durumu.
    • HTML çıkışı. Bu karmaşık HTML çıkışı işleyen uygulamalarda yararlı olabilir.

Güvenlik

Temel App Service mimarisi, web uygulamanız için temel güvenlik önerilerine odaklanır. Şifreleme ve kimliğin her katmanda nasıl çalıştığını anlamak, iş yükünüzün güvenliğini sağlamak için kritik öneme sahiptir.

App Service

  • FTP ve SCM site dağıtımları için yerel kimlik doğrulama yöntemlerini devre dışı bırakma
  • Uzaktan hata ayıklamayı kapatın.
  • En son TLS sürümünü kullanın.
  • App Service için Microsoft Defender'u etkinleştirin.
  • Desteklenen platformların, programlama dillerinin, protokollerin ve çerçevelerin en son sürümlerini kullanın.
  • Daha yüksek yalıtım veya güvenli ağ erişimine ihtiyacınız varsa App Service Ortamı düşünün.

Şifreleme

Üretim web uygulamasının HTTPS kullanarak aktarımdaki verileri şifrelemesi gerekir. HTTPS protokolü Aktarım Katmanı Güvenliği'ne (TLS) dayanır ve şifreleme için genel ve özel anahtarları kullanır. Key Vault'ta bir sertifika (X.509) depolamalı ve Application Gateway'in özel anahtarı almasına izin vermelisiniz. Bekleyen veriler için bazı hizmetler verileri otomatik olarak şifreler ve diğerleri özelleştirmenize olanak sağlar.

Aktarım durumundaki veriler

Temel mimaride, aktarımdaki veriler kullanıcıdan App Service'teki web uygulamasına şifrelenir. Aşağıdaki iş akışında şifrelemenin yüksek düzeyde nasıl çalıştığı açıklanmaktadır.

Temel App Service şifreleme akışını gösteren diyagram.

  1. Kullanıcı web uygulamasına bir HTTPS isteği gönderir.
  2. HTTPS isteği uygulama ağ geçidine ulaşır.
  3. Uygulama ağ geçidi, kullanıcının web tarayıcısıyla güvenli bir TLS bağlantısı oluşturmak için Key Vault'ta bir sertifika (X.509) kullanır. Uygulama ağ geçidi, web uygulaması güvenlik duvarının denetleyebilmesi için HTTPS isteğinin şifresini çözer.
  4. Uygulama ağ geçidi, kullanıcı isteğini yeniden şifrelemek için App Service ile bir TLS bağlantısı oluşturur. App Service, HTTPS için yerel destek sağladığı için App Service'e sertifika eklemeniz gerekmez. Uygulama ağ geçidi şifrelenmiş trafiği App Service'e gönderir. App Service trafiğin şifresini çözer ve web uygulaması isteği işler.

Aktarımdaki veri şifrelemesini yapılandırırken aşağıdaki önerileri göz önünde bulundurun.

  • Sertifikanızı oluşturun veya Key Vault'a yükleyin. HTTPS şifrelemesi bir sertifika (X.509) gerektirir. Özel etki alanınız için güvenilen bir sertifika yetkilisinden bir sertifikaya ihtiyacınız vardır.
  • Sertifikanın özel anahtarını Key Vault'ta depolayın.
  • Application Gateway'in sertifika özel anahtarına erişim sağlaması için Azure kaynakları için Azure RBAC ve Yönetilen kimlikleri kullanarak uygulamalara Azure anahtar kasasına erişim izni verme makalesindeki yönergeleri izleyin. Erişim sağlamak için Key Vault erişim ilkelerini kullanmayın. Erişim ilkeleri yalnızca belirli değerlere değil, geniş izinler vermenizi sağlar.
  • Uçtan uca şifrelemeyi etkinleştirin. App Service, uygulama ağ geçidinin arka uç havuzudur. Arka uç havuzu için arka uç ayarını yapılandırdığınızda, arka uç bağlantı noktası 443 üzerinden HTTPS protokolunu kullanın.
Bekleme durumundaki veriler

Kimlik ve Erişim Yönetimi

App Service temeli, kullanıcı kimlikleri (kullanıcılar) ve iş yükü kimlikleri (Azure kaynakları) için kimlik doğrulaması ve yetkilendirmeyi yapılandırarak en az ayrıcalık ilkesini uygular.

Kullanıcı kimlikleri
  • App Service ("EasyAuth") için tümleşik kimlik doğrulama mekanizmasını kullanın. EasyAuth, kimlik sağlayıcılarını web uygulamanıza tümleştirme işlemini basitleştirir. Web uygulamanızın dışında kimlik doğrulamasını işler, bu nedenle önemli kod değişiklikleri yapmanız gerekmez.
  • Özel etki alanı için yanıt URL'sini yapılandırın. Web uygulamasını adresine https://<application-gateway-endpoint>/.auth/login/<provider>/callbackyeniden yönlendirmeniz gerekir. değerini genel IP adresi veya uygulama ağ geçidinizle ilişkilendirilmiş özel etki alanı adıyla değiştirin <application-gateway-endpoint> . yerine kullandığınız kimlik doğrulama sağlayıcısını (microsoft Entra id için "aad" gibi) yazın <provider> . Bu akışı Application Gateway ile ayarlamak veya Application Gateway'i ayarlamak için Azure Front belgelerini kullanabilirsiniz.
İş yükü kimlikleri
  • İş yükü kimlikleri için yönetilen kimlik kullanın. Yönetilen kimlik, geliştiricilerin kimlik doğrulama kimlik bilgilerini yönetme gereksinimini ortadan kaldırır.
  • Kullanıcı tarafından atanan yönetilen kimlikleri kullanın. Sistem tarafından atanan kimlik, kod olarak altyapı dağıtımlarının yarış koşullarına ve işlem sırasına göre başarısız olmasına neden olabilir. Bu dağıtım hata senaryolarından bazılarını önlemek için kullanıcı tarafından atanan yönetilen kimlikleri kullanabilirsiniz. Daha fazla bilgi için bkz. Yönetilen kimlikler.

Operasyonel mükemmellik

Operasyonel mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel mükemmellik sütununa genel bakış.

Temel App Service uygulaması için dağıtım, Azure Pipelines ile Azure Web Apps için CI/CD yönergelerini izler. Bu rehberliğe ek olarak, App Services temel mimarisi uygulamanın ve dağıtım depolama hesabının ağ güvenliğinin sağlandığını dikkate alır. Mimari, App Service'e genel erişimi reddeder. Bu, sanal ağın dışından dağıtım yapamazsınız anlamına gelir. Temel, şirket içinde barındırılan dağıtım aracılarını kullanarak uygulama kodunu sanal ağ içinde nasıl dağıtabileceğinizi gösterir. Aşağıdaki dağıtım kılavuzu, uygulama kodunu dağıtmaya ve altyapı veya veritabanı değişikliklerini dağıtmamaya odaklanır.

Temel App Service dağıtım mimarisini gösteren diyagram.

Şekil 3: Azure Uygulaması Hizmeti uygulamalarını dağıtma

Dağıtım akışı

  1. Yayın işlem hattının bir parçası olarak işlem hattı, iş kuyruğundaki şirket içinde barındırılan aracılar için bir iş isteği gönderir. İş isteği, aracının yayımlama zip dosyası derleme yapıtını bir Azure Depolama Hesabına yüklemesini sağlar.

  2. Şirket içinde barındırılan dağıtım aracısı, yoklama yoluyla yeni iş isteğini alır. İşi ve derleme yapıtını indirir.

  3. Şirket içinde barındırılan dağıtım aracısı, depolama hesabının özel uç noktası aracılığıyla zip dosyasını depolama hesabına yükler.

  4. İşlem hattı devam eder ve yönetilen aracı sonraki bir işi alır. Yönetilen aracı , appSetting WEBSITE_RUN_FROM_PACKAGE hazırlama yuvası için yeni yayımlama zip dosyasının adına güncelleştirmek için bir CLI çağrısı yapar.

    az webapp config appsettings set -g MyResourceGroupName -n MyUniqueApp --slot staging --settings WEBSITE_RUN_FROM_PACKAGE=UriToNewZip
    
  5. Azure Uygulaması Hizmeti, depolama hesabı özel uç noktası aracılığıyla yeni yayımlama zip dosyasını depolama alanından çeker. WEBSITE_RUN_FROM_PACKAGE farklı bir dosya adına ayarlandığından hazırlama örneği yeni paketle yeniden başlatılır.

  6. İşlem hattı devam eder ve tüm duman testlerini çalıştırır veya onay bekler. Testler geçer veya onay verilirse işlem hattı hazırlama ve üretim yuvalarını değiştirir.

Dağıtım kılavuzu

Aşağıda, temel mimari için temel dağıtım kılavuzu vurgulanır.

  • Dağıtım çakışmalarını önlemek için paketten çalıştırmayı kullanın. Uygulamanızı doğrudan Azure Uygulaması Hizmeti'ndeki bir paketten çalıştırdığınızda, paketteki dosyalar wwwroot dizinine kopyalanmamıştır. Bunun yerine, ZIP paketinin kendisi doğrudan salt okunur wwwroot dizini olarak bağlanır. Bu, dağıtım ve çalışma zamanı arasındaki dosya kilidi çakışmalarını ortadan kaldırır ve yalnızca tam olarak dağıtılan uygulamaların herhangi bir zamanda çalışmasını sağlar
  • Dağıtılan paket zip dosyalarına sürüm numaralarını ekleyin. AppSetting'in WEBSITE_RUN_FROM_PACKAGE farklı bir dosya adıyla dağıtım paketine güncelleştirilmesi, App Services'in yeni sürümü otomatik olarak almasına ve hizmeti yeniden başlatmasına neden olur.
  • Dayanıklı kod dağıtımları için Dağıtım yuvalarını kullanın.
  • Yönetilen ve şirket içinde barındırılan aracıların bir karışımını kullanmayı düşünün.
    • Paket zip dosyasını özel uç nokta üzerinden depolama hesabına yüklemek için şirket içinde barındırılan aracıları kullanın. Aracı, yoklama yoluyla işlem hattıyla iletişim başlatır, bu nedenle gelen arama için ağı açmak gerekmez.
    • İşlem hattındaki diğer işler için yönetilen aracıları kullanın.
  • Kod Olarak Altyapı (IaC) ile altyapı dağıtımlarını otomatikleştirin.
  • Azure Load Testing ve Azure Chaos Studio gibi hizmetleri kullanarak çözümün tamamının performansını ve dayanıklılığını test etmek için iş yükünü sürekli doğrulayın.

Yapılandırma

Uygulamalar hem yapılandırma değerleri hem de gizli diziler gerektirir. Yapılandırma ve gizli dizi yönetimi için aşağıdaki kılavuzu kullanın.

  • Parolalar veya erişim anahtarları gibi gizli dizileri asla kaynak denetimine denetlemeyin.
  • Gizli dizileri depolamak için Azure Key Vault'ı kullanın.
  • Uygulama yapılandırmanız için App Service yapılandırmasını kullanın. Yapılandırmayı uygulama yapılandırmanızdan dışlaştırmanız veya özellik bayrağı desteğine ihtiyacınız varsa Azure Uygulaması Yapılandırma'yı kullanmayı göz önünde bulundurun.
  • Uygulamanızda gizli dizileri güvenli bir şekilde kullanıma açmak için App Service yapılandırmasında Key Vault başvurularını kullanın.
  • Bir yuvaya bağlı olan ve farklı üretim ve hazırlama ayarlarına ihtiyacınız varsa değiştirilmeyen uygulama ayarları oluşturun. Bir dağıtım yuvasını değiştirdiğinizde, uygulama ayarları varsayılan olarak değiştirilir.
  • Yerel geliştirme için yerel ortam değişkenlerini ayarlayın veya uygulama platformu özelliklerinden yararlanın. App Services yapılandırması, uygulama ayarlarını ortam değişkenleri olarak kullanıma sunar. Örneğin Visual Studio, başlatma profillerinde ortam değişkenlerini ayarlamanıza olanak tanır. Ayrıca yerel uygulama ayarlarını ve gizli dizilerini depolamak için Uygulama Ayarları'nı ve kullanıcı gizli dizilerini kullanmanıza da olanak tanır.

İzleme

İzleme, BT sistemlerinden verilerin toplanması ve analiz edilmesidir. İzlemenin amacı, web uygulamasının durumunu ve güvenliğini izlemek için birden çok katmanda gözlemlenebilirliktir. Gözlemlenebilirlik, temel App Service mimarisinin temel modellerinden biridir.

Web uygulamanızı izlemek için uygulama kodunuz, altyapınız (çalışma zamanı) ve platformdan (Azure kaynakları) ölçümleri ve günlükleri toplamanız ve analiz etmeniz gerekir. Daha fazla bilgi için bkz . Azure etkinlik günlüğü, Azure kaynak günlükleri ve uygulama günlükleri.

Platformu izleme

Platform izleme, mimarinizdeki Azure hizmetlerinden veri toplama işlemidir. Platform izleme ile ilgili aşağıdaki yönergeleri göz önünde bulundurun.

Application Gateway

Application Gateway, arka uç havuzundaki kaynakların durumunu izler. Zaman damgası, HTTP yanıt kodu ve URL yolu gibi bilgileri toplamak için Application Gateway Erişim günlüklerini kullanın. Daha fazla bilgi için bkz . Application Gateway varsayılan sistem durumu yoklaması ve Arka uç sistem durumu ve tanılama günlükleri.

App Service

App Service,gelişmiş gözlemlenebilirlik için etkinleştirmeniz gereken yerleşik ve tümleşik izleme araçlarına sahiptir. Web uygulamanızın telemetri ve izleme özellikleri ("işlem içi izleme") zaten varsa App Service üzerinde çalışmaya devam etmelidir.

  • Otomatik izleme özelliğini etkinleştirin. App Service'in kod değişikliği olmadan etkinleştirebileceğiniz bir izleme uzantısı vardır. Uygulama performansı izleme (APM) görünürlüğü elde edebilirsiniz. Daha fazla bilgi için bkz. Azure Uygulaması Hizmeti performansını izleme.
  • Dağıtılmış izlemeyi etkinleştirin. Otomatik izleme, dağıtılmış izleme ve performans profili oluşturucu aracılığıyla dağıtılmış bulut sistemlerini izlemenin bir yolunu sunar.
  • Özel telemetri için kod tabanlı izleme kullanın. Azure Uygulaması lication Insights, özel uygulama telemetrisi için kod tabanlı izlemeyi de destekler. Kodunuza Application Insights SDK'sını ekleyin ve Application Insights API'sini kullanın.
  • App Service günlüklerini etkinleştirin. App Service platformu, sorun gidermeyi desteklemek için etkinleştirmeniz gereken dört ek günlüğü destekler. Bu günlükler uygulama günlükleri, web sunucusu günlükleri, ayrıntılı hata iletileri ve başarısız istek izlemedir.
  • Yapılandırılmış günlüğe kaydetmeyi kullanın. Uygulama kodunuza yapılandırılmış günlük kitaplığı ekleyin. Kodunuzu anahtar-değer çiftlerini kullanacak şekilde güncelleştirin ve Bu günlükleri Log Analytics Çalışma Alanınızda depolamak için App Service'teki Uygulama günlüklerini etkinleştirin.
  • App Service Sistem Durumu denetimini açın. Sistem durumu denetimi, istekleri iyi durumda olmayan örneklerden uzaklaştırır ve iyi durumda olmayan örneklerin yerini alır. App Service planınızın Sistem Durumu denetimlerinin çalışması için iki veya daha fazla örnek kullanması gerekir.
Veritabanı
  • Kullanıcı veritabanı İçgörüleri. Azure SQL veritabanları için Azure İzleyici'de SQL Insights'ı yapılandırmanız gerekir. Veritabanı İçgörüleri, sistem durumunu izlemek, sorunları tanılamak ve performansı ayarlamak için ihtiyacınız olan verileri kullanıma açmak için dinamik yönetim görünümlerini kullanır. Daha fazla bilgi için bkz. Azure İzleyici ile izleme Azure SQL Veritabanı.
  • Mimariniz Cosmos DB içeriyorsa Cosmos DB içgörülerini kullanmak için herhangi bir şeyi etkinleştirmeniz veya yapılandırmanız gerekmez.

İdare

Web uygulamaları, mimari ve güvenlik kararlarını zorunlu kılarak Azure İlkesi yararlanıyor. Azure İlkesi, (1) dağıtımını (reddetme) veya (2) tercih ettiğiniz durumdan gelen yapılandırma kayması algılamayı (denetleme) kolaylaştırabilir. Bu, Kod Olarak Altyapı (IaC) dağıtımlarını veya üzerinde anlaşmaya varılan mimariden sapan Azure portalı değişikliklerini yakalamanıza yardımcı olur. Tüm kaynakları mimarinize Azure İlkesi idare altına yerleştirmeniz gerekir. Temel ağ topolojisi, hizmet özellikleri, güvenlik ve izleme kararlarını zorunlu kılmak için mümkün olduğunda yerleşik ilkeleri veya ilke girişimlerini kullanın, örneğin:

  • App Service genel ağ erişimini devre dışı bırakmalıdır
  • App Service sanal ağ tümleştirmesi kullanmalıdır
  • App Service, PaaS hizmetlerine bağlanmak için Azure Özel Bağlantı kullanmalıdır
  • App Service'in FTP ve SCM site dağıtımları için yerel kimlik doğrulama yöntemleri devre dışı bırakılmalıdır
  • App Service'in uzaktan hata ayıklaması kapalı olmalıdır
  • App Service uygulamaları en son TLS sürümünü kullanmalıdır
  • App Service için Microsoft Defender etkinleştirilmelidir
  • Application Gateway için Web Uygulaması Güvenlik Duvarı (WAF) etkinleştirilmelidir

Application Gateway ve ağ bileşenleri, App Service, Key Vault ve İzleme gibi temel hizmetler için daha yerleşik ilkelere bakın. Yerleşik ilkeler ihtiyaçlarınızı tam olarak karşılamıyorsa özel ilkeler oluşturabilir veya topluluk ilkelerini (Azure Giriş Bölgeleri gibi) kullanabilirsiniz. Kullanılabilir olduğunda yerleşik ilkeleri tercih edin.

Sonraki adımlar