Aracılığıyla paylaş


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

Azure App Service
Azure Application Gateway
Azure Depolama
Azure SQL Veritabanı
Azure Özel Bağlantı
Azure Sanal Ağ
Azure İzleyici

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ğlar. Bu mimaride, Azure Web Uygulaması Güvenlik Duvarı ile Azure Application Gateway genel bir uç noktayı kullanıma sunar ve istekleri Azure Özel Bağlantı aracılığıyla Azure App Service'e yönlendirir. App Service uygulaması, Azure Key Vault ve Azure SQL Veritabanı gibi hizmet olarak Azure platformu (PaaS) çözümleriyle güvenli bir şekilde iletişim kurmak için sanal ağ tümleştirmesi ve Özel Bağlantı kullanır.

Önemli

Örnek bir uygulama, Azure'da bu temel App Service uygulamasını gösterir. Bunu üretim çözümünüz için temel olarak kullanın.

Mimari

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

Bu mimarinin bir Visio dosyasını indirin.

Bileşenler

Bu mimari , temel web uygulaması mimarisiyle birçok bileşeni paylaşır. Aşağıdaki listede yalnızca temel mimariden farklı olan veya bu mimariyi genişleten bileşenler açıklanmaktadır:

  • Application Gateway bir katman 7 HTTP ve HTTPS yük dengeleyici ve web trafiği yöneticisidir. Bu mimaride Application Gateway tek bir genel giriş noktası olarak görev yapar. Application Gateway Aktarım Katmanı Güvenliği'ni (TLS) sonlandırır ve Azure Web Uygulaması Güvenlik Duvarı kurallarını değerlendirir. Ardından, onaylanan istekleri özel olarak App Service örneklerine kullanılabilirlik alanları arasında iletir.

  • Azure Web Uygulaması Güvenlik Duvarı , web uygulamalarını SQL ekleme ve siteler arası betik (XSS) gibi yaygın açıklardan yararlanmalara karşı koruyan buluta özel bir hizmettir. Bu mimaride, Azure Web Uygulaması Güvenlik Duvarı Application Gateway üzerinde çalışır ve App Service'e ulaşmadan önce kötü amaçlı istekleri engeller. Bu kurulum güvenliği artırır ve kullanılabilirliği korumaya yardımcı olur.

  • Key Vault gizli dizileri, şifreleme anahtarlarını ve sertifikaları güvenli bir şekilde depolayan ve yöneten bir hizmettir. Bu mimaride, Application Gateway'in kullandığı TLS sertifikasını (X.509) depolar ve App Service'in özel olarak eriştiği uygulama gizli dizilerini tutar.

  • Azure Sanal Ağ, Azure'da yalıtılmış ve güvenli özel sanal ağlar sağlayan bir hizmettir. Bu mimaride sanal ağ, Application Gateway için özel uç noktalar, App Service tümleştirmesi ve ayrılmış alt ağlar sağlar. Bu kurulum trafiği yalıtarak App Service'in özel uç noktalar aracılığıyla bağımlı Azure hizmetleriyle güvenli bir şekilde iletişim kurmasına olanak tanır.

  • Özel Bağlantı , genel İnternet'e maruz kalma durumunu ortadan kaldırmak için Microsoft omurga ağı üzerinden Azure hizmetlerine özel erişim sağlayan bir ağ hizmetidir. Bu mimaride Özel Bağlantı, App Service'e özel gelen bağlantıları ve App Service'ten Key Vault, SQL Veritabanı ve Azure Depolama gibi hizmetlere özel giden bağlantıları etkinleştirir.

  • Azure DNS, Alan Adı Sistemi (DNS) etki alanları için bir barındırma hizmetidir. Microsoft Azure altyapısını kullanarak ad çözümlemesi sağlar. Özel DNS bölgeleri, bir hizmetin tam etki alanı adını (FQDN) özel uç noktanın IP adresiyle eşler. Bu mimaride, özel DNS bölgeleri App Service varsayılan etki alanını ve diğer PaaS hizmet etki alanlarını özel uç nokta adresleriyle eşler, böylece tüm trafik özel ağda kalır.

