.NET için güvenilir web uygulaması deseni - Uygulamayı planlama

Azure App Service
Azure Front Door
Azure Cache for Redis
.NET

Bu makalede Reliable Web App deseninin nasıl uygulanacağı gösterilmektedir. Reliable Web App düzeni, buluta geçiş yaparken web uygulamalarını nasıl değiştirmeniz gerektiğini (yeniden platform) tanımlayan bir dizi ilke ve uygulama tekniğidir . Bulutta başarılı olmak için yapmanız gereken en düşük kod güncelleştirmelerine odaklanır.

Bu kılavuzun uygulanmasını kolaylaştırmak için, dağıtabileceğiniz Reliable Web App deseninin bir başvuru uygulaması vardır.

Başvuru uygulamasının mimarisini gösteren diyagram.Başvuru uygulamasının mimarisi. Bu mimarinin Visio dosyasını indirin.

Aşağıdaki kılavuz, başvuru uygulamasını örnek olarak tüm aşamalarda kullanır. Reliable Web App düzeninin bir uygulamasını planlamak için şu adımları izleyin:

İş hedeflerini tanımlama

Bulut bilişime geçişin ilk adımı, iş hedeflerinizi ifade etmektir. Reliable Web App düzeni, web uygulamanız için hem anında hem de gelecekteki hedefleri ayarlamanın önemini vurgular. Bu hedefler, bulut hizmetleri seçiminizi ve buluttaki web uygulamanızın mimarisini etkiler.

Örnek: Kurgusal Relecloud şirketi, şirket içi web uygulaması aracılığıyla bilet satıyor. Relecloud'un olumlu bir satış tahmini vardır ve bilet oluşturma web uygulamasına olan talebin artacağını tahmin eder. Bu talebi karşılamak için web uygulamasının hedeflerini tanımladılar:

  • Düşük maliyetli, yüksek değerli kod değişiklikleri uygulama
  • %99,9 hizmet düzeyi hedeflerine (SLO) ulaşma
  • DevOps uygulamalarını benimseme
  • Maliyet için iyileştirilmiş ortamlar oluşturma
  • Güvenilirliği ve güvenliği geliştirme

Relecloud'un şirket içi altyapısı bu hedeflere ulaşmak için uygun maliyetli bir çözüm değildi. Bu nedenle, web uygulamalarını Azure'a geçirmenin, anlık ve gelecekteki hedeflerine ulaşmanın en uygun maliyetli yolu olduğuna karar verdiler.

Doğru yönetilen hizmetleri seçme

Bir web uygulamasını buluta taşıdığınızda, iş gereksinimlerinizi karşılayan ve şirket içi web uygulamasının geçerli özellikleriyle uyumlu Azure hizmetlerini seçmeniz gerekir. Hizalama, yeniden platform oluşturma çabasını en aza indirmeye yardımcı olur. Örneğin, aynı veritabanı altyapısını tutmanıza ve mevcut ara yazılımları ve çerçeveleri desteklemenize olanak sağlayan hizmetleri kullanın. Aşağıdaki bölümlerde, web uygulamanız için doğru Azure hizmetlerini seçmeye yönelik yönergeler sağlanır.

Örnek: Buluta geçmeden önce Relecloud'un bilet oluşturma web uygulaması şirket içi, monolitik ASP.NET bir uygulamaydı. İki sanal makinede çalıştı ve bir Microsoft SQL Server veritabanı vardı. Web uygulaması ölçeklenebilirlik ve özellik dağıtımında sık karşılaşılan zorluklardan muzdariptir. Bu başlangıç noktası, iş hedefleri ve SLO hizmet seçimlerini başlattı.

Uygulama platformu

Web uygulamanız için en iyi uygulama barındırma platformunu seçin. Azure' ın çeşitli web uygulamaları gereksinimlerini karşılamak için birçok farklı işlem seçeneği vardır. Daraltma seçenekleriyle ilgili yardım için bkz. Azure işlem karar ağacı.

