Düzenle

Aracılığıyla paylaş


Azure Uygulaması Hizmet Ortamı kullanılarak kurumsal dağıtım

Microsoft Entra ID
Azure Application Gateway
Azure App Service
Azure Firewall
Azure Virtual Network
Azure Private Link

Bu başvuru mimarisi, App Service Ortamı sürüm 3 kullanan ortak bir kurumsal iş yükünü gösterir. Ayrıca, iş yükünün güvenliğini güçlendirmek için en iyi yöntemleri açıklar.

Dekont

App Service Ortamı sürüm 3, bu mimarinin ana bileşenidir. Sürüm 3 kullanıma sunuldu. Sürüm 1 ve 2, 31 Ağustos 2024'te kullanımdan kaldırılacaktır.

GitHub logoBu mimari için bir başvuru uygulaması GitHub'da kullanılabilir.

Mimari

Diagram that shows an architecture for an App Service Environment deployment.

Bu mimarinin bir Visio dosyasını indirin.

Workflow

App Service Ortamı sürüm 3, önceki sürümlerden farklı özellikler ve bu sürümlere göre avantajlar sağlar. Daha fazla bilgi için bkz . Özellik farklılıkları. App Service Ortamı iki yolla dağıtabilirsiniz:

  • Genel IP adresi olan bir dış App Service Ortamı olarak
  • İç yük dengeleyiciye (ILB) ait bir iç IP adresine sahip bir iç App Service Ortamı olarak

Bu başvuru mimarisi, ILB App Service Ortamı olarak da adlandırılan bir iç App Service Ortamı kurumsal web uygulaması dağıtır. Senaryonuz şunları gerektirirken ILB App Service Ortamı kullanın:

  • İntranet uygulamalarını bulutta gelişmiş güvenlikle barındırın ve siteden siteye VPN veya Azure ExpressRoute aracılığıyla bunlara erişin.
  • Web uygulaması güvenlik duvarı (WAF) kullanarak uygulamalar için bir koruma katmanı sağlayın.
  • Genel DNS sunucularında listelenmeyen uygulamaları bulutta barındırma.
  • Ön uç uygulamalarınızın son derece güvenli bir şekilde tümleştirebileceği, İnternet'te yalıtılmış arka uç uygulamaları oluşturun.

App Service Ortamı gelen ve giden trafiğin sıkı denetimine izin vermek için her zaman kurumsal sanal ağdaki kendi alt ağında dağıtılmalıdır. Bu alt ağ içinde App Service uygulamaları, uygulamayı çalıştırmak için gereken fiziksel kaynaklardan oluşan bir koleksiyon olan bir veya daha fazla App Service planında dağıtılır. Karmaşıklık ve kaynak gereksinimine bağlı olarak, app service planı birden çok uygulama arasında paylaşılabilir. Bu başvuru uygulaması, özel bir web API'siyle ve bir işlevle etkileşim kuran Voting App adlı bir web uygulaması dağıtır. Ayrıca çok uygulamalı dağıtımları göstermek için Test Uygulaması adlı sahte bir web uygulaması dağıtır. Her App Service uygulaması kendi App Service planında barındırılır ve gerekirse her birinin bağımsız olarak ölçeklendirilmesine olanak sağlar. Depolama ve işlem gibi bu barındırılan uygulamaların gerektirdiği tüm kaynaklar ve ölçeklendirme gereksinimleri App Service Ortamı altyapısı tarafından tamamen yönetilir.

Bu uygulamadaki basit oylama uygulaması, kullanıcıların mevcut girdileri görüntülemesine, yeni girdiler oluşturmasına ve mevcut girdileri oy kullanmasına olanak tanır. Web API'si, girdilerin ve oyların oluşturulması ve alınması için kullanılır. Verilerin kendisi bir SQL Server veritabanında depolanır. Zaman uyumsuz veri güncelleştirmelerini göstermek için web uygulaması, Service Bus örneğine yeni eklenen oyları kuyruğa alır. İşlev, kuyruğa alınmış oyları alır ve SQL veritabanını güncelleştirir. Azure Cosmos DB, web uygulamasının tarayıcıda görüntülemek üzere aldığından bir sahte reklam depolamak için kullanılır. Uygulama, önbellek yönetimi için Redis için Azure Cache kullanır. Kendi alt ağında App Service Ortamı ile aynı sanal ağa yapılandırmaya olanak tanıyan bir Premium katman Redis için Azure Cache kullanılır. Bu, önbelleğe gelişmiş güvenlik ve yalıtım sağlar.

