Düzenle

Aracılığıyla paylaş


Azure Spring Apps temel mimarisi

Azure Application Gateway
Azure Key Vault
Azure Spring Apps
Azure Database for MySQL

Bu başvuru mimarisinde, Azure Spring Apps'te Java Spring Boot iş yüklerinin nasıl çalıştırıldığı açıklanır. Tasarım, yüksek kullanılabilirlik elde etmek için alanlar arası yedeklilik kullanır. Bir bölgedeki tüm veri merkezlerinde kesinti olması durumunda uygulamanın başarısız olmasını önlemek için bu tasarımı uygulayın.

Bu mimari size yardımcı olur:

  • Tek bölgeli dağıtım üzerinden uygulamanızın kullanılabilirliğini artırın.
  • Uygulamanızın genel dayanıklılığını ve hizmet düzeyi hedefini (SLO) artırın.

Bu çözüm, Azure Spring Apps dağıtımı için bir temel strateji sunar. Bu mimariyi oluşturan diğer çözümler için bkz . Azure Spring Apps'i birden çok bölgeye dağıtma ve giriş bölgeleriyle tümleşik Azure Spring Apps.

İpucu

GitHub logosu Bu mimarinin tasarım seçimlerinden bazılarını gösteren örnek bir uygulamaya bakın. Bu uygulamayı üretime yönelik ilk adımınız olarak düşünün.

Mimari

Aşağıdaki diyagramda bu yaklaşımın mimarisi gösterilmektedir:

Çok bölgeli Azure Spring Apps başvuru mimarisini gösteren diyagram.Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Bu iş akışı önceki diyagrama karşılık gelir:

  1. Kullanıcı, uygulamanın HTTP ana bilgisayar adını kullanarak uygulamaya erişir, örneğin www.contoso.com. Azure DNS, bu ana bilgisayar adı isteğini Azure Uygulaması lication Gateway genel uç noktasına çözümlemek için kullanılır.

  2. Application Gateway, isteği incelemek için kullanılır. Ayrıca, sağlanan Azure Spring Apps örneğindeki yük dengeleyicinin IP adresine izin verilen trafiği iletmek için de kullanılır. Application Gateway, Azure Web Uygulaması Güvenlik Duvarı ile tümleşiktir.

  3. İç yük dengeleyici, trafiği arka uç hizmetlerine yönlendirmek için kullanılır.

  4. İstek işlenirken, uygulama sanal ağ içindeki diğer Azure hizmetleriyle iletişim kurar. Örneğin, uygulama Azure Key Vault'tan gizli dizileri veya veritabanından depolama durumunu alabilir.

Bileşenler

Bu mimarideki bileşenler aşağıdaki Azure hizmetleridir:

  • Azure Spring Apps'in standart sürümü, mikro hizmet olarak uygulanan örnek bir Java Spring Boot uygulamasını barındırmak için kullanılır.

  • Application Gateway'in standart v2 sürümü, uygulamalara yönelik trafiği yönetmek için kullanılır. Uygulamanızın çalıştığı bölgede yerel bir ters proxy işlevi görür.

    Bu SKU, web uygulamalarınızı açıklardan yararlanmalara ve güvenlik açıklarına karşı korumaya yardımcı olmak için Web Uygulaması Güvenlik Duvarı tümleşiktir. Application Gateway'de Web Uygulaması Güvenlik Duvarı, Açık Web Uygulaması Güvenlik Projesi (OWASP) açıklarını izler.

  • Azure DNS , uygulamanın ana bilgisayar adına gönderilen istekleri çözümlemek için kullanılır. Bu istekleri Application Gateway genel uç noktasına çözümler. Azure DNS özel bölgeleri, adlandırılmış Azure Özel Bağlantı kaynaklarına erişen özel uç noktalara yönelik istekleri çözümlemek için kullanılır.

  • MySQL için Azure Veritabanı, durumu arka uç ilişkisel veritabanında depolamak için kullanılır.

  • Key Vault , uygulama gizli dizilerini ve sertifikalarını depolamak için kullanılır. Azure Spring Apps'te çalışan mikro hizmetler uygulama gizli dizilerini kullanır. Azure Spring Apps ve Application Gateway, konak adı koruması için sertifikaları kullanır.

Alternatifler

veritabanı için tek seçenek MySQL için Azure Veritabanı değildir. Ayrıca şunu da kullanabilirsiniz:

Yedeklilik

Tek hata noktalarını en aza indirmek için iş yükünüzde yedeklilik oluşturun. Bu mimaride, bileşenleri bir bölge içindeki bölgeler arasında çoğaltacaksınız. Mimarinizde, kurulumunuzdaki tüm bileşenler için kullanılabilirlik alanlarını kullandığınızdan emin olun.