Örnek: Relecloud, aşağıdaki nedenlerle uygulama platformu olarak Azure Uygulaması Hizmeti'ni seçti:

  • Yüksek hizmet düzeyi sözleşmesi (SLA): %99,9 üretim ortamı SLO'sunu karşılayan yüksek bir SLA'ya sahiptir.

  • Azaltılmış yönetim yükü: Ölçeklendirmeyi, sistem durumu denetimlerini ve yük dengelemeyi işleyen tam olarak yönetilen bir çözüm.

  • .NET desteği: Uygulamanın yazıldığını .NET sürümünü destekler.

  • Kapsayıcıya alma özelliği: Web uygulaması kapsayıcı oluşturmadan bulutta yakınsayabilir, ancak uygulama platformu Azure hizmetlerini değiştirmeden kapsayıcılılaştırmayı da destekler

  • Otomatik ölçeklendirme: Web uygulaması, kullanıcı trafiğine ve ayarlarına göre ölçeği otomatik olarak artırabilir, küçültebilir, açabilir ve genişletebilir.

Kimlik yönetimi

Web uygulamanız için en iyi kimlik yönetimi çözümünü seçin. Daha fazla bilgi için bkz . Kimlik yönetimi çözümlerini ve kimlik doğrulama yöntemlerini karşılaştırma.

Örnek: Relecloud aşağıdaki nedenlerle Microsoft Entra Id'yi seçti:

  • Kimlik doğrulaması ve yetkilendirme: Uygulamanın çağrı merkezi çalışanlarının kimliğini doğrulaması ve yetkilendirmesi gerekir.

  • Ölçeklenebilir: Daha büyük senaryoları destekleyecek şekilde ölçeklendirilir.

  • Kullanıcı kimliği denetimi: Çağrı merkezi çalışanları mevcut kurumsal kimliklerini kullanabilir.

  • Yetkilendirme protokolü desteği: Yönetilen kimlikler için OAuth 2.0'ı destekler.

Veritabanı

Web uygulamanız için en iyi veritabanını seçin. Seçenekleri daraltma konusunda yardım için bkz. Azure veri deposu karar ağacı.

Örnek: Web uygulaması şirket içi SQL Server'ı kullandı ve Relecloud mevcut veritabanı şemasını, saklı yordamları ve işlevleri kullanmak istedi. Azure'da çeşitli SQL ürünleri mevcuttur, ancak Relecloud aşağıdaki nedenlerle Azure SQL Veritabanı seçti:

  • Güvenilirlik: Genel amaçlı katman, yüksek bir SLA ve çok bölgeli yedeklilik sağlar. Yüksek kullanıcı yükünü destekleyebilir.

  • Azaltılmış yönetim yükü: Yönetilen bir SQL veritabanı örneği sağlar.

  • Geçiş desteği: Şirket içi SQL Server'dan veritabanı geçişlerini destekler.

  • Şirket içi yapılandırmalarla tutarlılık: Mevcut saklı yordamları, işlevleri ve görünümleri destekler.

  • Dayanıklılık: Yedeklemeleri ve belirli bir noktaya geri yüklemeyi destekler.

  • Uzmanlık ve minimum yeniden çalışma: SQL Veritabanı şirket içi uzmanlığından yararlanır ve benimsemek için minimum çalışma gerektirir.

Uygulama performansı izleme

Web uygulamanız için bir uygulama performansı izlemeyi seçin. Uygulama Analizler, Azure'a özel uygulama performans yönetimi (APM) çözümüdür. Bu, Azure'ın izleme çözümü olan Azure İzleyici'nin bir özelliğidir.