Web uygulamaları, Application Gateway aracılığıyla İnternet'e erişilebilen tek bileşenlerdir. API'ye ve işleve bir internet istemcisinden erişilemez. Gelen trafik, Application Gateway'de yapılandırılmış bir WAF tarafından korunur.

Components

Aşağıdaki hizmetler, bu mimarideki App Service Ortamı kilitlemek için önemlidir:

  • Azure Sanal Ağ, bir kuruluşa ait olan özel bir Azure bulut ağıdır. Gelişmiş ağ tabanlı güvenlik ve yalıtım sağlar. App Service Ortamı, kuruluşa ait sanal ağın alt ağına yapılan bir App Service dağıtımıdır. Kuruluşun ağ güvenlik gruplarını ve özel uç noktaları kullanarak ağ alanını ve eriştiği kaynakları sıkı bir şekilde denetlemesine olanak tanır.

  • Application Gateway , TLS/SSL boşaltma ve WAF ile uygulama düzeyinde bir web trafiği yük dengeleyicidir. Genel IP adresini dinler ve trafiği ILB App Service Ortamı uygulama uç noktasına yönlendirir. Bu uygulama düzeyinde yönlendirme olduğundan, trafiği aynı ILB App Service Ortamı içindeki birden çok uygulamaya yönlendirebilir. Daha fazla bilgi için bkz . Application Gateway birden çok site barındırma.

  • Azure Güvenlik Duvarı, web uygulamasından giden trafiği kısıtlamak için kullanılır. Özel uç nokta kanallarından gitmeyen giden trafik ve App Service Ortamı için gereken bir yönlendirme tablosu güvenlik duvarı alt asına yönlendirilir. Kolaylık sağlamak için bu mimari, hizmetler alt ağındaki tüm özel uç noktaları yapılandırıyor.

  • Microsoft Entra Id veya Microsoft Entra ID, Azure kaynaklarına ve hizmetlerine erişim hakları ve izin yönetimi sağlar. Yönetilen Kimlikler , hizmetlere ve uygulamalara kimlikler atar ve bu kimlikler Microsoft Entra Id tarafından otomatik olarak yönetilir. Bu kimlikler, Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için kullanılabilir. Bu, bu uygulamaların kimlik bilgilerini açıkça yapılandırma gereğini ortadan kaldırır. Bu mimari, web uygulamasına yönetilen bir kimlik atar.

  • Azure Key Vault , uygulamaların gerektirdiği gizli dizileri ve kimlik bilgilerini depolar. Gizli dizileri doğrudan uygulamada depolamak için bu seçeneği kullanın.

  • GitHub Actions , bu mimaride sürekli tümleştirme ve sürekli dağıtım özellikleri sağlar. App Service Ortamı sanal ağda olduğundan, app Service planlarındaki uygulamaları dağıtmak için sanal ağın içinde sıçrama kutusu olarak bir sanal makine kullanılır. Eylem, uygulamaları sanal ağın dışında oluşturur. Gelişmiş güvenlik ve sorunsuz RDP/SSH bağlantısı için sıçrama kutusu için Azure Bastion'ı kullanmayı göz önünde bulundurun.

Çok siteli yapılandırma

Diagram that shows a multi-site deployment.

Bu mimarinin bir Visio dosyasını indirin.

İç App Service Ortamı, HTTP uç noktalarıyla çeşitli web uygulamaları ve API'ler barındırabilir. ILB IP'sine yalnızca Sanal Ağ içinden erişilebildiği için bu uygulamalar genel İnternet'ten kilitlenir. Application Gateway , bu uygulamaları seçmeli olarak İnternet'te kullanıma açmak için kullanılır. App Service Ortamı her App Service uygulamasına varsayılan URL'yi olarak <default-appName>.<app-service-environment-domain>.appserviceenvironment.netatar. App Service Ortamı etki alanı adını App Service Ortamı ILB IP adresiyle eşleyen özel bir DNS bölgesi oluşturulur. Bu, sanal ağ içindeki uygulamalara erişmek için özel DNS kullanmaktan kaçınıyor.