Ağ güvenliği, App Service temel mimarisinin merkezidir. Ağ mimarisi üst düzeyde aşağıdaki özellikleri sağlar:

  • İstemci trafiği için tek bir güvenli giriş noktası

  • Azure Web Uygulaması Güvenlik Duvarı üzerinden trafik filtreleme

  • Aktarımdaki veriler için uçtan uca TLS şifrelemesi

  • Trafiği Azure'da tutan Özel Bağlantı aracılığıyla en aza indirgenmiş veri sızdırma

  • Ağ kesimlemesi aracılığıyla ağ kaynaklarının mantıksal gruplandırması ve yalıtımı

Ağ akışları

Temel App Service ağ mimarisindeki ağ akışlarını gösteren diyagram.

Gelen akış

Aşağıdaki adımlarda, İnternet'ten App Service örneğine gelen akış açıklanmaktadır:

  1. Kullanıcı Application Gateway genel IP adresine bir istekte bulunur.

  2. Application Gateway, XSS ve SQL ekleme gibi saldırılara karşı koruma sağlayan Web Uygulaması Güvenlik Duvarı kurallarını değerlendirir. Bir kural bir ihlal algılarsa Application Gateway istek sahibine bir hata döndürür ve işlemeyi durdurur. Aksi takdirde, Application Gateway isteği arka uç havuzuna yönlendirir ve bu durumda bu havuz App Service'in varsayılan etki alanıdır.

  3. Özel DNS bölgesi privatelink.azurewebsites.net sanal ağa bağlanı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ı içerir. Azure DNS, varsayılan etki alanını özel uç nokta IP adresine çözümlemek için bu kaydı kullanır.

  4. Application Gateway, isteği özel uç nokta üzerinden bir App Service örneğine yönlendirir.

Giden akış

Aşağıdaki adımlarda App Service'ten Azure PaaS hizmetlerine giden akış açıklanmaktadır:

  1. App Service, Key Vault, Depolama, SQL Veritabanı veya Özel Bağlantı'yı destekleyen başka bir Azure hizmeti gibi gerekli Azure hizmetinin DNS adına bir istek gönderir. App Service sanal ağ tümleştirme özelliği, isteği sanal ağ üzerinden yönlendirir.

  2. Gelen akıştaki 3. adıma benzer şekilde, bağlantılı özel DNS bölgesi, Azure hizmetinin etki alanını özel uç nokta IP adresiyle eşleyen bir A kaydı içerir. Azure DNS, etki alanını hizmetin özel uç nokta IP adresine çözümlemek için bu kaydı kullanır.

  3. Sanal ağ, isteği özel uç nokta üzerinden hizmete yönlendirir.

Azure PaaS hizmetlerine gitmeyen giden trafik, birden çok müşterinin paylaştığı bir genel IP adresi üzerinden çıkar. Örneğin, bir web uygulaması HTTP isteği sırasında genel API'yi çağırabilir. Bu tür çıkış trafiğini denetlemek için Azure Güvenlik Duvarı gibi bir ağ cihazı üzerinden yönlendirin. Daha fazla bilgi için bkz. Azure Güvenlik Duvarı'nı kullanarak giden trafiği denetleme.

Application Gateway uygulaması