Örnek: Relecloud aşağıdaki nedenlerle Uygulama Analizler kullanmayı seçti:

  • Azure İzleyici ile tümleştirme: Azure İzleyici ile en iyi tümleştirmeyi sağlar.

  • Anomali algılama: Performans anomalilerini otomatik olarak algılar.

  • Sorun giderme: Çalışan uygulamadaki sorunları tanılamanıza yardımcı olur.

  • İzleme: Kullanıcıların uygulamayı nasıl kullandığı hakkında bilgi toplar ve özel olayları kolayca izlemenize olanak tanır.

  • Görünürlük açığı: Şirket içi çözümde uygulama performansı izleme çözümü yoktu. Uygulama Analizler, uygulama platformu ve koduyla kolay tümleştirme sağlar.

Önbellek

Web uygulaması mimarinize önbellek eklenip eklenmeyeceğini seçin. Redis için Azure Cache, Azure'ın birincil önbellek çözümüdür. Redis yazılımını temel alan, yönetilen bir bellek içi veri deposu.

Örnek: Relecloud'un web uygulaması yükü, konserleri ve mekan ayrıntılarını görüntülemeye yönelik olarak büyük ölçüde dengesizdir. Aşağıdaki nedenlerle Redis için Azure Cache eklendi:

  • Azaltılmış yönetim yükü: Tam olarak yönetilen bir hizmettir.

  • Hız ve birim: Yaygın olarak erişilen ve yavaş değişen veriler için yüksek veri aktarım hızına ve düşük gecikme süresi okumalarına sahiptir.

  • Çeşitli desteklenebilirlik: Web uygulamasının tüm örneklerinin kullanabileceği birleşik bir önbellek konumudur.

  • Dış veri deposu: Şirket içi uygulama sunucuları VM yerel önbelleğe alma işlemi gerçekleştirdi. Bu kurulum son derece sık kullanılan verileri boşaltmadı ve verileri geçersiz kılamaz.

  • Yapışkan olmayan oturumlar: Oturum durumunu dışlaştırma, yapışkan olmayan oturumları destekler.

Yük Dengeleyici

Web uygulamanız için en iyi yük dengeleyiciyi seçin. Azure'da çeşitli yük dengeleyiciler vardır. Seçenekleri daraltma konusunda yardım için bkz . Uygulamanız için en iyi yük dengeleyiciyi seçme.

Örnek: Relecloud'un trafiği birden çok bölgeye yönlendirebilen bir katman 7 yük dengeleyiciye ihtiyacı vardı. Relecloud'un %99,9 SLO'nun karşılanması için çok bölgeli bir web uygulaması gerekiyordu. Relecloud aşağıdaki nedenlerle Azure Front Door'ı seçti:

  • Genel yük dengeleme: Trafiği birden çok bölgeye yönlendirebilen katman 7 yük dengeleyicidir.

  • Web uygulaması güvenlik duvarı: Azure Web Uygulaması Güvenlik Duvarı ile yerel olarak tümleşir.

  • Yönlendirme esnekliği: Uygulama ekibinin, uygulamada gelecekteki değişiklikleri desteklemek için giriş gereksinimlerini yapılandırmasına olanak tanır.

  • Trafik hızlandırma: En yakın Azure iletişim noktasına ulaşmak ve web uygulamasına en hızlı yolu bulmak için herhangi bir yayını kullanır.

  • Özel etki alanları: Esnek etki alanı doğrulaması ile özel etki alanı adlarını destekler.

  • Sistem durumu yoklamaları: Uygulamanın akıllı sistem durumu yoklaması izlemesi gerekir. Azure Front Door, istemci isteklerini yönlendirmek için en iyi kaynağı belirlemek için yoklamadan gelen yanıtları kullanır.

  • İzleme desteği: Hem Front Door hem de güvenlik desenleri için hepsi bir arada panoya sahip yerleşik raporları destekler. Azure İzleyici ile tümleşen uyarıları yapılandırabilirsiniz. Uygulamanın her isteği ve başarısız durum yoklamalarını günlüğe kaydetmesini sağlar.

  • DDoS koruması: Yerleşik katman 3-4 DDoS korumasına sahiptir.

  • İçerik teslim ağı: Relecloud'u bir içerik teslim ağı kullanacak şekilde konumlandırabilir. İçerik teslim ağı, site hızlandırma sağlar.