Application Gateway, bir dinleyicinin ağ geçidinin IP adresine yönelik istekler için HTTPS bağlantı noktasında dinlemesi için yapılandırılır. Kolaylık sağlamak için bu uygulama genel DNS adı kaydı kullanmaz. Bilgisayarınızda localhost dosyasını, rastgele seçilen bir URL'yi Application Gateway IP'sine işaret etmek için değiştirmeniz gerekir. Kolaylık olması için dinleyici, bu istekleri işlemek için otomatik olarak imzalanan bir sertifika kullanır. Application Gateway'de her App Service uygulamasının varsayılan URL'si için arka uç havuzları vardır. Dinleyiciyi arka uç havuzuna bağlamak için bir yönlendirme kuralı yapılandırılır. Ağ geçidi ile App Service Ortamı arasındaki bağlantının şifrelenip şifrelenmeyeceğini belirleyen HTTP ayarları oluşturulur. Bu ayarlar, arka uç havuzundan seçilen bir konak adıyla gelen HTTP ana bilgisayar üst bilgisini geçersiz kılmak için de kullanılır. Bu uygulama, ağ geçidi tarafından güvenilen varsayılan App Service Ortamı uygulama URL'leri için oluşturulan varsayılan sertifikaları kullanır. İstek, ilgili uygulamanın varsayılan URL'sine yönlendirilir. Sanal ağa bağlı özel DNS, bu isteği ILB IP'sine iletir. App Service Ortamı bunu istenen uygulama hizmetine iletir. App Service Ortamı uygulamalarındaki tüm HTTP iletişimleri özel DNS üzerinden gider. Dinleyici, arka uç havuzu, yönlendirme kuralı ve HTTP ayarlarının her App Service Ortamı uygulama için uygulama ağ geçidinde yapılandırılması gerektiğini unutmayın.

Birden çok siteye izin vermek için bu yapılandırmaların nasıl yapıldığını öğrenmek için appgw.bicep ve dns.bicep'i gözden geçirin. adlı testapp web uygulaması, bu yapılandırmayı göstermek için oluşturulmuş boş bir uygulamadır. Bu JSON dosyalarına commands_std.azcli dağıtım betiğinden erişilir. Bunlara yüksek kullanılabilirlikli çok siteli App Service Ortamı dağıtımı için kullanılan commands_ha.azcli tarafından da erişilir.

Senaryo ayrıntıları

Azure Uygulaması Hizmeti, Azure'da çeşitli uygulamaları barındırmak için kullanılan bir PaaS hizmetidir: web uygulamaları, API uygulamaları, işlevler ve mobil uygulamalar. App Service Ortamı, kuruluşların App Service uygulamalarını kendi Azure Sanal Ağ bir alt ağda dağıtarak bulut iş yükleri için yalıtılmış, yüksek oranda ölçeklenebilir ve ayrılmış bir ortam sağlamasına olanak tanır.

Dikkat edilmesi gerekenler

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üvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.

App Service Ortamı

Kurumsal sanal ağda bir iç App Service Ortamı dağıtılır ve genel İnternet'ten gizlenir. Kuruluşun web API'leri ve işlevleri gibi arka uç hizmetlerini ağ düzeyinde kilitlemesine olanak tanır. HTTP uç noktası olan herhangi bir App Service Ortamı uygulamasına sanal ağ içinden ILB üzerinden erişilebilir. Application Gateway, istekleri ILB aracılığıyla web uygulamasına iletecek şekilde yapılandırılmıştır. Web uygulamasının kendisi API'ye erişmek için ILB'nin içinden geçer. Kritik arka uç bileşenleri, yani API ve işlev, genel İnternet'ten etkili bir şekilde erişilemez.

App Service Ortamı tarafından atanan varsayılan etki alanı adı için her uygulama hizmeti için varsayılan sertifikalar oluşturulur. Bu sertifika, ağ geçidi ile uygulama arasındaki trafiğin güvenliğini artırabilir ve belirli senaryolarda gerekli olabilir. Bu sertifikalar istemci tarayıcısı üzerinden görünmez. Yalnızca Application Gateway'de yapılandırılan sertifikalara yanıt verebilir.

Application Gateway

Başvuru uygulaması appgw.bicep dosyasında program aracılığıyla Application Gateway'i yapılandırıyor. commands_std.azcli dosyası, ağ geçidini dağıtırken bu yapılandırmayı kullanır:

az deployment group create --resource-group $RGNAME --template-file templates/appgw.bicep --parameters vnetName=$VNET_NAME appgwSubnetAddressPrefix=$APPGW_PREFIX appgwApplications=@appgwApps.parameters.json
APPGW_PUBLIC_IP=$(az deployment group show -g $RGNAME -n appgw --query properties.outputs.appGwPublicIpAddress.value -o tsv)
Şifreleme