Azure hizmetleri tüm bölgelerde desteklenmez ve tüm bölgeler bölgeleri desteklemez. Bir bölgeyi seçmeden önce bölge ve bölge desteğini doğrulayın.

Alanlar arası yedekli hizmetler, kaynakları bölgeler arasında otomatik olarak çoğaltır veya dağıtır. Her zaman kullanılabilir hizmetler tüm Azure coğrafyalarında kullanılabilir ve bölge genelinde ve bölge genelinde kesintilere dayanıklıdır.

Aşağıdaki tabloda, bu mimarideki hizmetler için dayanıklılık türleri gösterilmektedir:

Hizmet Dayanıklılık
Azure DNS Her zaman kullanılabilir
Application Gateway Alanlar arası yedekli
Azure Spring Apps Alanlar arası yedekli
MySQL için Azure Veritabanı Alanlar arası yedekli
Key Vault Alanlar arası yedekli
Azure Sanal Ağ Alanlar arası yedekli
Azure özel uç noktaları Alanlar arası yedekli

Azure Spring Apps alanlar arası yedekliliği destekler. Alanlar arası yedeklilik sayesinde, hizmetin temel alınan tüm altyapısı birden çok kullanılabilirlik alanına yayılır ve bu da uygulama için daha yüksek kullanılabilirlik sağlar. Uygulamalar herhangi bir kod değişikliği olmadan yatay olarak ölçeklendirilir. Yüksek performanslı bir ağ, Azure kullanılabilirlik alanlarını birbirine bağlar. Bağlantının gidiş dönüş gecikme süresi 2 milisaniyeden (ms) kısadır. Genellikle tasarım zorluklarına neden olan veri iş yükleri için zaman uyumsuz çoğaltmaya güvenmeniz gerekmez.

Application Gateway için Application Gateway'in kullandığı genel IP adresi de dahil olmak üzere birden çok kullanılabilirlik alanı ayarlanır. Standart SKU'su olan genel IP adresleri kullanılabilirlik alanlarını destekler.

Bu mimari, otomatik yük devretme ile yüksek kullanılabilirliği desteklemek için Esnek Sunucu dağıtım seçeneğine sahip MySQL için Azure Veritabanı kullanır. Gecikme süresi gereksinimlerinize bağlı olarak alanlar arası yedekli yüksek kullanılabilirlik veya aynı alanlar arası yüksek kullanılabilirlik'i seçin. Yüksek kullanılabilirlik yapılandırmasıyla Esnek Sunucu seçeneği, hazır bekleyen çoğaltmayı otomatik olarak sağlar ve yönetir. Bir kesinti varsa, işlenen veriler kaybolmaz.

Key Vault, kullanılabilirlik alanlarının kullanılabildiği tüm bölgelerde otomatik olarak alanlar arası yedeklidir. Bu mimaride kullanılan Key Vault örneği, arka uç hizmetlerinin gizli dizilerini depolamak için dağıtılır.

Ölçeklenebilirlik

Ölçeklenebilirlik, iş yükünün kullanıcıların bu iş yüküne yönelik taleplerini verimli bir şekilde karşılama becerisini gösterir. Çok bölgeli yaklaşım, yükü kullanılabilirlik alanlarına yaydığından ölçeklenebilirlik için tek bölgeli dağıtımdan daha iyidir.

Bu mimari, ölçümlere göre otomatik ölçeklendirme yapabilecek çeşitli bileşenlere sahiptir:

Veritabanı kurulumunuza bağlı olarak, bölgeler arasında veri eşitlemeniz gerektiğinde fazladan gecikme süresine neden olabilirsiniz.

Ağ güvenliği

Uygulamanızı İnternet'ten yetkisiz erişime, özel ağlardaki sistemlere, diğer Azure hizmetlerine ve sıkı bağlı bağımlılıklara karşı koruyun.

Sanal Ağ, Azure'da özel ağ için temel yapı taşıdır. Bu mimari, dağıtımın bölgesi için bir sanal ağ kullanır. Daha fazla yalıtım oluşturmak için bileşenleri alt ağlara yerleştirin. Azure Spring Apps, hizmet çalışma zamanı için ayrılmış bir alt ağ ve Java Spring Boot uygulamaları için ayrı bir alt ağ gerektirir.

Azure DDoS Koruması ile sanal ağlarınızı koruyun. Dağıtılmış hizmet reddi (DDoS) korumasını uygulama tasarımı en iyi yöntemleriyle birleştirerek DDoS saldırılarına karşı savunmaya yönelik gelişmiş azaltmalar sağlayın.