Web uygulaması güvenlik duvarı

Web uygulamanızı web saldırılarına karşı korumak için bir web uygulaması güvenlik duvarı seçin. Azure Web Uygulaması Güvenlik Duvarı (WAF), Azure'ın web uygulaması güvenlik duvarıdır ve yaygın web açıklarına ve güvenlik açıklarına karşı merkezi koruma sağlar.

Örnek: Web uygulamasını web saldırılarına karşı korumak için Relecloud gerekiyordu. Aşağıdaki nedenlerle Azure Web Uygulaması Güvenlik Duvarı kullandılar:

  • Genel koruma: Performansdan ödün vermeden gelişmiş küresel web uygulaması koruması sağlar.

  • Botnet koruması: Ekip, botnet'lerden gelen güvenlik sorunlarını gidermek için izleyebilir ve yapılandırabilir.

  • Şirket içi eşlik: Şirket içi çözüm, BT tarafından yönetilen bir web uygulaması güvenlik duvarının arkasında çalışıyordu.

  • Kullanım kolaylığı: Web Uygulaması Güvenlik Duvarı Azure Front Door ile tümleşir.

Yapılandırma depolama alanı

Web uygulamanıza uygulama yapılandırma depolama alanı eklenip eklenmeyeceğini seçin. Azure Uygulaması Yapılandırması, uygulama ayarlarını ve özellik bayraklarını merkezi olarak yönetmeye yönelik bir hizmettir. Bu hizmetin uygulamanız için uygun olup olmadığına karar vermek için Uygulama Yapılandırması en iyi yöntemleri gözden geçirin.

Örnek: Relecloud, dosya tabanlı yapılandırmayı uygulama platformu ve kodla tümleşen merkezi bir yapılandırma deposuyla değiştirmek istedi. Mimariye aşağıdaki nedenlerle Uygulama Yapılandırması eklediler:

  • Esneklik: Özellik bayraklarını destekler. Özellik bayrakları, kullanıcıların uygulamayı yeniden dağıtmadan üretim ortamındaki erken önizleme özelliklerini kabul etmelerini ve devre dışı bırakmalarını sağlar.

  • Git işlem hattını destekler: Git deposu olması gereken yapılandırma verilerinin gerçek kaynağıdır. İşlem hattı, merkezi yapılandırma deposundaki verileri güncelleştirmek için gerekli.

  • Yönetilen kimlikleri destekler: Yapılandırma deposu bağlantısını basitleştirmek ve güvenli hale getirmek için yönetilen kimlikleri destekler.

Gizli dizi yöneticisi

Azure'da yönetecek gizli dizileriniz varsa Azure Key Vault'ı kullanın. ConfigurationBuilder nesnesini kullanarak Key Vault'un .NET uygulamalarına dahil edebilirsiniz.

Örnek: Relecloud'un şirket içi web uygulaması gizli dizileri kod yapılandırma dosyalarında depolasa da gizli dizileri dışlaştırmak için daha iyi bir güvenlik uygulamasıdır. Yönetilen kimlikler Azure kaynaklarına bağlanmak için tercih edilen çözüm olsa da Relecloud'un yönetmesi gereken uygulama gizli dizileri vardı. Relecloud, Key Vault'un aşağıdaki nedenlerle kullanıldığını gösteriyor:

  • Şifreleme: Bekleyen ve aktarımdaki şifrelemeyi destekler.

  • Yönetilen kimlikler: Uygulama hizmetleri gizli dizi deposuna erişmek için yönetilen kimlikleri kullanabilir.

  • İzleme ve günlüğe kaydetme: Denetim erişimini kolaylaştırır ve depolanan gizli diziler değiştiğinde uyarılar oluşturur.

  • Tümleştirme: Azure yapılandırma deposu (Uygulama Yapılandırması) ve web barındırma platformu (App Service) ile yerel tümleştirme sağlar.