Application Gateway ile TLS sonlandırma ve uçtan uca TLS'ye genel bakış bölümünde açıklandığı gibi Application Gateway, web tarayıcılarındaki tüm trafiği şifrelemek ve korumak için Aktarım Katmanı Güvenliği (TLS)/Güvenli Yuva Katmanı (SSL) kullanabilir. Şifreleme aşağıdaki yollarla yapılandırılabilir:

  • Şifreleme ağ geçidinde sonlandırıldı. Bu örnekte arka uç havuzları HTTP için yapılandırılır. Şifreleme ağ geçidinde durur ve ağ geçidi ile uygulama hizmeti arasındaki trafik şifrelenmemiştir. Şifreleme yoğun CPU kullandığından arka uçtaki şifrelenmemiş trafik performansı artırır ve daha basit sertifika yönetimine olanak tanır. Bu, arka uç ağ yapılandırması sayesinde güvenli hale getirildiğinden makul bir güvenlik düzeyi sağlar.

  • Uçtan uca şifreleme. Belirli güvenlik veya uyumluluk gereksinimleri gibi bazı senaryolarda, trafiğin ağ geçidi ile uygulama arasında şifrelenmeleri gerekebilir. Bu, HTTPS bağlantısı kullanılarak ve arka uç havuzunda sertifikalar yapılandırılarak elde edilir.

Bu başvuru uygulaması, Application Gateway için otomatik olarak imzalanan sertifikaları kullanır. Üretim kodu için, Sertifika Yetkilisi tarafından verilen bir sertifika kullanılmalıdır. Desteklenen sertifika türlerinin listesi için bkz . TLS sonlandırma için desteklenen sertifikalar. Ağ geçidiyle sonlandırılan şifrelemenin nasıl oluşturulacağını öğrenmek için Bkz . Azure portalını kullanarak TLS sonlandırma ile uygulama ağ geçidi yapılandırma. appgw.bicep'teki aşağıdaki kod satırları bunu program aracılığıyla yapılandırabilir:

          httpListeners: [for item in appgwApplications: {
          name: '${appgwListenerName}${item.name}'
          properties: {
            frontendIPConfiguration: {
              id: '${appgwId}/frontendIPConfigurations/${appgwFrontendName}'
            }
            frontendPort: {
              id: '${appgwId}/frontendPorts/port_443'
            }
            protocol: 'Https'
            sslCertificate: {
              id: '${appgwId}/sslCertificates/${appgwSslCertificateName}${item.name}'
            }
            hostName: item.hostName
            requireServerNameIndication: true
          }
        }]

Başvuru uygulaması, Application Gateway ile App Service Ortamı web uygulamaları arasındaki trafik için uçtan uca şifrelemeyi gösterir. Varsayılan SSL sertifikaları kullanılır. Bu uygulamadaki arka uç havuzları, ana bilgisayar adı web uygulamalarıyla ilişkilendirilmiş varsayılan etki alanı adları tarafından geçersiz kılınan HTTPS trafiğini yeniden yönlendirecek şekilde yapılandırılır. Application Gateway, Microsoft tarafından verildiğinden varsayılan SSL sertifikalarına güvenir. Bu yapılandırmaların nasıl yapıldığı hakkında bilgi için bkz . Application Gateway ile App Service'i yapılandırma. appgw.bicep dosyasındaki aşağıdaki kod, bunun başvuru uygulamasında nasıl yapılandırıldığını gösterir:

        backendHttpSettingsCollection: [for item in appgwApplications: {
        name: '${appgwHttpSettingsName}${item.name}'
        properties: {
          port: 443
          protocol: 'Https'
          cookieBasedAffinity: 'Disabled'
          pickHostNameFromBackendAddress: true
          requestTimeout: 20
          probe: {
            id: '${appgwId}/probes/${appgwHealthProbeName}${item.name}'
          }
        }
      }]
Web Uygulaması Güvenlik Duvarı

Application Gateway'de Web Uygulaması Güvenlik Duvarı (WAF), web uygulamalarını SQL ekleme gibi kötü amaçlı saldırılara karşı korur. Ayrıca gerçek zamanlı bir günlük kullanarak saldırıları izlemek için Azure İzleyici ile tümleştirilmiştir. Azure portalını kullanarak bir Web Uygulaması Güvenlik Duvarı ile uygulama ağ geçidi oluşturma bölümünde açıklandığı gibi WAF'nin ağ geçidinde etkinleştirilmesi gerekir. Başvuru uygulaması, aşağıdaki kod parçacığıyla appgw.bicep dosyasında program aracılığıyla WAF'yi etkinleştirir:

        webApplicationFirewallConfiguration: {
        enabled: true
        firewallMode: 'Detection'
        ruleSetType: 'OWASP'
        ruleSetVersion: '3.0'
      }