Mimari tasarımı, bir kullanıcı isteğini işlemeye yardımcı olan çeşitli hizmet olarak platform (PaaS) çözümleri içerir. Uygulamanın etkilenmediğinden emin olmak için bu hizmetlere katı ağ denetimleri yerleştirin.

Özel bağlantı

Azure Spring Apps'ten Key Vault ve MySQL için Azure Veritabanı gibi destekleyici hizmetlere iletişim sağlamak için özel uç noktaları veya ağ tümleştirmesini kullanın.

Erişimi denetlemek için özel uç noktaları kullanın. Ağ arabirimleri, hizmetleri sanal ağa aktarmak için özel IP adresleri kullanır. Bu mimari, özel uç noktaları otomatik olarak ayarlayan Azure hizmetlerini kullanır.

Sanal ağ ekleme işlemi aracılığıyla Azure Spring Apps'i ağa dağıtın. Uygulamaya özel IP adresine ulaşılarak erişilir.

Veritabanı benzer bir model izler. MySQL için Azure Veritabanı Esnek Sunucu dağıtım modu, ayrılmış bir alt ağ üzerinden sanal ağ tümleştirmesini destekler.

Key Vault gibi diğer hizmetler Özel Bağlantı aracılığıyla sanal ağa bağlanır. Özel Bağlantı için genel ağ erişimini devre dışı bırakmak için özel uç noktayı etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. Key Vault'ı Özel Bağlantı ile tümleştirme.

Özel uç noktalar ayrılmış bir alt ağ gerektirmez, ancak bunları ayrı bir alt ağa yerleştirmek iyi bir uygulamadır. Özel uç noktalara özel IP adresleri bu alt ağdan atanır.

Özel uç nokta ve ağ ile tümleşik bağlantılar bir Azure DNS özel bölgesi kullanır.

Trafik akışındaki denetimler

Bu mimaride, gelen isteklere yalnızca Application Gateway tarafından kullanıma sunulan genel uç nokta üzerinden izin verilir. Açıklardan yararlanmaları ve güvenlik açıklarını engellemek için trafiğin yine de incelenmesi gerekir. Application Gateway'deki Web Uygulaması Güvenlik Duvarı OWASP güvenlik açıklarını izler. Gelen trafik, izleyebileceğiniz bir eylemle yapılandırılan kurallara göre incelenir.

Azure Spring Apps örneği, trafiği arka uç hizmetlerine yönlendiren ve dağıtan bir iç yük dengeleyiciye sahiptir. Yük dengeleyici yalnızca Application Gateway'den gelen trafiği kabul etmek üzere yapılandırılmıştır.

Uygulamanın genel İnternet üzerinden diğer uç noktalara bağlanması gerekebilir. Bu akışı kısıtlamak için çıkış yoluna Azure Güvenlik Duvarı yerleştirmeyi göz önünde bulundurun.

Ters proxy kurulumu

Bu çözüm, Application Gateway'i ters ara sunucu olarak kullanır. Ancak Azure Spring Apps'in önünde farklı ters proxy'ler kullanabilirsiniz. Application Gateway'i Azure Front Door ile birleştirebilir veya Application Gateway yerine Azure Front Door kullanabilirsiniz.

Ters ara sunucu senaryoları, bunların nasıl ayarlanacağı ve güvenlik konuları hakkında bilgi için bkz . Azure Spring Apps'i ters ara sunucu aracılığıyla kullanıma sunma.

Kimlik ve erişim yönetimi

Ağ denetimlerini kullanmaya ek olarak, çevre olarak kimlik kullanarak güvenlik duruşunu güçlendirin.

Uygulama, Key Vault'tan gizli dizileri alıp almaması gibi arka uç hizmetlerine bağlandığında kendi kimliğini doğrulamalıdır. Uygulamada önerilen yaklaşım, Azure kaynakları için Microsoft Entra yönetilen kimliklerini etkinleştirmektir. Bu yapılandırma yöntemi, Microsoft Entra Id belirteçlerini alabilmesi için uygulamaya bir kimlik atar ve bu da kimlik bilgilerini yönetme yükünü azaltır.

Bu mimari, çeşitli etkileşimler için sistem tarafından atanan yönetilen kimlikleri kullanır.

Arka uç hizmetleri, yönetilen kimliğe ayrılan hizmet sorumlusuna erişim izni vermelidir. Hizmet, belirli eylemler için en düşük erişim ilkelerini tanımlamalıdır. Bu mimaride Key Vault, uygulamaya gizli dizilere, sertifikalara ve anahtarlara erişim vermek için kullanılır.

Gizli dizi yönetimi