Depolama çözümü

Web uygulamanız için en iyi depolama çözümünü seçin. Daha fazla bilgi için bkz . Depolama seçeneklerinizi gözden geçirme.

Örnek: Şirket içinde, web uygulamasında her web sunucusuna bağlı disk depolama alanı vardı, ancak ekip bir dış veri depolama çözümü kullanmak istedi. Relecloud aşağıdaki nedenlerle Azure Blob Depolama seçti:

  • Güvenli erişim: Web uygulaması, anonim erişimle genel İnternet'e sunulan depolamaya erişim için uç noktaları ortadan kaldırabilir.

  • Şifreleme: Bekleyen ve aktarımdaki verileri şifreler.

  • Dayanıklılık: Alanlar arası yedekli depolamayı (ZRS) destekler. Alanlar arası yedekli depolama, verileri birincil bölgedeki üç Azure kullanılabilirlik alanında zaman uyumlu olarak çoğaltır. Her kullanılabilirlik alanı bağımsız güç, soğutma ve ağa sahip ayrı bir fiziksel konumdadır. Bu yapılandırma, bilet oluşturma görüntülerinin kayıplara karşı dayanıklı olmasını sağlamalıdır.

Uç nokta güvenliği

Azure hizmetlerine yalnızca özel erişimi etkinleştirmeyi seçin. Azure Özel Bağlantı, sanal ağınızdaki özel bir uç nokta üzerinden hizmet olarak platform çözümlerine erişim sağlar. Sanal ağınız ile hizmet arasındaki trafik, Microsoft omurga ağı üzerinden hareket eder.

Örnek: Relecloud aşağıdaki nedenlerle Özel Bağlantı kullanıldı:

  • Gelişmiş güvenlik iletişimi: Uygulamanın Azure platformundaki hizmetlere özel olarak erişmesine olanak tanır ve veri sızıntılarına karşı korunmaya yardımcı olmak için veri depolarının ağ ayak izini azaltır.

  • En az çaba: Özel uç noktalar, web uygulamasının kullandığı web uygulaması platformunu ve veritabanı platformunu destekler. Her iki platform da en az değişiklik için mevcut şirket içi yapılandırmaları yansıtır.

Ağ güvenliği

Sanal ağlarınıza ağ güvenlik hizmetleri eklenip eklenmeyeceğini seçin. Azure Güvenlik Duvarı durum bilgisi olan, ağ trafiğini inceleyen ağ güvenlik duvarıdır. Azure Bastion , RDP/SSH bağlantı noktalarını göstermeden sanal makinelere güvenli bir şekilde bağlanmanızı sağlar.

Örnek: Relecloud bir merkez-uç ağ topolojisini benimsedi ve paylaşılan ağ güvenlik hizmetlerini hub'a yerleştirmek istedi. Azure Güvenlik Duvarı, ağ güvenliğini artırmak için uçlardan giden tüm trafiği inceleyerek güvenliği artırır. Relecloud, DevOps alt ağındaki bir atlama konağından güvenli dağıtımlar için Azure Bastion'a ihtiyaç duyulur.

Doğru mimariyi seçin

Web uygulamanız için kullanılabilir olan araçları tanımladıktan ve en iyi bulut hizmetlerini seçtikten sonra, web uygulamanız için en iyi mimariyi belirlemeniz gerekir. Mimarinizin iş gereksinimlerinizi, teknik gereksinimlerinizi ve SLO'nuzu desteklemesi gerekir.

Mimari yedekliliğini seçme

