App Service Ortamı kullanarak yüksek kullanılabilirlik kurumsal dağıtımı

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

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.

Kullanılabilirlik alanları , belirli bir bölgedeki veri merkezlerinin fiziksel olarak ayrılmış koleksiyonlarıdır. Kaynakların bölgeler arasında dağıtılması, bir bölgeyle sınırlı olan kesintilerin uygulamalarınızın kullanılabilirliğini etkilememesini sağlar. Bu mimaride, bir App Service Ortamı dağıtımının dayanıklılığını, bölge yeniden dağıtan bir mimaride dağıtarak nasıl geliştirebileceğiniz gösterilmektedir. Bu bölgeler yakınlık ile ilgili değildir. Farklı abonelikler için farklı fiziksel konumlarla eşlenebilir. Mimaride tek abonelikli dağıtım varsayılır.

App Service Ortamı alanlar arası yedekli olacak şekilde yapılandırdığınızda platform, Azure Uygulaması Hizmeti planının örneklerini seçilen bölgedeki üç bölgeye otomatik olarak dağıtır. Bu nedenle, en düşük App Service planı örnek sayısı her zaman üç'tür.

Kullanılabilirlik alanlarını destekleyen Azure hizmetleri bölgesel, alanlar arası yedekli veya her ikisi de olabilir. Bölgesel hizmetler belirli bir bölgeye dağıtılabilir. Alanlar arası yedekli hizmetler bölgeler arasında otomatik olarak dağıtılabilir. Ayrıntılı yönergeler ve öneriler için bkz . Kullanılabilirlik alanı desteği. önceki App Service Ortamı (v2) sürümü yalnızca bölgesel dağıtımları destekliyor, ancak geçerli sürüm (v3) alanlar arası yedekli dağıtımları destekliyor.

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

Mimari

Diagram that shows a reference architecture for high-availability deployment of App Service Environment.

Bu mimarinin bir Visio dosyasını indirin.

Bu başvuru uygulamasındaki App Service Ortamı alt ağlarındaki kaynaklar, standart App Service Ortamı dağıtım mimarisindekilerle aynıdır. Bu başvuru uygulaması, daha yüksek kullanılabilirlik sağlamak için App Service Ortamı v3 ve Redis için Azure Cache alanlar arası yedekli özelliklerini kullanır. Bu başvuru mimarisinin kapsamının tek bir bölgeyle sınırlı olduğunu unutmayın.

Workflow

Bu bölümde, bu mimaride kullanılan hizmetler için kullanılabilirlik durumu açıklanmaktadır:

  • App Service Ortamı v3, alanlar arası yedeklilik için yapılandırılabilir. Bölge yedekliliğini yalnızca App Service Ortamı oluşturulurken ve yalnızca tüm App Service Ortamı v3 bağımlılıklarını destekleyen bölgelerde yapılandırabilirsiniz. Alanlar arası yedekli App Service Ortamı her App Service planının üç bölgede dağıtılabilmesi için en az üç örneğe sahip olması gerekir. Minimum ücret dokuz örnek içindir. Daha fazla bilgi için bu fiyatlandırma kılavuzuna bakın. Ayrıntılı yönergeler ve öneriler için bkz. Kullanılabilirlik Alanları için destek App Service Ortamı.

  • Azure Sanal Ağ tek bir bölgedeki tüm kullanılabilirlik alanlarını kapsıyor. Sanal ağdaki alt ağlar da kullanılabilirlik alanları arasında yer alır. Daha fazla bilgi için App Service Ortamı için ağ gereksinimlerine bakın.

  • Application Gateway v2 alanlar arası yedeklidir. Sanal ağ gibi, bölge başına birden çok kullanılabilirlik alanına yayılabilir. Bu nedenle, başvuru mimarisinde gösterildiği gibi yüksek oranda kullanılabilir bir sistem için tek bir uygulama ağ geçidi yeterlidir. Başvuru mimarisi, Open Web Application Security Project'in (OWASP) Temel Kural Kümesi'nin (CRS) uygulanmasına bağlı olarak yaygın tehditlere ve güvenlik açıklarına karşı daha fazla koruma sağlayan Application Gateway'in WAF SKU'sunu kullanır. Daha fazla bilgi için bkz . Application Gateway v2 ve WAF v2'yi ölçeklendirme.

  • Azure Güvenlik Duvarı, yüksek kullanılabilirlik için yerleşik desteğe sahiptir. Ek yapılandırma olmadan birden çok bölgeyi geçebilir.

    Gerekirse, güvenlik duvarını dağıtırken belirli bir kullanılabilirlik alanı da yapılandırabilirsiniz. Daha fazla bilgi için bkz. Azure Güvenlik Duvarı ve Kullanılabilirlik Alanları. (Bu yapılandırma başvuru mimarisinde kullanılmaz.)

  • Microsoft Entra ID , kullanılabilirlik alanlarını ve bölgeleri kapsayan yüksek oranda kullanılabilir, yüksek oranda yedekli bir küresel hizmettir. Daha fazla bilgi için bkz . Microsoft Entra kullanılabilirliğini ilerletme.

  • GitHub Actions , bu mimaride sürekli tümleştirme ve sürekli dağıtım (CI/CD) özellikleri sağlar. App Service Ortamı sanal ağda olduğundan, App Service planlarındaki uygulamaları dağıtmak için sanal ağda 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.

  • Redis için Azure Cache alanlar arası yedekli bir hizmettir. Alanlar arası yedekli önbellek, birden çok kullanılabilirlik alanına dağıtılan VM'lerde çalışır. Bu hizmet daha yüksek dayanıklılık ve kullanılabilirlik sağlar.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanabileceğiniz 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.

