JBoss EAP uygulamalarını Azure Red Hat OpenShift'e geçirme

Bu kılavuzda, mevcut bir JBoss EAP uygulamasını Azure Red Hat OpenShift'te ç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.

Hedefin geçiş çabanız için uygun hedef olduğundan emin olun

JBoss EAP uygulamasının Azure'a başarılı bir şekilde geçirilmesinin ilk adımı en uygun geçiş hedefini seçmektir. JBoss EAP, Azure sanal makinelerinde (VM) veya Azure Red Hat OpenShift'te iyi çalışır.

Vm hedefi, şirket içi dağıtıma en çok benzediğinden en kolay seçenektir. Sanal makineler için yönetim ve dağıtım deneyimi, şirket içi ortamınıza benzer. VM'leri seçmek, modernleştirmeyi ertelemenizi sağlar.

Red Hat OpenShift, uygulamaları geliştirme, modernleştirme, dağıtma, çalıştırma ve yönetme uyuşmalarını azaltmak için test edilmiş ve güvenilir hizmetleri bir araya getirir. Azure Red Hat OpenShift, Kubernetes üzerinde derlenir. Azure Red Hat OpenShift genel bulut, şirket içi, hibrit bulut veya uç mimari genelinde tutarlı bir deneyim sunar.

Geçiş çabanız için en önemli faktör değişikliği en aza indirmekse VM tabanlı geçişi göz önünde bulundurun. Bu durumda bkz . Azure VM'lerinde JBoss EAP uygulamalarını JBoss EAP'ye geçirme. Çalışma zamanı maliyetini azaltmak için uygulamanızı Red Hat OpenShift içinde çalışacak şekilde dönüştürmeye dayanabiliyorsanız Azure Red Hat OpenShift tabanlı bir geçişi göz önünde bulundurun. Bu durumda, Azure Red Hat OpenShift üzerinde JBoss EAP uygulamalarını JBoss EAP'ye geçirme ile devam edin. OpenShift için JBoss EAP ve JBoss EAP arasındaki farkları anlamak için bkz . Karşılaştırma: OpenShift için JBoss EAP ve JBoss EAP.

Önceden oluşturulmuş Azure Market teklifinin iyi bir başlangıç noktası olup olmadığını belirleme

İlk olarak, Azure Red Hat OpenShift'in uygun dağıtım hedefi olduğuna karar verin. Ardından, önceden oluşturulmuş Azure Market teklifinin iyi bir başlangıç noktası olup olmadığına karar verin. Önceden oluşturulmuş Azure Market teklifi hakkında aşağıdaki noktaları göz önünde bulundurun:

  • Red Hat ve Microsoft, Azure Red Hat OpenShift üzerinde JBoss EAP'nin hızlı bir şekilde sağlanmasını sağlamak için bu teklifi oluşturdu.
  • Yüksek düzeyde, teklif sizin için aşağıdaki adımları otomatikleştirir.
    • Azure Red Hat OpenShift'e EAP operatörünü yükleyin.
    • eap-s2i-build şablonunu kullanarak uygulama görüntüsü oluşturun. Kaynak-görüntü (S2I) hakkında daha fazla bilgi için bkz . OpenShift için OpenJDK 11 kaynak-görüntü kullanma.
    • EAP İşleci'ni kullanarak Java uygulamasını dağıtın. Daha fazla bilgi için Red Hat'te EAP Operatörü için başvuru belgelerine bakın.

Önceden oluşturulmuş Azure Market teklifini kullanmıyorsanız EAP İşleci'ni doğrudan kullanmayı öğrenmeniz gerekir. İşleçte ustalık yapmak bu makalenin kapsamının dışındadır. EAP Operatörünün tüm belgeleri Red Hat'te bulunabilir.

Bu bölümün geri kalanında, önceden oluşturulmuş Azure Market teklifini kullanmaya veya doğrudan işleci kullanmaya karar vermek için bazı önemli noktalar sağlanır.

JBoss EAP sürümünün uyumlu olup olmadığını belirleme

Mevcut JBoss EAP sürümünüz, işleç tarafından desteklenen sürümlerden biri olmalıdır. Daha fazla bilgi için Red Hat belgelerindeki Sürüm Uyumluluğu ve Destek bölümüne bakın.

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 ihtiyacınız vardır. Aşağıdaki özellikler ve daha fazlası, sunucu kapasitesinin ayrıntılı bir envanterinin bulunmasından yararlanılır.

  • Düğüm havuzunuzdaki VM'lerin boyutunun seçilmesine yardımcı olmak için.
  • Kapsayıcı tarafından kullanılacak bellek miktarını anlamak için.
  • Kapsayıcının kaç CPU paylaşımına ihtiyacı olduğunu bilmek için.

