Java için güvenilir web uygulaması düzeni - Uygulamayı planlama

Azure App Service
Azure Cache for Redis
Azure Database for PostgreSQL
Microsoft Authentication Library for Java

Bu makalede, Reliable Web App deseninin bir uygulamasını nasıl planladığınız 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 uygulama mimarisi 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 contoso fiber şirketi, şirket içi Müşteri Hesabı Yönetim Sistemi (CAMS) web uygulamasını diğer bölgelere ulaşmak için genişletmek istedi. Web uygulamasındaki artan talebi karşılamak için aşağıdaki hedefleri oluşturdular:

  • 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

Contoso Fiber, şirket içi altyapısının uygulamayı ölçeklendirmek için uygun maliyetli bir çözüm olmadığını belirledi. Bu nedenle, CAMS 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 Contoso Fiber'in CAMS web uygulaması şirket içi, monolitik bir Java web uygulamasıydı. PostgreSQL veritabanına sahip bir Spring Boot uygulamasıdır. Web uygulaması bir iş kolu destek uygulamasıdır. Çalışana yönelik. Contoso Fiber çalışanları, müşterilerinden gelen destek olaylarını yönetmek için uygulamayı kullanır. Şirket içi web uygulaması yaygın zorluklardan muzdariptir. Bu zorluklar arasında yeni özellikler oluşturmak ve göndermek için genişletilmiş zaman çizelgeleri ve daha yüksek yük altında farklı uygulama bileşenlerini ölçeklendirme zorluğu bulunur.

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: Contoso Fiber, aşağıdaki nedenlerle uygulama platformu olarak Azure Uygulaması Hizmeti'ni seçti:

  • Doğal ilerleme. Contoso Fiber şirket içi sunucusuna bir Spring Boot jar dosyası dağıttı ve bu dağıtım modeli için yeniden tasarlama miktarını en aza indirmek istedi. App Service, Spring Boot uygulamalarını çalıştırmak için güçlü destek sağlar ve Contoso Fiber'in App Service'i kullanması doğal bir ilerlemeydi. Azure Spring Apps de bu uygulama için cazip bir alternatiftir. Contoso Fiber CAMS web uygulaması Spring Boot yerine Jakarta EE kullandıysa Azure Spring Apps daha uygun olacaktır. Daha fazla bilgi için bkz . Azure Spring Apps nedir? ve Azure'da Java EE, Jakarta EE ve MicroProfile.

  • Yüksek SLA. Üretim ortamı gereksinimlerini karşılayan yüksek bir SLA'sı vardır.

  • Azaltılmış yönetim yükü. Tam olarak yönetilen bir barındırma çözümü.

  • Kapsayıcıya alma özelliği. App Service, Azure Container Registry gibi özel kapsayıcı görüntüsü kayıt defterleriyle çalışır. Contoso Fiber, gelecekte web uygulamasını kapsayıcıya almak için bu kayıt defterlerini kullanabilir.

  • Otomatik ölçeklendirme. Web uygulaması kullanıcı trafiğine göre hızla ölçeği 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: Contoso Fiber aşağıdaki nedenlerle Microsoft Entra Id'yi seçti:

  • Kimlik doğrulaması ve yetkilendirme. Çalışanların kimlik doğrulama ve yetkilendirme işlemlerini işler.

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

  • Kullanıcı kimliği denetimi. Çalışanlar mevcut kurumsal kimliklerini kullanabilir.

  • Yetkilendirme protokolleri 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: Contoso Fiber aşağıdaki nedenlerle PostgreSQL için Azure Veritabanı ve esnek sunucu seçeneğini belirledi:

  • Güvenilirlik. Esnek sunucu dağıtım modeli, birden çok kullanılabilirlik alanında alanlar arası yedekli yüksek kullanılabilirliği destekler. Bu yapılandırma ve aynı Azure bölgesindeki farklı bir kullanılabilirlik alanında sıcak bir bekleme sunucusu tutar. Yapılandırma, verileri bekleme sunucusuna zaman uyumlu olarak çoğaltır.

  • Bölgeler arası çoğaltma. Verileri başka bir bölgedeki salt okunur çoğaltma veritabanına zaman uyumsuz olarak çoğaltmanızı sağlayan bir okuma amaçlı çoğaltma özelliğine sahiptir.

  • Performans. Gerçek kullanım verilerini kullanarak veritabanı performansınızı geliştirmek için tahmin edilebilir performans ve akıllı ayarlama sağlar.

  • Azaltılmış yönetim yükü. Yönetim yükümlülüklerini azaltan tam olarak yönetilen bir Azure hizmetidir.

  • Geçiş desteği. Şirket içi tek sunuculu PostgreSQL veritabanlarından veritabanı geçişlerini destekler. Geçiş işlemini basitleştirmek için geçiş aracını kullanabilirler.

  • Şirket içi yapılandırmalarla tutarlılık. Contoso Fiber'in şu anda kullandığı sürüm de dahil olmak üzere PostgreSQL'in farklı topluluk sürümlerini destekler.

  • Dayanıklılık. Esnek sunucu dağıtımı otomatik olarak sunucu yedeklemeleri oluşturur ve bunları aynı bölge içinde alanlar arası yedekli depolama (ZRS) kullanarak depolar. Yedekleme saklama süresi içinde veritabanlarını belirli bir noktaya geri yükleyebilirler. Yedekleme ve geri yükleme özelliği, Contoso Fiber'in şirket içinde oluşturabileceğinden daha iyi bir RPO (kabul edilebilir miktarda veri kaybı) oluşturur.

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: Contoso Fiber aşağıdaki nedenlerle Uygulama Analizler ekledi:

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

  • Sorun giderme. Çalışan uygulamadaki sorunları tanılamaya yardımcı olur.

  • Telemetri. Kullanıcıların uygulamayı nasıl kullandığı hakkında bilgi toplar ve uygulamanızda izlemek istediğiniz özel olayları kolayca göndermenizi sağlar.

  • Şirket içi görünürlük boşluğu. Şirket içi çözümün 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: Contoso Fiber'in aşağıdaki avantajları sağlayan bir önbelleğe ihtiyacı vardı:

  • Hız ve ses düzeyi. 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. Bu, 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. Önbellek, web uygulamasının yapışkan olmayan oturumları kullanarak oturum durumunu dışlaştırmasına olanak tanır. Şirket içinde çalışan çoğu Java web uygulaması bellek içi, istemci tarafı önbelleğe alma kullanır. Bellek içinde istemci tarafı önbelleğe alma iyi ölçeklendirilemez ve konaktaki bellek ayak izini artırır. Contoso Fiber, Redis için Azure Cache kullanarak uygulamalarının ölçeklenebilirliğini ve performansını geliştirmek için tam olarak yönetilen, ölçeklenebilir bir önbellek hizmetine sahiptir. Contoso Fiber bir önbellek soyutlama çerçevesi (Spring Cache) kullanıyordu ve önbellek sağlayıcısını değiştirmek için yalnızca en az yapılandırma değişikliği gerekiyordu. Bir Ehcache sağlayıcısından Redis sağlayıcısına geçmelerine izin verdi.

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: Contoso Fiber, aşağıdaki nedenlerle genel yük dengeleyici olarak Front Door'ı seçti:

  • 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 gerekiyor. 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 pano içeren 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.

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: Contoso Fiber aşağıdaki avantajlar için Web Uygulaması Güvenlik Duvarı seçti:

  • Küresel koruma. Performansdan ödün vermeden daha fazla genel web uygulaması koruması sağlar.

  • Botnet koruması. Bot ağ saldırılarını izlemek için bot koruma kurallarını yapılandırabilirsiniz.

  • Ş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.