Application Gateway, Azure Web Uygulaması Güvenlik Duvarı ve TLS boşaltmayı destekleyen ölçeklenebilir, bölgesel, katman 7 yük dengeleyicidir. App Service'e gelen trafik için Application Gateway uyguladığınızda aşağıdaki noktaları göz önünde bulundurun:

  • Application Gateway'i dağıtın ve Microsoft tarafından yönetilen bir kural kümesi kullanan bir Azure Web Uygulaması Güvenlik Duvarı ilkesi yapılandırın. App Service gibi bir kaynak hizmete ulaşmadan önce web saldırılarını engellemek için Önleme modunu kullanın.

  • Uçtan uca TLS şifrelemesi uygulayın.

  • App Service'e gelen özel erişimi uygulamak için özel uç noktaları kullanın.

  • Application Gateway'in kapasiteyi trafik talebine göre ayarlaması için otomatik ölçeklendirme uygulayın.

  • En az üç örnek kullanmayı göz önünde bulundurun ve bölgenizin desteklediği tüm kullanılabilirlik alanlarına dağıtın. Application Gateway yüksek oranda kullanılabilir, ancak bir hatadan sonra yeni bir örnek oluşturmak, tek bir ölçek örneği için bile yedi dakikaya kadar sürebilir. Yeni bir örnek başlatılırken bir örneğin kullanılabilir durumda kalmasını sağlamak için kullanılabilirlik alanları arasında birden çok örnek dağıtın.

  • Ağ yalıtımını sağlamak için App Service'te genel ağ erişimini engelleyin. Bicep'te properties altında publicNetworkAccess, Disabled olarak ayarlayın.

App Service'ten Azure hizmetlerine akış

Bu mimari, App Service trafiğini sanal ağ üzerinden özel uç noktalara yönlendirmek için sanal ağ tümleştirmesini kullanır. Temel mimari tüm trafik yönlendirmesini etkinleştirmez ve bu da tüm giden trafiği sanal ağ üzerinden zorlar. Bunun yerine yalnızca özel uç noktalara yönelik iç trafiği yönlendirir.

Genel İnternet erişimi gerektirmeyen Azure hizmetleri için özel uç noktalara izin verin ve genel uç noktaları engelleyin. Özel uç noktalar, App Service'in genel IP adresi olmadan doğrudan özel sanal ağdan Özel Bağlantı hizmetlerine bağlanmasına izin vererek güvenliği artırır.

Bu mimaride SQL Veritabanı, Depolama ve Key Vault'un tüm ortak uç noktaları engellendi. Hizmet güvenlik duvarları yalnızca diğer yetkili Azure hizmetlerinden gelen trafiğe izin verir. Azure Cosmos DB ve Azure Yönetilen Redis gibi diğer Azure hizmetlerini özel uç noktalarla yapılandırın. Bu mimaride Azure İzleyici özel uç nokta kullanmaz, ancak Azure İzleyici Özel Bağlantı Kapsamı (AMPLS) kullanarak bir uç nokta uygulayabilirsiniz.

Temel mimari, her hizmet için özel bir DNS bölgesi uygular. Her özel DNS bölgesi, hizmetin FQDN'sini özel uç noktanın IP adresine eşleyen bir A kaydı içerir. Bölgeler sanal ağa bağlanır. Özel DNS bölge grupları, özel uç noktalar için DNS kayıtlarını otomatik olarak oluşturur ve güncelleştirir.

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ğ üzerindeki bir ağ güvenlik grubu (NSG), yalnızca gerekli gelen ve giden trafiğe izin verir. Aşağıdaki tabloda her alt ağa ekleyebileceğiniz NSG kuralları açıklanmaktadır.

Alt ağ Gelen Giden
GatewaySubnet AppGw.In.Allow.ControlPlane: Gelen kontrol düzlemi erişimine izin ver.

AppGw.In.Allow443.Internet: Gelen internet HTTPS erişimine izin verin.
AppGw.Out.Allow.PrivateEndpoints: PrivateEndpointsSubnet öğesine giden erişime izin ver.

AppPlan.Out.Allow.AzureMonitor: Azure Monitor'a giden erişime izin verin.
PrivateEndpointsSubnet Varsayılan kurallar: Sanal ağdan gelen erişime izin verin. Varsayılan kurallar: Sanal ağa giden erişime izin verin.
AppServiceSubnet Varsayılan kurallar: Sanal ağdan gelen erişime izin verin. AppPlan.Out.Allow.PrivateEndpoints: PrivateEndpointsSubnet dışa giden erişime izin ver.

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

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

  • Genel IP adresine sahip bir uygulama ağ geçidi alt ağı içeren 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ğine izin veren en katı kuralları kullanın.

  • Karmaşık ortamlarda NSG kuralı oluşturmayı basitleştiren, kaynakları mantıksal olarak gruplandırmak için uygulama güvenlik gruplarını kullanın.