Azure Red Hat OpenShift'te düğüm havuzlarını yeniden boyutlandırmak mümkündür. Daha fazla bilgi için Red Hat belgelerindeki Kümeyi yeniden boyutlandırma(Microsoft Azure) bölümüne bakın.

Tüm gizli dizilerin envanterini çıkarma

"Hizmet olarak yapılandırma" teknolojilerindeki Azure Key Vault gibi gelişmelerden önce bile iyi tanımlanmış bir "gizli dizi" kavramı yoktu. Bunun yerine şimdi aslında “gizli dizi” olarak adlandırabileceğimiz bir işlev üstlenen ayrı bir yapılandırma ayarları kümeniz vardı. JBoss EAP gibi uygulama sunucularında bu gizli diziler birçok farklı yapılandırma dosyasında ve yapılandırma deposunda bulunur. Üretim sunucularındaki tüm özellikleri ve yapılandırma dosyalarını gizli diziler ve parolalar için denetleyin. Uygulamalarınızda custom-config.xml veya jboss-web.xml gibi yapılandırma dosyalarını denetlemeyi unutmayın. Ayrıca uygulamanızın içinde parolalar ve kimlik bilgileri içeren yapılandırma dosyaları da bulunabilir. Daha fazla bilgi için bkz. Temel Azure Key Vault kavramları.

Gizli dizilerin sağlam bir envanterini elde ettikten sonra, gizli diziler ile ilgili EAP Operatörü belgelerine başvurun. Daha fazla bilgi için Red Hat belgelerinde Gizli Dizi Oluşturma bölümüne bakın.

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>

Sertifikaların sağlam bir envanterini aldıktan sonra bunları Azure Red Hat OpenShift'te yapılandırabilirsiniz. Daha fazla bilgi için Red Hat belgelerindeki OpenShift Container Platform(replace) içindeki TLS yapılandırmasına bakın.

Desteklenen Java sürümünün doğru çalıştığını onaylama

JBoss EAP'den Azure Red Hat OpenShift'e tüm geçiş yolları, her yol için farklılık gösteren belirli bir Java sürümü gerektirir. Uygulamanızın desteklenen sürümü kullanarak doğru şekilde çalışabildiğinden doğrulamanız gerekir.

Dekont

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

JNDI kaynaklarının envanterini çıkarma

Tüm JNDI kaynaklarının envanterini çıkarın. Örneğin, veritabanları gibi veri kaynaklarıyla ilişkilendirilmiş bir JNDI adı vardır ve bu ad JPA’nın EntityManager örneklerini belirli bir veritabanına doğru bağlamasına olanak tanır. JNDI kaynakları ve veritabanları hakkında daha fazla bilgi için Red Hat belgelerindeki Veri Kaynağı Yönetimi'ne bakın. ActiveMQ Artemis ileti aracıları gibi JNDI ile ilgili diğer kaynaklar geçiş veya yeniden yapılandırma gerektirebilir. ActiveMQ Artemis yapılandırması hakkında daha fazla bilgi için Red Hat belgelerinde Mesajlaşmayı Yapılandırma bölümüne bakın.

Oturum çoğaltmanın kullanılıp kullanılmadığını belirleme

Uygulamanız Infinispan ile veya Infinispan olmadan oturum çoğaltmayı kullanıyorsa üç seçeneğiniz vardır:

  • Infinispan, Azure sanal makinelerinde iyi çalışır, ancak yüksek kullanılabilirlik özellikleri sağlayan bir profil kullanıyorsanız JGroups yapılandırmasına dikkat edin. Sisteminizin yönetilen etki alanı veya tek başına sunucu olarak çalışıp çalışmadığını belirleyin.
    • Yönetilen bir etki alanındaysa, ha veya full-ha profilleri JGroups ile ilgilenir.
    • Tek başına bir sunucudaysa, tek başına-ha.xml veya tek başına-full-ha.xml yapılandırma dosyaları JGroups ile ilgilenir.
    • Microsoft Azure, UDP çok noktaya yayına dayalı JGroup bulma protokollerini desteklemez. Daha fazla bilgi için Red Hat belgelerindeki Microsoft Azure'da JBoss EAP Yüksek Kullanılabilirliğini Kullanma bölümüne bakın.
  • Oturum yönetiminde bir veritabanı kullanmak için uygulamanızı yeniden düzenleyin.
  • Oturumu Azure Redis Hizmeti’ne dışsallaştırmak için uygulamanızı yeniden düzenleyin. Daha fazla bilgi için bkz. Redis için Azure Cache.

Bu seçeneklerin tümü için JBoss EAP'nin HTTP Oturum Durumu Çoğaltması'nın nasıl yapıldığını öğrenmek iyi bir fikirdir. Daha fazla bilgi için Red Hat belgelerindeki HTTP Oturum Çoğaltması Hakkında bölümüne bakın.

