Weblogic application retirement

Weblogic application retirement

24 Mayıs 2014 0 Yazar: Cem Kefeli

Bir uygulamanın ilk deployment sonrasında öylece bırakıldığı ve yaşamı süresince bir daha hiç güncellenmediği neredeyse hiç karşılaşılmayan bir durum. Uygulamalar da insan ihtiyaçlarıyla birlikte yaşayan ve bir ömürleri olan yapılar. Günün koşullarına göre ihtiyaçları karşılayabiliyorken bir süre sonra oluşan yeni iş ihtiyaçları doğrultusunda yeni geliştirmeler yapmak gerekebiliyor. Yapılan bu yeni geliştirmeler sonrasında da tabiki güncel uygulamaların tekrar deploy edilmesi gerekli oluyor.

Weblogic uygulama sunucusu bir uygulamanın silinip tekrar yüklenmesi ile aynı uygulamanın re-deploy ya da update edilmesini farklı şekillerde ele alıyor. Daha doğrusu bir uygulama update ediliyorsa iş anlamında da gerçekten yeni gelen bir özelliğin aktif edileceği konseptine bağlı kalmaya çalışıyor. Aslında pratik yaşamda bir uygulamanın silinmesi sonrasında yenisinin tekrar yüklenmesi ile uygulamanın update edilmesi arasında bir fark yok. Nihayetinde ikisinde de yeni uygulama hayatına başlamış oluyor. Ama asıl fark update özelliğinin sunmuş olduğu yenenekler kullanılırsa ortaya çıkıyor.

Weblogic, uygulama paketleri içerisinde yer alan manifest dosyaları sayesinde uygulama versiyonunu takip edebilme ve değişikliği anlayabilme yetisine sahip. Eğer aşağıdaki gibi bir manifest dosyasını uygulama içerisine olması gereken yere eklerseniz daha ilk deployment aşamasında uygulama versiyonlanmış olacaktır.

MANIFEST.MF (applicationRetirement – Version Blue – v1.0.0) 

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: Cem Kefeli (cemkefeli.com)
Weblogic-Application-Version: 1.0.0
Build-Timestamp: 2014-05-24 10:12:15 598

Eğer aşağıdaki gibi bir sonraki güncel uygulamada (Yani bu örnek için ‘Version Red – v2.0.0’) versiyon bilgisi değişirse, Weblogic bu durumdan da haberdar olacak ve hem mevcuttaki uygulamanın hem de güncel uygulamanın admin kontrolünde birlikte yaşamasına imkan tanıyacaktır.

MANIFEST.MF (applicationRetirement – Version Red – v2.0.0) 

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: Cem Kefeli (cemkefeli.com)
Weblogic-Application-Version: 2.0.0
Build-Timestamp: 2014-05-24 10:17:15 598

Aşağıdaki adımlar takip edilerek Weblogic uygulama sunucusunda nasıl versiyonlama ve update yapılabileceğini görebilirsiniz. Versiyonlanmış iki örnek uygulamayı da yazının bitimindeki linkleri kullanarak indirebilirsiniz;

Bu aşamada daha önce karşımıza çıkmayan ‘Archive Version’ etiketi ile de artık karşılaşmış oluyoruz. Weblogic, uygulama içerisine gömmüş olduğumuz manifest dosyası içerisindeki versiyon bilgisini okuyarak uygulamayı versiyonlamış oldu.

Aslında versiyon bilgisinin alınması dışında şu aşamaya kadar farklı birşey ile karşılaşmadık. İlgili IP:Port üzerinden uygulamayı çağıracak olursak mavi görüntülü ilk versiyon ile uygulamayı açmış oluruz.

Bu aşamada artık mevcutta var olan uygulamayı yeni versiyon ile update etmeye başlıyoruz.

Yeni versiyonu deploy ederken dikkat edilmesi gereken bir önemli nokta eski ve yeni versiyon uygulamaların disk sistemi üzerinde ayrı ayrı path’lerde aynı isimle bulunmalarıdır. Eğer yeni versiyon, mevcut uygulamanın üzerine yazılacak olursa update sonrası rollback imkanımız kalmamış olur ve update özelliğinden faydalanılamaz.

Yeni versiyon algılandı.

Tam bu aşamada daha önce görmeye alışık olmadığımız bir görüntü ile karşılaşıyoruz. Aynı hedef (Managed server, cluster, …) üzerinde aynı isimli iki farklı uygulama aynı anda bulunuyor.

Deployment tamamlandıktan kısa bir süre sonra ilk eski versiyonun state’inin artık ‘Retired’ olarak işaretlendiği görülür

Artık yeni uygulama ‘Active’ olmuştur. Fakat her iki versiyon da halen ekranda görülmeye devam eder.

Bu aşamada yeni versiyonu yalnızca admin isteklerine açabilir testlerinizi yaptıktan sonra tüm kullanıcıların hizmetine sunabilirsiniz. Ya da eğer testleriniz başarısız olduysa eski pakete dönme imkanınız da halen mevcut. Eski pakete dönülmesi için yapılması gereken yalnızca ilk versyonun kendisi üzerinden update/re-deploy edilmesidir.