Aşağıdaki tabloda örnek bir ağ şeması gösterilmektedir.

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ğ AppServiceSubnet 10.0.0.0/24
Alt ağ PrivateEndpointsSubnet 10.0.2.0/27
Alt ağ AgentsSubnet 10.0.2.32/27

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, iş yükünün kalitesini artırmak için kullanabileceğiniz bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Well-Architected Framework.

Reliability

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesine yardımcı olur. Daha fazla bilgi için bkz. Güvenilirlik için tasarım gözden geçirme denetim listesi.

Temel App Service mimarisi, önemli bölgesel hizmetler için bölgesel yedekliliğe odaklanır. Kullanılabilirlik alanları, yüksek kullanılabilirlik ve hataya dayanıklılık sağlayan bir bölge içinde fiziksel olarak ayrı konumlardır. Desteklenen bölgelerdekikullanılabilirlik alanlarına iki veya daha fazla örnek dağıttığınızda, bir bölgenin başarısızlığı diğerlerini etkilemez. Bu yaklaşım, hizmet kullanılabilirliğini korumaya yardımcı olur.

Mimari ayrıca talebi karşılamak için Azure hizmetlerinin yeterli örneklerini sağlar. Aşağıdaki bölümler, mimarideki her anahtar hizmet için güvenilirlik kılavuzu sağlar.

Application Gateway

Application Gateway'i en az üç veya daha fazla ölçek örneği sayısıyla alanlar arası yedekli bir yapılandırmada dağıtın. Birden çok örnek, yeni bir örnek ayarlamak için gereken altı dakikadan yedi dakikaya kadar başlatma süresini beklemeden hizmetin hatalar sırasında kullanılabilir durumda kalmasını sağlar.

Uygulama Servisi

  • Kullanılabilirlik alanlarını destekleyen en az iki App Service örneği dağıtın. Daha yüksek dayanıklılık için bölgenizdeki her kullanılabilirlik alanı için en az bir örnek ve yedeklilik için her bölge içinde ek örnekler 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. Daha fazla bilgi için bkz. Sağlık denetimlerini kullanarak App Service örneklerini izleme ve ASP.NET Core'da sağlık kontrolleri.

  • Bölge hatalarını yönetmek için fazla kapasite sağlayın.

Blob Depolama

  • Verileri bölgedeki üç kullanılabilirlik alanında zaman uyumlu olarak çoğaltan alanlar arası yedekli depolama (ZRS) kullanın. Kullanılabilirlik alanları arasında veri çoğaltması sağlamak için Standart ZRS veya Standart coğrafi alanlar arası yedekli depolama (GZRS) depolama hesapları oluşturun.

  • Her hesabı bağımsız olarak yönetmek ve yapılandırmak için dağıtımlar, web varlıkları ve diğer veriler için ayrı depolama hesapları oluşturun.

SQL Veritabanı

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik için tasarım gözden geçirme denetim listesi.

Temel App Service mimarisi, web uygulamanız için temel güvenlik önerilerine odaklanır. İş yükünüzün güvenliğini sağlamaya yardımcı olmak için şifreleme ve kimliğin her katmanda nasıl çalıştığını anlamanız gerekir.

Uygulama Servisi

  • Dosya Aktarım Protokolü (FTP) ve Kaynak Denetimi Yönetimi (SCM) site dağıtımları için yerel kimlik doğrulama yöntemlerini kapatın.

  • Uzaktan hata ayıklamayı kapatın.

  • Tüm istemcilerinizin desteklediği en son TLS sürümünü kullanın.

  • App Service için Microsoft Defender planını açın.

  • 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 uygulamalarının aktarımdaki verileri HTTPS kullanarak şifrelemesi gerekir. HTTPS, TLS'ye dayanır ve şifreleme için genel ve özel anahtarları kullanır. TLS sertifikasını (X.509) Key Vault'ta depolayın ve Application Gateway'e özel anahtarı alma izni verin. Bekleyen veriler için bazı hizmetler verileri otomatik olarak şifreler ve diğerleri ayarları özelleştirmenize olanak sağlar.