Sanal Ağ

Ağ güvenlik grupları , sanal ağdaki bir veya daha fazla alt ağ ile ilişkilendirilebilir. Bunlar, çeşitli Azure kaynakları arasında trafiğin akmasına izin veren veya trafiği reddeden güvenlik kurallarıdır. Bu mimari, her alt ağ için ayrı bir ağ güvenlik grubunu ilişkilendirir. Bu, bu alt ağda yer alan hizmetlere göre alt ağ başına bu kuralların ince ayarlanmasını sağlar. Örneğin, App Service Ortamı alt ağı için ağ güvenlik grubu için ase.bicep dosyasında ve Application Gateway alt ağı için ağ güvenlik grubu için appgw.bicep dosyasındaki yapılandırmasına "type": "Microsoft.Network/networkSecurityGroups" bakın.

Özel uç noktalar, özel ağ üzerinden istemciler ve Azure hizmetleri arasında gelişmiş güvenlikli özel bağlantı sağlar. Azure hizmeti için özel olarak erişilebilir bir IP adresi sağlayarak bir Azure Özel Bağlantı kaynağına gelişmiş güvenlik trafiği sağlar. Platform ağ bağlantılarını doğrulayarak yalnızca belirtilen Özel Bağlantı kaynağına bağlananlara izin verir. Özel uç noktalar ağ güvenlik grupları, kullanıcı tanımlı yollar ve uygulama güvenlik grupları gibi ağ ilkelerini destekler. Güvenliği geliştirmek için, bunları destekleyen tüm Azure hizmetleri için özel uç noktaları etkinleştirmeniz gerekir. Daha sonra genel erişimi devre dışı bırakarak ve genel İnternet'ten erişimi etkili bir şekilde engelleyerek sanal ağdaki hizmetin güvenliğini geliştirebilirsiniz. Bu mimaride, onu destekleyen hizmetler için özel uç noktalar yapılandırılır: Azure Service Bus, SQL Server, Key Vault ve Azure Cosmos DB. Yapılandırmayı privatendpoints.bicep dosyasında görebilirsiniz.

Özel uç noktaları etkinleştirmek için özel DNS bölgelerini de yapılandırmanız gerekir. Daha fazla bilgi için bkz. Azure Özel Uç Nokta DNS yapılandırması.

Güvenlik Duvarı

Azure Güvenlik Duvarı ve özel uç noktalar birbirini tamamlar. Özel uç noktalar, yalnızca sanal ağınızdan kaynaklanan trafiğe izin vererek kaynakların korunmasına yardımcı olur. Azure Güvenlik Duvarı, uygulamalarınızdan giden trafiği kısıtlamanıza olanak tanır. Özel uç nokta trafiği de dahil olmak üzere tüm giden trafiğin güvenlik duvarı alt a alanından geçmesine izin vermenizi öneririz. Bu, giden trafiğin daha iyi izlenmesini sağlar. Kolaylık olması açısından, bu başvuru mimarisi güvenlik duvarı alt ağı yerine hizmetler alt ağındaki tüm özel uç noktaları yapılandırıyor.

Azure Güvenlik Duvarı'ın App Service Ortamı ile nasıl tümleştirdiğini öğrenmek için bkz. App Service Ortamı ile Azure Güvenlik Duvarı yapılandırma. Özel uç noktalardan ve sanal ağ yönlendirme tablosundan geçmeyen tüm trafik güvenlik duvarı tarafından izlenir ve geçitlenir.

Microsoft Entra ID

Microsoft Entra ID, uygulamaların kimliğini doğrulamak ve kaynaklara erişim yetkisi vermek için güvenlik özellikleri sağlar. Bu başvuru mimarisi, Microsoft Entra Id'nin iki temel özelliğini kullanır: yönetilen kimlikler ve Azure rol tabanlı erişim denetimi.