Bu mimari, uygulama gizli dizilerini ve sertifikalarını tek bir anahtar kasasında depolar. Uygulama gizli dizileri ve konak adı koruma sertifikaları farklı endişelerdir, bu nedenle bu öğeleri ayrı anahtar kasalarında depolamak isteyebilirsiniz. Bu alternatif yaklaşım mimarinize başka bir anahtar kasası ekler.

İzleme

Azure İzleyici , bulut ve şirket içi ortamlarınızdan izleme verilerini toplamaya, analiz etmeye ve yanıtlamaya yönelik bir izleme çözümüdür.

Günlükleri ve ölçümleri kod düzeyinde yaymak için uygulamanıza izleme ekleyin. Azure Spring Apps örneği içindeki hizmetler arasında gözlemlenebilirlik sağlamak için dağıtılmış izlemeyi etkinleştirmeyi göz önünde bulundurun. Günlükleri ve ölçüm verilerini toplamak için bir uygulama performans yönetimi (APM) aracı kullanın. Azure İzleyici için Application Analizler Java aracısı, APM aracı için iyi bir seçimdir.

MySQL için Azure Veritabanı gibi tüm Azure hizmetlerinden günlükleri ve ölçümleri almak için platform tanılamasını kullanın. Uygulamanız ve platform hizmetleri hakkında uçtan uca içgörüler sağlamak için tüm verileri Azure İzleyici Günlükleri ile tümleştirin.

Azure Log Analytics çalışma alanı, Azure kaynaklarından ve Uygulama Analizler günlükleri ve ölçümleri toplayan izleme veri havuzudur. Bu günlük çözümü, otomasyon işlemlerinin bileşenleri gerçek zamanlı olarak ölçeklendirmesine yardımcı olan görünürlük sağlar. Günlük verilerinin çözümlenmesi, uygulama kodunda maliyetleri ve performansı geliştirmek için giderebileceğiniz verimsizlikleri de ortaya koyabilir.

Spring Uygulamasına özgü izleme yönergeleri için bkz . Uygulamaları uçtan uca izleme ve Dynatrace Java OneAgent ile izleme.

Otomatik dağıtım

Altyapı dağıtımınızı ve uygulama kodu dağıtımlarınızı mümkün olduğunca otomatikleştirin.

Altyapı dağıtımlarının otomatikleştirilmesi, altyapı yapılandırmasının aynı olmasını garanti eder ve bu da büyük olasılıkla ortamlar arasında yapılandırma kaymasını önlemeye yardımcı olur. Yük devretme işlemlerini test etmek için altyapı otomasyonunu da kullanabilirsiniz.

Uygulamalarınız için mavi-yeşil veya kanarya dağıtım stratejisi kullanabilirsiniz.

Dikkat edilmesi gereken noktalar

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.

Aşağıdaki önemli noktalar, Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını bu mimari bağlamında uygulamaya yönelik rehberlik sağlar.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

Daha güvenilir bir uygulama oluşturmak için aşağıdaki önerileri uygulayın:

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ış.

Daha güvenli bir uygulama oluşturmak için aşağıdaki önerileri uygulayın:

Maliyet iyileştirme

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri iyileştirmenin yollarını aramaktır. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

Bileşenleri birden çok bölgeye dağıttığınız için bu mimari için daha yüksek maliyet bekleyebilirsiniz. Azure Spring Apps'in bir örneği yerine iki veya üç örnek çalıştırırsınız. Ancak hizmette alanlar arası yedekliliği etkinleştirmenin ek bir maliyeti yoktur. Daha fazla bilgi için bkz . Azure Spring Apps fiyatlandırması.

Maliyetleri ele almak için aşağıdaki uygulama seçeneklerini göz önünde bulundurun:

Bu mimariye yönelik hizmetlerin tahmini maliyeti için bkz . Azure fiyatlandırma hesaplayıcısı. Bu tahmin, küçük ölçekli bir uygulama için makul varsayılan değerleri kullanır. Tahmini, uygulamanız için beklenen aktarım hızı değerlerine göre güncelleştirebilirsiniz.

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 sütununa genel bakış.

Daha önce ele alınan izleme kılavuzuna ek olarak, uygulamanızı dağıtmanıza ve izlemenize yardımcı olmak için aşağıdaki önerileri uygulayın.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

Daha verimli bir uygulama oluşturmak için aşağıdaki önerileri uygulayın:

Bu senaryoyu dağıtın

Bu mimariyi dağıtmak için Azure Spring Apps çok bölgeli başvuru mimarisindeki adım adım yönergeleri izleyin. Dağıtımda Terraform şablonları kullanılır.

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:

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

Sonraki adımlar