Aktarım durumundaki veriler

Temel mimari, kullanıcıdan App Service'teki web uygulamasına aktarımda olan verileri şifreler.

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

Aşağıdaki iş akışında şifrelemenin yüksek düzeyde nasıl çalıştığı açıklanmaktadır:

  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'e 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.

  • Sertifika özel anahtarına Application Gateway erişimi sağlayın. Daha fazla bilgi için bkz. Azure kaynakları için Azure rol tabanlı erişim denetimini (Azure RBAC) ve Yönetilen kimlikleri kullanarak izin verme. Erişim sağlamak için Key Vault erişim ilkelerini kullanmayın. Erişim ilkeleri, belirli değerler yerine yalnızca geniş izinler vermenizi sağlar.

  • Uçtan uca şifrelemeyi açın. 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'te HTTPS protokolunu kullanın.

Bekleme durumundaki veriler
  • SQL Veritabanı'ndaki hassas verileri şifrelemek için saydam veri şifrelemesi kullanın. Saydam veri şifrelemesi tüm veritabanı, yedeklemeler ve işlem günlüğü dosyalarını şifreler ve web uygulamanızda değişiklik yapılmasını gerektirmez.

  • Hassas verileri kendi veritabanına yerleştirin ve yalnızca bu veritabanı için şifrelemeyi açın. Bu yaklaşım, veritabanı şifreleme gecikme süresini en aza indirir.

  • Yerleşik şifreleme desteğini anlama. Azure Depolama, bekleyen verileri sunucu tarafı şifreleme (256 bit Gelişmiş Şifreleme Standardı (AES)) aracılığıyla otomatik olarak şifreler. Azure İzleyici, Microsoft tarafından yönetilen anahtarlar aracılığıyla durgun verileri otomatik olarak şifreler.

İdare

Azure İlkesi, web uygulamaları için mimari ve güvenlik kararlarının uygulanmasına yardımcı olur. Uyumsuz kaynakların dağıtılmasını engelleyebilir (reddetme modu) veya gözden geçirme (denetim modu) için bayrak ekleyebilir. Bu yaklaşım, yapılandırma kaymasının hedeflediğiniz mimariden sapmasını, ister kod olarak altyapı (IaC) dağıtımları ister Azure Portal üzerinden elle yapılan değişiklikler yoluyla meydana gelip gelmediğini tespit etmenize yardımcı olur.

Mimarinizdeki tüm kaynakları Azure Policy idaresi altına yerleştirin. 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. Aşağıdaki yerleşik ilkeleri göz önünde bulundurun:

  • 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 Ö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 Defender etkinleştirilmelidir.
  • Application Gateway için Azure Web Uygulaması Güvenlik Duvarı etkinleştirilmelidir.

Application Gateway ve ağ bileşenleri, App Service, Key Vault ve izleme bileşenleri gibi önemli hizmetler için daha yerleşik ilkelere bakın. Yerleşik ilkeler gereksinimlerinizi karşılamıyorsa özel ilkeler oluşturabilir veya Azure giriş bölgelerindeki ilkeler gibi topluluk ilkelerini kullanabilirsiniz. Mümkün olduğunda yerleşik ilkeleri tercih edin.

Kimlik ve erişim yönetimi

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

Kullanıcı kimlikleri
  • App Service için EasyAuth olarak da adlandırılan tümleşik kimlik doğrulama mekanizmasını kullanın. EasyAuth, web uygulamanızla kimlik sağlayıcısı tümleştirmesini 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. Yeniden yönlendirme URL'sini olarak https://<application-gateway-endpoint>/.auth/login/<provider>/callbackayarlayın.

    Uygulama ağ geçidinizin genel IP adresi veya özel etki alanı adını kullanarak <application-gateway-endpoint> öğesini değiştirin. <provider> ile aad gibi Microsoft Entra ID için olan kimlik doğrulama sağlayıcınızı değiştirin.

    Kurulum yönergeleri için bkz. Azure Front Door ile ilgili dikkat edilmesi gerekenler veya Application Gateway'i ayarlama.