Bulut uygulamalarında, bulut hizmetlerinde kimlik doğrulaması yapmak için gereken kimlik bilgilerinin güvenliği sağlanmalıdır. İdeal olan, kimlik bilgilerinin hiçbir zaman geliştirici iş istasyonlarında görünmemesi veya kaynak denetimine iade edilmemesidir. Azure Key Vault kimlik bilgilerini ve gizli dizileri güvenli bir şekilde depolamak için bir yol sağlar, ancak uygulamanın bunları almak için Key Vault'ta kimlik doğrulaması gerçekleştirmesi gerekir. Azure kaynakları için Yönetilen Kimlikler, Azure hizmetlerine Microsoft Entra Id'de otomatik olarak yönetilen bir kimlik sağlar. Bu kimlik, Uygulama'da hiçbir kimlik bilgisi olmadan Key Vault dahil olmak üzere Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir hizmette kimlik doğrulaması yapmak için kullanılabilir.

Azure rol tabanlı erişim denetimi (Azure RBAC), Azure kaynaklarına erişimi yönetir. Buna aşağıdakiler dahildir:

  • Erişime sahip olan varlık: kullanıcı, yönetilen kimlik, güvenlik sorumlusu.
  • Sahip, katkıda bulunan, okuyucu, yönetici gibi erişim türleri.
  • Erişimin kapsamı: kaynak, kaynak grubu, abonelik veya yönetim grubu.

Gerekli rolü ve her uygulama için erişim türünü sıkı bir şekilde denetleyerek App Service Ortamı uygulamalara erişimi kilitleyebilirsiniz. Bu şekilde, farklı geliştirme ekiplerinden aynı App Service Ortamı birden çok uygulama dağıtılabilir. Örneğin, ön uç bir ekip tarafından, arka uç ise başka bir ekip tarafından işlenebilir. Azure RBAC, her ekibin üzerinde çalıştığı uygulamalara erişimini sınırlamak için kullanılabilir. Kuruluşunuza uygun roller oluşturmak için Azure özel rollerini keşfedin.

Anahtar Kasası

Bazı hizmetler yönetilen kimlikleri destekler, ancak uygulama izinlerini ayarlamak için Azure RBAC kullanır. Örneğin, bkz. Azure Cosmos DB'de yerleşik Service Bus rolleri ve Azure RBAC. Katkıda Bulunan erişimi olan personel bu hizmetleri dağıtabilse bile, bu izinleri vermek için aboneliğe sahip erişimi gerekir. Daha geniş bir geliştirici ekibinin dağıtım betiklerini çalıştırabilmesine izin vermek için, bir sonraki en iyi seçenek hizmetin yerel erişim denetimi ilkelerini kullanmaktır:

Bu erişim denetimi ilkeleri için bağlantı dizesi daha sonra Key Vault'ta depolanır. Kasaya Azure RBAC gerektiren yönetilen kimlikler aracılığıyla erişilir. Bu bağlantı dizesi için erişim ilkesini uygun şekilde ayarlayın. Örneğin, varsayılan kök erişim ilkesini kullanmak yerine arka uç için salt okunur, ön uç için salt yazma vb.

services.bicep dosyasındaki aşağıdaki kod, bu hizmetler için Key Vault yapılandırmasını gösterir:

      resource keyVaultName_CosmosKey 'Microsoft.KeyVault/vaults/secrets@2022-07-01' = {
      parent: keyVaultName
      name: 'CosmosKey'
      properties: {
        value: cosmosName.listKeys().primaryMasterKey 
      }
    }

      resource keyVaultName_ServiceBusListenerConnectionString 'Microsoft.KeyVault/vaults/secrets@2022-07-01' = {
      parent: keyVaultName
      name: 'ServiceBusListenerConnectionString'
      properties: {
        value: listKeys(serviceBusName_ListenerSharedAccessKey.id, '2021-11-01').primaryConnectionString
      }
    }

      resource keyVaultName_ServiceBusSenderConnectionString 'Microsoft.KeyVault/vaults/secrets@2022-07-01' = {
      parent: keyVaultName
      name: 'ServiceBusSenderConnectionString'
      properties: {
        value: listKeys(serviceBusName_SenderSharedAccessKey.id, '2021-11-01').primaryConnectionString
      }
    }