Gizli dizi yöneticisi

Azure'da yönetecek gizli dizileriniz varsa Azure Key Vault'ı kullanın.

Örnek: Contoso Fiber'in yönetecek gizli dizileri vardır. Anahtar Kasası'nı aşağıdaki nedenlerle kullandılar:

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

  • Yönetilen kimlikleri destekler. 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.

  • Entegrasyon. Web uygulamasının gizli dizilere erişmesi için iki yöntemi destekler. Contoso Fiber, barındırma platformunda (App Service) uygulama ayarlarını kullanabilir veya uygulama kodunda (uygulama özellikleri dosyası) gizli diziye başvurabilir.

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: Contoso Fiber aşağıdaki nedenlerle Özel Bağlantı seçti:

  • Gelişmiş güvenlik. Uygulamanın Azure'da 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.

  • Çok az çaba. Özel uç noktalar, web uygulaması platformunu ve web uygulamasının kullandığı veritabanı platformunu destekler. Her iki platform da mevcut şirket içi kurulumu yansıtır, bu nedenle en az değişiklik gereklidir.

Doğru mimariyi seçin

Web uygulamanız için kullanılabilir olan anlamları tanımladıktan ve doğru bulut hizmetlerini seçtikten sonra, web uygulamanız için en iyi mimariyi belirlemeniz gerekir. Mimarinizin iş gereksinimlerinizi, teknik gereksinimlerinizi ve hizmet düzeyi hedefinizi 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: Başvuru uygulaması, etkin-pasif bir yapılandırmada iki bölge kullanır. Contoso Fiber %99,9 SLO'ya sahip ve SLO'nun karşılanması için iki bölge kullanması gerekiyordu. Etkin-pasif yapılandırma, Contoso Fiber'in bulut yolculuğunda bu aşamaya yönelik en az kod değişikliği hedefiyle uyumlu hale geliyor. Etkin-pasif yapılandırma basit bir veri stratejisi sağlar. Olay tabanlı veri eşitleme, veri parçaları veya başka bir veri yönetimi stratejisi ayarlama gereksinimini ortadan kaldırıyor. Tüm gelen trafik etkin bölgeye gider. Etkin bölgede bir hata oluşursa Contoso Fiber yük devretme planını el ile başlatır ve tüm trafiği pasif bölgeye yönlendirir.

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: Contoso Fiber, ç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.

Örnek: PostgreSQL için Azure Veritabanı için başvuru uygulaması, iki kullanılabilirlik alanındaki hazır bekleyen sunucularla alanlar arası yedekli yüksek kullanılabilirlik kullanır. Veritabanı ayrıca pasif bölgedeki okuma çoğaltmasına zaman uyumsuz olarak çoğaltılır.

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.