İş yükü kimlikleri
  • İş yükü kimlikleri için yönetilen kimlikleri kullanın. Yönetilen kimlikler, 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 kimlikler, IaC 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. Kullanıcı tarafından atanan yönetilen kimlikler bu dağıtım hata senaryolarından bazılarını önler. 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 için tasarım gözden geçirme denetim listesi.

Temel App Service uygulaması için dağıtım , Azure Pipelines mimarisi yönergelerini izler. Temel mimari App Service'e genel erişimi reddettiğından ve sanal ağ içindeki dağıtım depolama hesabının güvenliğini sağladığından, sanal ağın dışından dağıtamazsınız. Bu kısıtlamayı gidermek için mimari, sanal ağ içinde çalışan kendi kendine barındırılan dağıtım aracılarını kullanır. Aşağıdaki dağıtım kılavuzu altyapı veya veritabanı değişikliklerine değil uygulama kodu dağıtımına odaklanır.

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

Dağıtım akışı

  1. Yayın hattı, kendi kendine barındırılan aracılar için iş kuyruğuna iş talebi gönderir. İş, ajanın yayın zip dosyası yapı eserini bir Depolama hesabına yüklemesini ister.

  2. Kendi sunucusunda barındırılan dağıtım aracısı kuyruğu yoklar, iş isteğini alır, işi ve yapı çıktısı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ı yeni yayınlanacak zip dosyasına atıfta bulunacak şekilde WEBSITE_RUN_FROM_PACKAGE uygulama ayarını güncellemek için bir komut satırı arayüzü (CLI) çağrısı yapar .

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

  6. Boru hattı kaldığı yerden devam eder ve ön kontrol testlerini çalıştırır veya manuel onay bekler. Başarılı testler veya onaylardan sonra işlem hattı hazırlama ve üretim yuvalarını değiştirir.

Dağıtım kılavuzu

Temel mimari için aşağıdaki dağıtım kılavuzunu uygulayın:

  • Dağıtım çakışmalarını önlemek için dağıtımınızı doğrudan App Service'teki bir paketten çalıştırın . Bu yaklaşım, dosyaları kopyalamak yerine ZIP paketini doğrudan salt okunur wwwroot dizini olarak bağlar. 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 çalışmasını sağlar.

  • Dağıtılan paket zip dosyası adlarına sürüm numaralarını ekleyin. Farklı bir dosya adına sahip dağıtım paketine başvurmak için uygulama ayarını güncelleştirdiğinizde WEBSITE_RUN_FROM_PACKAGE , App Service yeni paketi otomatik olarak çeker ve yeniden başlatır.

  • Dayanıklı kod dağıtımları için dağıtım yuvalarını kullanın.

  • Hem yönetilen hem de kendi kendine barındırılan ajanları kullanmayı göz önünde bulundurun.

  • Altyapı dağıtımlarını otomatikleştirmek için IaC kullanın.

  • Azure Yük Testi ve AzureChaos Studio gibi hizmetleri kullanarak iş yükü performansını ve dayanıklılığı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 sırlar yönetimi için aşağıdaki kılavuzu kullanın:

İzleme

İzleme, gözlemlenebilirlik sağlamak için bilgi teknolojisi (BT) sistemlerinden veri toplar ve analiz eder. Bu mimaride izleme, web uygulamasının sistem durumunu ve güvenliğini birden çok katmanda izler ve bu da güvenilir işlemlerin korunmasına yardımcı olur.

Üç ana katmanı izleme:

  • Uygulama kodu: Uygulamaya özgü telemetriyi ve özel ölçümleri izleyin.

  • Altyapı (çalışma zamanı): App Service çalışma zamanı ortamını izleyin.

  • Platform (Azure kaynakları): Application Gateway, SQL Veritabanı ve Key Vault gibi Azure hizmetlerinden ölçümleri ve günlükleri toplayın.

Daha fazla bilgi için bkz. Azure etkinlik günlüğü, Azure kaynak günlükleri ve App Service uygulama günlüğü.

Platformu izleme

Platform izleme, mimarinizdeki Azure hizmetlerinden veri toplar.

