Azure VM'lerinde JBoss EAP uygulamalarını JBoss EAP'ye geçirme
Bu kılavuzda, mevcut bir JBoss EAP uygulamasını Azure VM'lerinde JBoss EAP üzerinde çalışacak şekilde geçirmek istediğinizde bilmeniz gerekenler açıklanmaktadır.
Geçiş öncesi
Geçişin başarılı olduğundan emin olmak için, başlamadan önce aşağıdaki bölümlerde açıklanan değerlendirme ve envanter adımlarını tamamlayın.
"Geçiş tamamlandı" ifadesinin tanımını yapma
Bu kılavuz ve ilgili Azure Market teklifleri, JBoss EAP iş yüklerinizin Azure'a geçişini hızlandırmaya yönelik bir başlangıç noktasıdır. Geçiş çabalarınızın kapsamını tanımlamak önemlidir. Örneğin mevcut altyapınızdan Azure Sanal Makineler'e "lift and shift" yöntemiyle mi geçiş yapıyorsunuz? Bu durumda geçiş sırasında bazı aşamalarda "lift and improve" yaklaşımını benimsemeniz gerekebilir.
Bu kılavuzda ayrıntılı bir şekilde anlatılan değişiklikleri dikkate alarak mümkün olduğunca "lift and shift" yaklaşımıyla ilerlemeniz önerilir. "Geçiş tamamlandı" ifadesinin tanımını yaparak bu kilometre taşına ulaştığınızda durumun farkına varabilirsiniz. "Geçiş tamamlandı" işleminize ulaştığınızda, Sanal sabit diskin anlık görüntüsünü oluşturma bölümünde açıklandığı gibi sanal makinelerinizin anlık görüntüsünü alabilirsiniz. Anlık görüntünüzden başarıyla geri yükleyebileceğinizi doğruladıktan sonra iyileştirmeleri yapmak daha güvenlidir. Bu şekilde, şimdiye kadar başardığınız geçiş ilerlemesini kaybetme korkusu olmadan devam edebilirsiniz.
Önceden oluşturulmuş Azure Market tekliflerinin iyi bir başlangıç noktası olup olmadığını belirleme
Red Hat ve Microsoft, Azure'a geçiş için sağlam bir başlangıç noktası sağlamak üzere bir dizi Azure çözüm şablonunu Azure Market getirmek için iş birliği yaptı. Tekliflerin listesini Azure'da JBoss EAP Sanal Makineler Azure'da Red Hat JBoss EAP bölümünde görebilirsiniz.
Önceden oluşturulmuş Azure Market teklifi hakkında bilgi edinmek için bkz. Hızlı Başlangıç: Azure Sanal Makineler'da (VM'ler) JBoss EAP kümesi dağıtma.
Mevcut tekliflerden hiçbiri iyi bir başlangıç noktası değilse, Azure Sanal Makineler'da sağlanan kaynakları kullanarak dağıtımı el ile yeniden oluşturmanız gerekir. Daha fazla bilgi için bkz. IaaS nedir?
JBoss EAP sürümünün uyumlu olup olmadığını belirleme
Mevcut JBoss EAP sürümünüz hizmet olarak altyapı (IaaS) tekliflerindeki sürümle uyumlu olmalıdır. Tekliflerin Azure portalı sayfalarında hangi JBoss EAP sürümlerinin kullanılabilir olduğu gösterilir. Daha fazla bilgi için Azure portalındaki VM'lerde JBoss EAP Kümesi teklifine bakın. Mevcut JBoss EAP sürümünüz teklifte bulunan sürümlerle uyumlu değilse, Azure IaaS kaynaklarını kullanarak dağıtımı el ile yeniden oluşturmanız gerekir. Daha fazla bilgi için bkz. IaaS nedir?
Gerekli lisanslara sahip olduğunuzdan emin olun
Önceden oluşturulmuş Azure Market tekliflerini kullanırken, tüm JBoss EAP sunucularınız için Red Hat'ten geçerli lisanslara sahip olmanız gerekir. Bunları Azure'a taşıdığınızda, gereksinimlerinizi karşılamak için aşağıdaki dağıtım seçenekleri arasından seçim yapabilirsiniz:
- Red Hat Enterprise Linux kullandıkça öde sanal makinelerinde dağıtın. Bu seçenek PAYG olarak bilinir.
- Red Hat JBoss EAP ve Red Hat Enterprise Linux aboneliklerinizi Red Hat Cloud Access programı aracılığıyla Azure'a taşıyın. Bu seçenek KCG olarak bilinir.
Her iki seçenekte de lisans taşınabilirliği için Red Hat'ten Havuz Kimliği istenir. Teklifleri denemeden önce bu kimliğin elinizde olduğundan emin olun.
Önceden oluşturulmuş Azure Market teklifleri, lisans yönetimi için Red Hat Satellite desteği içerir. Red Hat Satellite'a genel bakış için bkz . Red Hat Satellite.
Not
EAP yetkilendirmeniz yoksa, Red Hat Bireysel Geliştirici Aboneliği aracılığıyla ücretsiz geliştirici aboneliğine kaydolabilirsiniz. Önceden oluşturulmuş Azure Market tekliflerinde RHSM kullanıcı adı ve RHSM parolası olarak kullanmak üzere hesap ayrıntılarını bir kenara kaydedin.
Havuz Kimliğinizi bulma adımları, Hızlı Başlangıç: Azure Sanal Makineler'da (VM'ler) JBoss EAP kümesi dağıtma bölümündeki Önkoşullar bölümünde açıklanmıştır.
Envanter sunucusu kapasitesi
Geçerli üretim sunucularının donanımını (bellek, CPU, disk) ve ortalama ve en yüksek istek sayısını ve kaynak kullanımını belgeleyin. Seçtiğiniz geçiş yolundan bağımsız olarak bu bilgilere ihtiyaç duyacaksınız. Örneğin düğüm havuzunuzdaki VM'lerin boyutunu, kapsayıcı tarafından kullanılacak bellek miktarını ve kapsayıcının ihtiyaç duyduğu CPU paylaşımını seçmeye yardımcı olmak için yararlıdır.
AKS'de düğüm havuzlarını yeniden boyutlandırmak mümkündür. Nasıl yapılacağını öğrenmek için bkz . Azure Kubernetes Service'te (AKS) düğüm havuzlarını yeniden boyutlandırma.
Tüm gizli dizilerin envanterini çıkarma
Tüm gizli diziler ve parolalar için üretim sunucusundaki veya sunuculardaki tüm özellikleri ve yapılandırma dosyalarını denetleyin. WAR'lerinizdeki jboss-web.xml dosyasını denetlemeyi unutmayın. Uygulamanızın içinde parolalar ve kimlik bilgileri içeren yapılandırma dosyaları da bulunabilir.
Bu gizli dizileri Azure Key Vault’ta depolamanız faydalı olabilir. Daha fazla bilgi için bkz. Temel Azure Key Vault kavramları.
Tüm sertifikaların envanterini çıkarma
Genel SSL uç noktaları için kullanılan tüm sertifikaları belgeleyin. Aşağıdaki komutu çalıştırarak üretim sunucularındaki tüm sertifikaları görüntüleyebilirsiniz:
keytool -list -v -keystore <path to keystore>
Desteklenen Java sürümünün doğru çalıştığını onaylama
Azure VM'lerinde JBoss EAP, desteklenen bir Java sürümü gerektirir. JDK'nin hangi sürümünün kullanılacağına ilişkin yönergeler için Red Hat belgelerindeki Desteklenen Yapılandırmalar'a bakın.
Not
Geçerli sunucunuz desteklenmeyen bir JDK (Oracle JDK veya IBM OpenJ9 gibi) çalıştırıyorsa bu doğrulama özellikle önemlidir.
Geçerli Java sürümünüzü öğrenmek için üretim sunucunuzda oturum açın ve şu komutu çalıştırın:
java -version
Dış kaynakların envanterini çıkarma
Veri kaynakları ve JMS ileti aracıları gibi dış kaynaklar Java Adlandırma ve Dizin Arabirimi (JNDI) aracılığıyla eklenir. Bunlara benzer kaynakların geçirilmesi veya yeniden yapılandırılması gerekebilir.
Uygulamanızın içinde
WEB-INF/jboss-web.xml ve/veya WEB-INF/web.xml dosyalarını inceleyin. <Context>
öğesi içindeki <Resource>
öğelerini arayın.
Veri kaynakları
Veri kaynakları, type
özniteliği javax.sql.DataSource
olarak ayarlanmış JNDI kaynaklarıdır. Aşağıdaki bilgileri her veri kaynağı için belgeleyin:
- Veri kaynağının adı nedir?
- Bağlantı havuzu yapılandırması nedir?
- JDBC sürücüsü JAR dosyasını nerede bulabilirim?
Daha fazla bilgi için JBoss EAP belgelerinde JBoss EAP Veri Kaynakları Hakkında bölümüne göz atın.
Diğer tüm dış kaynaklar
Bu kılavuzda olası tüm dış bağımlılıkları belgelemek uygulanabilir bir yöntem değildir. Geçişten sonra uygulamanızın tüm dış bağımlılıklarının karşılandığını doğrulamak ekibinizin sorumluluğundadır.
Dosya sisteminin kullanılıp kullanılmayacağını ve nasıl kullanıldığını belirleme
Uygulama sunucusundaki dosya sisteminin herhangi bir kullanımı için yeniden yapılandırma veya nadir durumlarda mimari değişiklikler gerekir. JBoss EAP modülleri veya uygulama kodunuz dosya sistemini kullanabilir. Aşağıdaki bölümlerde açıklanan senaryoların bazılarıyla veya tümüyle karşılaşabilirsiniz.
Salt okunur statik içerik
Uygulamanız şu anda statik içerik sunuyorsa bunun için alternatif bir konumunuz olması gerekir. Statik içeriği Azure Blob Depolama’ya taşımayı ve küresel olarak ışık hızında indirme işlemleri için Azure CDN eklemeyi düşünebilirsiniz. Daha fazla bilgi için bkz . Azure Depolama'da statik web sitesi barındırma ve Hızlı Başlangıç: Azure depolama hesabını Azure CDN ile tümleştirme.
Dinamik olarak yayımlanan statik içerik
Uygulamanız tarafından karşıya yüklenen/üretilen ama oluşturulduktan sonra sabit hale gelen statik içeriğe uygulamanızda izin veriliyorsa, karşıya yüklemeleri ve CDN yenilemesini işlemek için Azure İşlevi’yle birlikte yukarıda açıklandığı gibi Azure Blob Depolama ve Azure CDN kullanabilirsiniz. Azure İşlevleri ile statik içeriği karşıya yükleme ve CDN’ye önceden yükleme başlığı altında kullanımınıza ilişkin örnek bir uygulama sağladık.
Şirket içine bağlantının gerekip gerekmediğini saptama
Uygulamanızın şirket içi hizmetlerinizden birine erişmesi gerekiyorsa Azure’ın bağlantı hizmetlerinden birini sağlamalısınız. Daha fazla bilgi için bkz. Şirket içi ağı Azure’a bağlama. Alternatif olarak şirket içi kaynaklarınızın kullanıma sunduğu genel kullanıma açık API’leri kullanmak için uygulamanızı yeniden düzenlemeniz gerekir.
Java Message Service (JMS) Kuyruklarının mı yoksa Konularının mı kullanıldığını saptama
Uygulamanız JMS Kuyruklarını veya Konularını kullanıyorsa, bunları dışarıda barındırılan bir JMS sunucusuna geçirmeniz gerekir. Azure Service Bus ve Gelişmiş İleti Sıraya Alma Protokolü (AMQP), JMS kullananlar için harika bir geçiş stratejisi olabilir. Daha fazla bilgi için bkz . Azure Service Bus standardı ve AMQP 1.0 ile Java İleti Hizmeti 1.1'i kullanma.
JMS kalıcı depoları yapılandırıldıysa, bunların yapılandırmasını yakalamalı ve geçiş sonrasında uygulamalısınız.
JCA bağlayıcıların kullanımda olup olmadığını belirleme
Uygulamanız JCA bağlayıcıları kullanıyorsa JBoss EAP üzerinde JCA bağlayıcısını kullanabileceğinizi doğrulayın. JBoss EAP'de JCA bağlayıcısını kullanabilirseniz, kullanılabilir olması için JAR'leri sunucu sınıf yolu'na eklemeniz ve gerekli yapılandırma dosyalarını JBoss EAP sunucu dizinlerinde doğru konuma yerleştirmeniz gerekir.
JAAS’nin kullanımda olup olmadığını belirleme
Uygulamanız JAAS kullanıyorsa JAAS’nin nasıl yapılandırıldığını yakalamanız gerekir. Veritabanı kullanıyorsa JBoss EAP'de jaas etki alanına dönüştürebilirsiniz. Özel bir uygulamaysa JBoss EAP'de kullanılabileceğini doğrulamanız gerekir.
Uygulamanızın birden çok WAR’dan oluşup oluşmadığını saptama
Uygulamanız birden çok WAR’dan oluşuyorsa, bu WAR dosyalarından her birini ayrı uygulama olarak değerlendirmeli ve her biri için bu kılavuzu izlemelisiniz.
Uygulamanızın EAR olarak paketlenip paketlenmediğini saptama
Uygulamanız EAR dosyası olarak paketlendiyse application.xml dosyasını incelediğinizden ve yapılandırmalarını yakaladığınızdan emin olun.
Not
Azure VM kaynaklarınızı daha iyi kullanmak için web uygulamalarınızın her birini bağımsız olarak ölçeklendirebilmek istiyorsanız EAR'yi ayrı web uygulamalarına ayırmanız gerekir.
Üretim sunucularında çalıştırılan tüm dış işlemleri ve daemon’ları belirleme
Uygulama sunucusunun dışında çalıştırılan izleme deamon’ları gibi işlemleriniz varsa, bunları ortadan kaldırmanız veya başka bir yere geçirmeniz gerekir.
Geçiş
Azure'da JBoss EAP Sanal Makineler teklifi seçme
Aşağıdaki bölümlerde açıklanan teklifler Azure Sanal Makineler üzerinde JBoss EAP için kullanılabilir.
Bir teklifin dağıtımı sırasında JBoss EAP sunucu düğümleriniz için sanal makine boyutunu seçmeniz istenir. VM boyutunu seçerken tüm boyut etkenlerini (bellek, işlemci, disk) dikkate almanız önemlidir. Daha fazla bilgi için bkz . Cloud Services için boyutlar (klasik).
Azure'da JBoss EAP Sanal Makine Ölçek Kümeleri
Sanal Makine Ölçek Kümeleri her boyuttaki iş yükleri için yük dengeli, yüksek oranda ölçeklenebilir sanal makine grupları sağlar. Daha fazla bilgi için bkz. Sanal Makine Ölçek Kümeleri nedir?
Kümelenmiş Sanal Makineler Üzerinde JBoss EAP
İsterseniz, JBoss EAP kümeleme mekanizmasını kullanan geleneksel bir VM kümesi, bu özelliği zaten kullanan dağıtımlardan kaldırma ve geçiş için uygundur. Daha fazla bilgi için JBoss EAP belgelerindeki Web Uygulamalarında Kümeleme bölümüne bakın. Önceden oluşturulmuş Azure Market teklifi, etki alanı modu desteği içerir. EAP Etki Alanları ve etki alanı moduna genel bakış için bkz . Etki Alanı Yönetimi.
JBoss EAP Tek Sunucu
Test ve değerlendirme için veya basit iş yükleri için tek bir sunucuya ihtiyacınız varsa, tek bir VM'de tek bir JBoss EAP sunucusu dağıtan bir teklif vardır.
Uygulamalar için Red Hat Geçiş Araç Seti
Red Hat Migration Toolkit for Applications, Visual Studio Code için ücretsiz bir uzantıdır. Bu uzantı, şirket içinden buluta geçiş için öneriler sağlamak üzere uygulama kodunuzu ve yapılandırmanızı analiz eder. Daha fazla bilgi için bkz. Uygulamalar için Geçiş Araç Seti'ne genel bakış.
Bu kılavuzun içeriği, doğru VM boyutunu seçme ve oturum durumunuzu dışlaştırma gibi geçiş yolculuğunun diğer bileşenlerine çözüm getirmenize yardımcı olur.
Geçiş sonrası
Geçiş öncesi adımında tanımladığınız geçiş hedeflerine ulaştıktan sonra her şeyin beklendiği gibi çalıştığından emin olmak için birkaç uçtan uca onay testi gerçekleştirmeniz gerekir. Geçiş sonrası bazı olası geliştirmeler hakkında bilgi için aşağıdaki makalelere bakın:
Sanal makinelere bağlı statik içerik sunmak için Azure Depolama'yı kullanın. Daha fazla bilgi için bkz . Azure DevTest Labs'de laboratuvar sanal makinesi için veri diski ekleme veya ayırma.
Azure DevOps ile uygulamalarınızı geçirilen JBoss EAP kümenize dağıtın. Daha fazla bilgi için bkz . Azure DevOps ile çalışmaya başlama belgeleri.
Gelişmiş yük dengeleme hizmetleriyle ağ topolojinizi geliştirin. Daha fazla bilgi için bkz. Azure’daki yük dengeleme hizmetlerini kullanma.
Gizli dizileri yönetmek ve Azure kaynaklarına rol tabanlı erişim atamak için Azure Yönetilen Kimlikler'i kullanın. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nelerdir?
Java EE kimlik doğrulama ve yetkilendirmesini Microsoft Entra Id ile tümleştirin. Daha fazla bilgi için bkz . Microsoft Entra ID'yi uygulamalarla tümleştirme başlangıç kılavuzu.
"Gizli" olarak kabul edilen bilgileri depolamak için Azure Key Vault'u kullanın. Daha fazla bilgi için bkz. Temel Azure Key Vault kavramları.