Bu bağlantı dizesi değerlerine, Key Vault anahtar/değer çifti başvuruda bulunan uygulamalar tarafından erişilir. Bu, aşağıdaki Voting App kodunda gösterildiği gibi sites.bicep dosyasında yapılır:

  properties: {
    enabled: true
    hostingEnvironmentProfile: {
      id:aseId
    }
    serverFarmId: votingWebPlanName.id
    siteConfig: {
      appSettings: [
        {
          name: 'ConnectionStrings:sbConnectionString'
          value: '@Microsoft.KeyVault(SecretUri=${reference(resourceId('Microsoft.KeyVault/vaults/secrets', keyVaultName, serviceBusSenderConnectionStringSecretName), '2022-07-01').secretUriWithVersion})'
        }
        {
          name: 'ConnectionStrings:RedisConnectionString'
          value: '@Microsoft.KeyVault(SecretUri=${reference(keyVaultName_redisSecretName.id, '2022-07-01').secretUriWithVersion})'
        }
        {
          name: 'ConnectionStrings:CosmosKey'
          value: '@Microsoft.KeyVault(SecretUri=${reference(resourceId('Microsoft.KeyVault/vaults/secrets', keyVaultName, cosmosKeySecretName), '2022-07-01').secretUriWithVersion})'
        }
      ]
    }
  }

İşlev, Service Bus dinleyicisine de benzer şekilde bağlantı dizesi erişir.

Ölçeklenebilirlik

Ölçeklenebilir uygulamalar tasarlama

Bu başvuru mimarisindeki uygulama, tek tek bileşenlerin kullanıma göre ölçeklendirilebilmesi için yapılandırılmıştır. Her web uygulaması, API ve işlev kendi App Service planında dağıtılır. Her uygulamayı performans sorunları için izleyebilir ve gerekirse ölçeği artırabilirsiniz .

Application Gateway'i otomatik ölçeklendirme

Otomatik ölçeklendirme, Azure Uygulaması lication Gateway V2'de etkinleştirilebilir. Bu, Application Gateway'in trafik yükü desenlerine göre ölçeği artırmasına veya azaltmasına olanak tanır. Bu başvuru mimarisi appgw.bicep dosyasında sıfır ile 10 ek örnek arasında ölçeklendirilecek şekilde yapılandırılırautoscaleConfiguration. Daha fazla ayrıntı için bkz . Application Gateway ve WAF v2'yi ölçeklendirme.

Dağıtım

Bu başvuru mimarisindeki dağıtım betikleri App Service Ortamı, diğer hizmetleri ve App Service Ortamı içindeki uygulamaları dağıtmak için kullanılır. Bu uygulamalar dağıtıldıktan sonra kuruluşlar, uygulama bakımı ve yükseltmeleri için sürekli tümleştirme ve dağıtım planına sahip olmak isteyebilir. Bu bölümde geliştiricilerin App Service Ortamı uygulamalarının CI/CD'si için kullandığı yaygın yollardan bazıları gösterilmektedir.

Uygulamalar yalnızca sanal ağın içinden bir iç App Service Ortamı dağıtılabilir. Aşağıdaki üç yöntem, App Service Ortamı uygulamaları dağıtmak için yaygın olarak kullanılır:

  • Sanal Ağ içinde el ile: Dağıtım için gerekli araçlarla App Service Ortamı sanal ağının içinde bir sanal makine oluşturun. NSG yapılandırması kullanarak VM'ye RDP bağlantısını açın. Kod yapıtlarınızı VM'ye kopyalayın, derleyin ve App Service Ortamı alt aya dağıtın. Bu, ilk derleme ve test geliştirme ortamını ayarlamanın basit bir yoludur. Ancak gerekli dağıtım aktarım hızını ölçeklendiremediğinden üretim ortamı için önerilmez.

  • Yerel iş istasyonundan noktadan siteye bağlantı: Bu, App Service Ortamı sanal ağınızı geliştirme makinenize genişletmenize ve oradan dağıtmanıza olanak tanır. Bu, ilk geliştirme ortamını ayarlamanın başka bir yoludur ve üretim için önerilmez.

  • Azure Pipelines aracılığıyla: Bu işlem, sanal ağın içinde bulunan bir aracıyla biten eksiksiz bir CI/CD işlem hattı uygular. Bu, yüksek dağıtım aktarım hızı gerektiren üretim ortamları için idealdir. Derleme işlem hattı tamamen sanal ağın dışında kalır. Dağıtım işlem hattı, yerleşik nesneleri sanal ağ içindeki derleme aracısına kopyalar ve ardından App Service Ortamı alt ağına dağıtır. Daha fazla bilgi için İşlem Hatları ile App Service Ortamı sanal ağı arasındaki şirket içinde barındırılan derleme aracısı hakkındaki bu tartışmayı okuyun.