Application Gateway

Application Gateway , varsayılan sistem durumu yoklamaları aracılığıyla arka uç havuzu sistem durumunu izler. Zaman damgaları, HTTP yanıt kodları ve URL yolları gibi bilgileri toplamak için Application Gateway erişim günlüklerini kullanın. Daha fazla bilgi için bkz. Arka uç sistem durumu ve tanılama günlükleri.

Uygulama Servisi

App Service, gelişmiş gözlemlenebilirlik için yerleşik ve tümleşik izleme özellikleri sağlar. Web uygulamanızda işlem içi izleme gibi telemetri ve izleme özellikleri zaten varsa, bu özellikler App Service'te çalışmaya devam eder.

  • Kod değişikliği olmadan araç kullanımı kapsamını genişletmek için otomatik araç kullanımını açın. Bu özellik, uygulama performansı izleme (APM) görünürlüğü sağlar. Daha fazla bilgi için bkz. App Service performansını izleme.

  • Birden çok hizmet ve bağımlılık arasında istekleri izlemek için dağıtılmış izlemeyi açın. Dağıtılmış izleme ve performans profil oluşturucu aracılığıyla dağıtılmış bulut sistemlerini izleyebilirsiniz.

  • Özel telemetri için kod tabanlı izleme kullanın. Application 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.

  • Platform düzeyinde tanılama için App Service günlüklerini açın. App Service sorun giderme için dört günlük türü sağlar: uygulama günlükleri, web sunucusu günlükleri, ayrıntılı hata iletileri ve başarısız istek izleme.

  • 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 Bunları Log Analytics çalışma alanınızda depolamak için App Service'te uygulama günlüklerini açın.

  • Kullanılabilirliği korumak için App Service sistem durumu denetimi özelliğini açın. Sağlık denetimleri, iyi durumda olmayan örnekleri algılar, trafiği onlardan uzaklaştırır ve yenisiyle otomatik olarak değiştirir. Bu özellik için iki veya daha fazla App Service örneği gerekir.

Veritabanı

Performans Verimliliği

Performans Verimliliği, iş yükünüzün kullanıcı taleplerini verimli bir şekilde karşılayacak şekilde ölçeklendirebilmesini ifade eder. Daha fazla bilgi için bkz. Performans Verimliliğiiçin Tasarım gözden geçirme denetim listesi.

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 ödeme alırsınız.

  • 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 işlem birimi kullanımını kullanabilirsiniz.

  • Application Gateway alt ağı boyutlandırma hakkındaki yönergeleri izleyin.

Uygulama Servisi

  • Yüksek kullanılabilirlik için üç veya daha fazla çalışan örneği içeren Standart veya daha yüksek planları kullanın.

  • Talebi karşılamak için ölçeği artırıp azaltabileceğinizden emin olmak için otomatik ölçeklendirmeyi açın.

  • App Service'iniz sürekli olarak maksimum örnek sayısının yarısını kullanıyorsa en fazla çalışan sayısını örnek sayısının iki katına çıkarabilmek için bir destek bileti açmayı göz önünde bulundurun. Maksimum örnek sayısı, Premium App Service planı için varsayılan olarak 30'a ve Standart plan için 10'a kadardır.

  • App Service'iniz üst sınırlara ulaşmaya başladığında uygulamanın birden çok damgasını dağıtmayı göz önünde bulundurun.

  • İş yükü gereksinimlerinizi karşılayan doğru App Service planını seçin.

  • Kullanıcılarınıza daha yakın uç konumlardan görüntüler ve JavaScript dosyaları gibi statik varlıkları önbelleğe almak ve teslim etmek için App Service'e Azure Content Delivery Network ekleyin.

  • Gürültülü komşu sorunlarını önlemek için App Service Ortamını kullanmayı göz önünde bulundurun.

SQL Database

Veritabanı ölçeklendirme, bu mimarinin kapsamı dışında birçok önemli nokta içerir. SQL Veritabanını ölçeklendirme hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:

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
    • Karmaşık HTML çıkışı

Sonraki adımlar