Kullanılabilirlik

App Service Ortamı

İş açısından kritik iş yükleriniz için dayanıklılık ve güvenilirlik sağlamak için kullanılabilirlik alanları arasında App Service Ortamı dağıtabilirsiniz. Bu yapılandırma bölge yedekliliği olarak da bilinir.

Alanlar arası yedeklilik uyguladığınızda platform, App Service planının örneklerini seçilen bölgedeki üç bölgeye otomatik olarak dağıtır. Bu nedenle, en düşük App Service planı örnek sayısı her zaman üç'tür. Üçten büyük bir kapasite belirtirseniz ve örnek sayısı üçe bölünebiliyorsa örnekler eşit olarak dağıtılır. Aksi takdirde, kalan tüm örnekler kalan bölgeye eklenir veya kalan iki bölgeye dağıtılır.

  • App Service Ortamı oluştururken kullanılabilirlik alanlarını yapılandırabilirsiniz.
  • Bu App Service Ortamı oluşturulan tüm App Service planları için en az üç örnek gerekir. Bunlar otomatik olarak alanlar arası yedekli hale gelir.
  • Kullanılabilirlik alanlarını yalnızca yeni bir App Service Ortamı oluşturduğunuzda belirtebilirsiniz. Önceden var olan bir App Service Ortamı kullanılabilirlik alanlarını kullanacak şekilde dönüştüremezsiniz.
  • Kullanılabilirlik alanları yalnızca bölgelerin bir alt kümesinde desteklenir.

Daha fazla bilgi için bkz. App Service Ortamı kullanılabilirlik alanı desteğine geçirme.

Dayanıklılık

App Service Ortamı içinde çalışan uygulamalar Application Gateway için arka uç havuzunu oluşturur. Uygulamaya yönelik bir istek genel İnternet'ten geldiğinde, ağ geçidi isteği App Service Ortamı çalıştıran uygulamaya iletir. Bu başvuru mimarisi, ana web ön ucu votingAppiçinde sistem durumu denetimleri uygular. Bu durum araştırması web API'sinin ve Redis önbelleğinin iyi durumda olup olmadığını denetler. Startup.cs dosyasında bu araştırmayı uygulayan kodu görebilirsiniz:

            var uriBuilder = new UriBuilder(Configuration.GetValue<string>("ConnectionStrings:VotingDataAPIBaseUri"))
            {
                Path = "/health"
            };

            services.AddHealthChecks()
                .AddUrlGroup(uriBuilder.Uri, timeout: TimeSpan.FromSeconds(15))
                .AddRedis(Configuration.GetValue<string>("ConnectionStrings:RedisConnectionString"));

Aşağıdaki kod, commands_ha.azcli betiğinin arka uç havuzlarını ve uygulama ağ geçidi için sistem durumu araştırmasını nasıl yapılandırmış olduğunu gösterir:

# Generates parameters file for appgw script
cat <<EOF > appgwApps.parameters.json
[
{
    "name": "votapp",
    "routingPriority": 100,
    "hostName": "${APPGW_APP1_URL}",
    "backendAddresses": [
      {
        "fqdn": "${INTERNAL_APP1_URL}"
      }
    ],
    "certificate": {
      "data": "${CERT_DATA_1}",
      "password": "${PFX_PASSWORD}"
    },
    "probePath": "/health"
  }
]

Bileşenlerden herhangi biri (web ön ucu, API veya önbellek) sistem durumu yoklaması başarısız olursa, Application Gateway isteği arka uç havuzundaki diğer uygulamaya yönlendirir. Bu yapılandırma, isteğin her zaman tamamen kullanılabilir bir App Service Ortamı alt ağındaki uygulamaya yönlendirilmesini sağlar.

Sistem durumu yoklaması, standart başvuru uygulamasında da uygulanır. Burada, sistem durumu yoklaması başarısız olursa ağ geçidi yalnızca bir hata döndürür. Ancak yüksek oranda kullanılabilir uygulama, uygulamanın dayanıklılığını ve kullanıcı deneyiminin kalitesini artırır.

Maliyet iyileştirme

Maliyet iyileştirmesi gereksiz giderleri azaltmak ve operasyonel verimlilikleri iyileştirmektir. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

Yüksek kullanılabilirlik mimarisi için maliyetle ilgili dikkat edilmesi gerekenler, standart dağıtımınkine benzerdir.

Aşağıdaki farklılıklar maliyeti etkileyebilir:

  • Alanlar arası yedekli bir App Service Ortamı en az dokuz App Service planı örneği için ücretlendirilirsiniz. Daha fazla bilgi için bkz. fiyatlandırma App Service Ortamı.
  • Redis için Azure Cache ayrıca alanlar arası yedekli bir hizmettir. Alanlar arası yedekli önbellek, daha yüksek dayanıklılık ve kullanılabilirlik sağlamak için birden çok kullanılabilirlik alanına dağıtılan VM'lerde çalışır.

Yüksek oranda kullanılabilir, dayanıklı ve yüksek oranda güvenli bir sistemin maliyeti artar. İhtiyaçlarınızı fiyatlandırmaya göre değerlendirmek için fiyatlandırma hesaplayıcısını kullanın.

Dağıtma konuları

Bu başvuru uygulaması, yalnızca bir sıçrama kutusu VM'si ile standart dağıtımla aynı üretim düzeyi CI/CD işlem hattını kullanır. Ancak, üç bölgenin her biri için bir sıçrama kutusu kullanmaya karar vekleyebilirsiniz. Sıçrama kutusu uygulamanın kullanılabilirliğini etkilemediğinden bu mimaride yalnızca bir sıçrama kutusu kullanılır. Sıçrama kutusu yalnızca dağıtım ve test için kullanılır.

Bu senaryoyu dağıtın

Bu mimari için başvuru uygulamasını dağıtma hakkında bilgi için bkz . GitHub benioku. Yüksek kullanılabilirlik dağıtımı için betiği kullanın.

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

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

Sonraki adımlar

Beklenen en yüksek yük kapasitesine göre uygulamalarınızı aynı bölgede veya birkaç bölgede yatay olarak ölçeklendirerek bu mimariyi değiştirebilirsiniz. Uygulamalarınızı birden çok bölgede çoğaltmak, depremler veya diğer doğal afetler gibi daha geniş bir coğrafi veri merkezi hatası riskini azaltmaya yardımcı olabilir. Yatay ölçeklendirme hakkında daha fazla bilgi edinmek için bkz. App Service Ortamı ile Coğrafi Olarak Dağıtılmış Ölçek. Genel ve yüksek oranda kullanılabilir bir yönlendirme çözümü için Azure Front Door kullanmayı göz önünde bulundurun.