Üretim ortamları için Azure Pipelines kullanılması önerilir. Azure Pipelines YAML şemasının yardımıyla CI/CD betiği oluşturma, derleme ve dağıtım işlemlerini otomatikleştirmeye yardımcı olur. azure-pipelines.yml, bu başvuru uygulamasında web uygulaması için böyle bir CI/CD işlem hattı uygular. Web API'si ve işlevi için benzer CI/CD betikleri vardır. Bunların her uygulama için CI/CD'yi otomatikleştirmek için nasıl kullanıldığını öğrenmek için Bkz . Azure Pipelines'ı kullanma.

Bazı kuruluşlar, sanal ağ içinde kalıcı bir derleme aracısı tutmak istemeyebilir. Bu durumda DevOps işlem hattı içinde bir derleme aracısı oluşturmayı ve dağıtım tamamlandıktan sonra yok etmeyi seçebilirsiniz. Bu, DevOps'a başka bir adım ekler, ancak VM'yi korumanın karmaşıklığını azaltır. Kapsayıcıları VM'ler yerine derleme aracıları olarak kullanmayı da düşünebilirsiniz. Derleme aracıları, genellikle bir depolama hesabında sanal ağın dışına yerleştirilmiş sıkıştırılmış bir dosyadan dağıtılarak da tamamen önlenebilir. Depolama hesabına App Service Ortamı erişilebilir olması gerekir. İşlem hattı depolama alanına erişebilmelidir. Yayın işlem hattının sonunda sıkıştırılmış bir dosya blob depolama alanına bırakılabilir. App Service Ortamı bunu alıp dağıtabilir. Bu yaklaşımın aşağıdaki sınırlamalarına dikkat edin:

  • DevOps ile gerçek dağıtım işlemi arasında bir bağlantı kesildiğinden, dağıtım sorunlarını izleme ve izleme konusunda güçlükler yaşanıyor.
  • Güvenli trafiğin olduğu kilitli bir ortamda, depolamadaki sıkıştırılmış dosyaya erişmek için kuralları değiştirmeniz gerekebilir.
  • Zip'ten dağıtım yapabilmek için App Service Ortamı belirli uzantıları ve araçları yüklemeniz gerekir.

Uygulamaların App Service planlarına dağıtılma yollarını öğrenmek için dağıtım stratejilerine odaklanan App Service makalelerini okuyun.

Maliyet iyileştirme

Maliyetleri tahmin etmek için Azure fiyatlandırma hesaplayıcısını kullanın. Diğer önemli noktalar, Microsoft Azure İyi Tasarlanmış Çerçeve'nin Maliyet bölümünde açıklanmıştır. Azure Rezervasyonları birçok Azure kaynağı için bir yıllık veya üç yıllık planları kabul ederek tasarruf etmenize yardımcı olur. Rezervasyon satın alma makalesinde daha fazla bilgi edinin.

Bu mimaride kullanılan bazı önemli hizmetler için göz önünde bulundurmanız gereken bazı noktalar aşağıdadır.

App Service Ortamı v3

App Service için çeşitli fiyatlandırma seçenekleri mevcuttur. Yalıtılmış v2 Hizmet Planı kullanılarak bir App Service Ortamı dağıtılır. Bu plan içinde, I1v2 ile I6v2 arasında CPU boyutları için birden çok seçenek vardır. Bu başvuru uygulaması örnek başına üç I1v2 kullanır.

Application Gateway

Application Gateway fiyatlandırması çeşitli fiyatlandırma seçenekleri sağlar. Bu uygulama, otomatik ölçeklendirmeyi ve alanlar arası yedekliliği destekleyen Application Gateway Standard v2 ve WAF v2 SKU'yu kullanır. Bu SKU için kullanılan fiyatlandırma modeli hakkında daha fazla bilgi için bkz . Application Gateway v2 ve WAF v2'yi ölçeklendirme.

Redis için Azure Önbelleği

Redis için Azure Cache fiyatlandırma, bu hizmet için çeşitli fiyatlandırma seçenekleri sağlar. Bu mimaride sanal ağ desteği için Premium SKU kullanılır.

aşağıda, App Service Ortamı kilitlemek için kullanılan diğer hizmetlerin fiyatlandırma sayfaları yer almaktadır:

Bu senaryoyu dağıtın

Bu mimariye yönelik başvuru uygulamasını dağıtmak için GitHub benioku dosyasına bakın ve standart dağıtım betiğini izleyin.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Diğer katkıda bulunanlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar

Bu mimariyi yüksek kullanılabilirliği destekleyecek şekilde genişletmeyi öğrenmek için App Services Ortamı'nı kullanarak yüksek kullanılabilirlik uygulaması dağıtımı konusuna bakın.