İş hedefleri, web uygulamanızın ihtiyaç duyduğu altyapı ve veri yedekliliği düzeyini belirler. Web uygulaması SLO,yedeklilik gereksinimlerinizi anlamak için iyi bir temel sağlar. Bileşik SLA'yı, kritik kullanılabilirlik yolundaki tüm bağımlılıkları hesaplayın. Bağımlılıklar Azure hizmetlerini ve Microsoft dışı çözümleri içermelidir.

Her bağımlılık için bir kullanılabilirlik tahmini atayın. Hizmet düzeyi sözleşmeleri (SLA' lar) iyi bir başlangıç noktası sağlar, ancak SLA'lar kod, dağıtım stratejileri ve mimari bağlantı kararlarını dikkate almaz.

Örnek: Relecloud, hizmetleri kritik kullanılabilirlik yolunda tanımladı. Kullanılabilirlik tahminleri için Azure SLA'larını kullandılar. Bileşik SLA hesaplamasına göre Relecloud'un %99,9'lık SLO'ları karşılamak için çok bölgeli bir mimariye ihtiyacı vardı.

Ağ topolojisi seçme

Web ve ağ gereksinimleriniz için doğru ağ topolojisini seçin. Merkez-uç ağ topolojisi, Azure'da standart yapılandırmadır. Maliyet, yönetim ve güvenlik avantajları sağlar. Şirket içi ağlara yönelik karma bağlantı seçeneklerini de destekler.

Örnek: Relecloud, çok bölgeli dağıtımlarının güvenliğini daha düşük maliyet ve yönetim yüküyle artırmak için bir merkez-uç ağ topolojisi seçti.

Veri yedekliliğini seçme

Azure'ın bölgelerine ve kullanılabilirlik alanlarına dağıtarak veri güvenilirliğini sağlayın; coğrafi ayrımları ne kadar yüksek olursa güvenilirlik de o kadar yüksektir.

  • Bir kurtarma noktası hedefi (RPO) ayarlayın. RPO, kesinti sırasında en fazla tolere edilebilir veri kaybını tanımlar ve verilerin ne sıklıkta çoğaltmaya ihtiyaç duyduğuna yol gösterir. Örneğin, bir saatlik RPO değeri, en fazla bir saatlik veri kaybını kabul etmek anlamına gelir.

  • Veri çoğaltmayı uygulama. Veri çoğaltmayı mimarinizle ve RPO'nuzla uyumlu hale getirme. Azure genellikle kullanılabilirlik alanları içinde zaman uyumlu çoğaltmayı destekler. Güvenilirliği kolayca geliştirmek için birden çok bölge kullanma. Etkin-pasif bir kurulumdaki çok bölgeli web uygulamaları için, web uygulamasının RPO'sunda olduğu gibi verileri pasif bölgeye çoğaltarak çoğaltma sıklığının RPO'yu aşmasını sağlayın. Etkin-etkin yapılandırmalar, bölgeler arasında neredeyse gerçek zamanlı veri eşitlemesi gerektirir ve bu da kod ayarlamalarını gerektirebilir.

  • Yük devretme planı oluşturma. Kesintilere yanıt stratejilerini belirten ve kapalı kalma süresi veya işlev kaybıyla belirlenen bir yük devretme (olağanüstü durum kurtarma) planı geliştirin. Kabul edilebilir maksimum kapalı kalma süresi için kurtarma süresi hedeflerini (RTO) belirtin. Yük devretme işleminin RTO'dan daha hızlı olduğundan emin olun. Tutarlılık ve denetim için otomatik veya el ile yük devretme mekanizmalarına karar verin ve normal işlemlere dönüş işleminin ayrıntılarını verin. Verimliliği sağlamak için yük devretme planını test edin.

Sonraki adım

Bu makalede Reliable Web App deseninin nasıl bir uygulamasının planlı olduğu gösterildi. Sonraki adım Reliable Web App deseninin uygulama tekniklerini uygulamaktır.