Belge veri kaynakları

Uygulamanızda herhangi bir veritabanı kullanılıyorsa aşağıdaki bilgileri yakalamanız gerekir:

  • Veri kaynağının adı nedir?
  • Bağlantı havuzu yapılandırması nedir?
  • JDBC sürücüsü JAR dosyasını nerede bulabilirim?

JBoss EAP'deki JDBC sürücüleri hakkında daha fazla bilgi için Red Hat belgelerindeki Veri Kaynağı Yönetimi'ne bakın.

JBoss EAP'nin özelleştirilip özelleştirilmemiş olduğunu belirleme

Aşağıdaki özelleştirmelerden hangilerinin yapıldığını saptayın ve yapılmış olanları yakalayın.

  • Başlatma dizeleri değiştirildi mi? Bu tür betikler konak, eap_env, tek başına ve etki alanı içerir.
  • JVM’ye geçirilmiş belirli parametreler var mı?
  • Sunucu sınıf yoluna eklenmiş JAR’lar var mı?

Bu özelleştirmelerin Azure Red Hat OpenShift üzerinde çalışan kapsayıcı görüntüsünde yakalanması gerekir. Daha fazla bilgi için Red Hat belgelerindeki Java Uygulamanız için OpenShift için JBoss EAP Görüntüsünü Yapılandırma bölümüne bakın.

Ş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ğını Azure'a bağlamak için bir çözüm seçme. 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ı veya Konuları kullanıyorsa, bunları dışarıda barındırılan bir JMS sunucusuna geçirmek isteyebilirsiniz. Azure Service Bus ve Gelişmiş İleti Sıraya Alma Protokolü, JMS kullananlar için harika bir geçiş stratejisi olabilir. Daha fazla bilgi için bkz. Azure Service Bus ve AMQP 1.0 ile JMS’yi 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.

Daha fazla bilgi için Red Hat belgelerindeki Mesajlaşmayı Yapılandırma bölümüne bakın.

Özel oluşturulmuş kendi Paylaşılan Java EE Kitaplıklarınızı kullanıp kullanmadığınızı saptama

Paylaşılan Java EE kitaplığı özelliğini kullanıyorsanız iki seçeneğiniz vardır:

  • Kitaplıklarınızdaki tüm bağımlılıkları kaldırmak için uygulama kodunuzu yeniden düzenleyin ve bunun yerine işlevselliği doğrudan uygulamanızla birleştirin.
  • Kitaplıkları sunucu sınıf yoluna ekleyin.

JBoss EAP'nin özelleştirilmiş olup olmadığını belirleme bölümünde açıklanan teknikleri kullanarak bu kitaplıkları işleyebilirsiniz.

Uygulamanızın işletim sistemine özgü kod içerip içermediğini saptama

Uygulamanız konak işletim sisteminde bağımlılıkları olan kod içeriyorsa, bunu yeniden düzenleyip söz konusu bağımlılıkları kaldırmanız gerekir. Örneğin dosya sistemi yollarındaki / veya \ kullanımlarını File.Separator veya Paths.get ile değiştirmeniz gerekebilir.

Azure Red Hat OpenShift, tüm denetim düzlemi ve çalışan düğümleri için işletim sistemi olarak Red Hat Enterprise Linux CoreOS (RHCOS) kullanarak OpenShift 4 üzerinde çalışır. İşletim sistemine özgü tüm kodlar RHCOS ile uyumlu olmalıdır.

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 paketlenmişse yapılandırmalarını yakaladığınızdan emin olun.

Ü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.

Yük dengeleme gereksinimleri için hesap

Yük dengelemeyi hesaba eklemenin en iyi yolu App Gateway tümleştirmesini kullanmaktır. Daha fazla bilgi için bkz. Azure Uygulaması lication Gateway nedir?

Geçiş

Bu bölümdeki adımlarda, analizinizin önceden oluşturulmuş Azure Market teklifini kullanmaya karar vermenize neden olduğu varsayılır.

Teklifi sağlama

Teklifi Azure portalında açmak için bkz . Azure Red Hat OpenShift üzerinde JBoss EAP. Oluştur'u seçin ve teklifteki yönergeleri izleyin.

Uygulamalarınızı geçirme

Teklif, OpenShift için JBoss EAP görüntüsünde bir Java uygulaması derlemek ve çalıştırmak için Kaynak-Görüntü (S2I) işlemini destekler. Red Hat'te, daha sonra kendiniz dağıtmak isterseniz el ile nasıl yapılacağını gösteren bir örnek vardır. Daha fazla bilgi için bkz . Bölüm 2. Red Hat belgelerindeki OpenShift için JBoss EAP Görüntüsünde Java Uygulaması Derleme ve Çalıştırma.

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: