Merhaba, mevcut durumda çalışır vaziyette her müşteriye tek tek kurulan bir Play Framework uyglamam var. Uygulamalarını "exploded war" dosyaları halinde apache tomcar üzerine deploy ediyorum.

Sunucu uygulamasında sürekli olarak bugfixler ve gnücellemeler yayımlamak durumundayım. Mevcut durumda kendi geliştiriğim aşağıdaki sistemi kullanıyorum:

1- windows'a zamanlanmış göre olarak yazmış olduğum "updater" uyglamasını hergün çalıştırıoyurm.

2- program önce tomcat durduruyor, güncellemeyi internetten indirip (basit bir scripting dili geiiştirdim, şuradan bunu indir, bilgisayarda şuraya unzip et gibi..)

3- işlem tamamlanınca sunucuyu çalıştırıyorum..

Buradaki problemim birçok durumda operatörlerin "zamanlanmış görev oluşturma" işlemini üşendiklerinden es geçmeleri veya yeni windows versiyonlarında bu adımların daha karmaşık olması

Benim amaçladığım bu işi tamamen tomcat üzerinden çözebilmek. Belki ikinci bir web application ile diğer web application'a yuarıda yazdığım işlemleri otomatik yaptırmak.

Bu konuda bilgisi olan veya tavsiye edebileceğiniz bir yöntem var mıdır?

soruldu: 05 Tem '14, 17:21

dreampowder's gravatar image

dreampowder
3.3k112849
cevap kabul oranı: 23%

değiştirildi: 05 Tem '14, 17:21

Bahsettiğiniz şey Continuous Integration anladığım kadarıyla?

(05 Tem '14, 19:04) molgun molgun's gravatar image

Sizin istediğiniz şey sürekli entegrasyon olayı. Şu işinizi görür: http://jenkins-ci.org/

(05 Tem '14, 19:34) kodmanyagha kodmanyagha's gravatar image

Jenkins ile çalıştım, açıkçası her müşteri bilgisayarına jenkins kurmaktansa zamanlanmış görev olarak yazdığım update programını çalıştırmak daha kolay gözüküyor :)

(06 Tem '14, 03:38) dreampowder dreampowder's gravatar image

Yazdığın Windows programını Windows Servisi olarak yazabilirsin. böylece zamanlanmış göreve ihtiyacın kalmaz.

permanent link

cevaplandı: 05 Tem '14, 19:10

Fatih%20A%C5%9Flamac%C4%B1's gravatar image

Fatih Aşlamacı
1.0k111929
cevap kabul oranı: 14%

Evet sanırım bu en kolay çözüm olacak gibi gözüküyor, basit bir bat dosyası ile işlemi servis olarak windowsa kurabilirim... Yine de benim aklımda olan uygulamayı kuran kişinin sadece tomcat altındaki "webapps" klasörü içerisine güncelleme uyguamasını kopyalaması ile tomcat üzerinden otomatik olarak çalışan bir uygulama olması var, tabi eğer mümkün ise. (bir nevi tomcat servisi)

(06 Tem '14, 11:41) dreampowder dreampowder's gravatar image

auto-deployment şirkette bizimde düşündüğümüz bir olay lakin handikaplarıda mevcut. Jenkins CI aracındada handikaplar mevcut, bir hafta önce bir arkadaşım kod yazıp, gönderiyor ve yaptığı işi gönderdiği kod ile yapmasını bekliyor.Lakin yeni çıkacak pakette cengiz "jenkins" belirli tarihte kalmış ve yeni gelen kodları paket içine atmıyormuş. Anca 1 hafta sonra farkedilebildi. Neden saçmaladığını şuan için bulamadık. Auto-deployment sırasında oluşabilcek envayi çeşit hatalar için ise case'leri bilip, yazmalısınız.

Şu aşamada gördüğüm ve tavsiye edebileceğim tek çözüm soru içindeki bir kısım için; uygulamayı durdurmak yerine ön tarafa nginx gibi basit bir web server ile load balancer işini verip, tomcat instance'ları içinde tomcat-clustering yapıp parça parça tomcat instance'ları durdurup, deploment yapmanızı tavsiye ederim.

Yorum olarak yazacaktım, sığmadı malesef.

permanent link

cevaplandı: 05 Tem '14, 21:40

Turgay%20Can's gravatar image

Turgay Can
8.4k63799
cevap kabul oranı: 18%

değiştirildi: 05 Tem '14, 21:43

uygulamanın durması çok problem değil, aslında benim düşüncelerimden birisi, tomcatta ikinci bir programla updateleri indirip, diğer uygulamayı yamaladıktan sonra o uygulamayı tomcati yeniden başlatmadan yeniden çalıştırmak. bu mümkün olursa işimi fazlasıyla çözer diye umud ediyorum ne dersiniz?

(06 Tem '14, 03:43) dreampowder dreampowder's gravatar image

Açıkçası ben de Jenkins ile uğraştım, tek bir sunucu olsa, ve herkes oradan bilgileri alıyor olsa jenkins'i kurayım, optimize edeyim illaki bir noktada istediğim sonucu alırım. Fakat sunucu her kullanıcıya kurulması gerektiğinden jenkins iyi bir çözüm olmuyor malesef

(06 Tem '14, 11:47) dreampowder dreampowder's gravatar image
1

"tomcati yeniden başlatmadan yeniden çalıştırmak" aklıma hot swap geliyor. jrebel var bunu yapan birde intellij'in bir eklentisi vardı http://blog.jetbrains.com/idea/2013/07/get-true-hot-swap-in-java-with-dcevm-and-intellij-idea/ . Diğer belirttiğin auto-deployment için script'ler yazmalısın(python öneririm) yada arkadaşların önerdiğin gibi scheduler job'ın tetiklediği bir uygulama.

(07 Tem '14, 01:56) Turgay Can Turgay%20Can's gravatar image

Merhabalar , bu konu ile alakalı benim de bir tane sorum olacak. Elimde bir den fazla client uygulaması var. bunların belli bir zamanda çalışıp databesi güncelleme işlemi yapacak. Farklı araştırmalar yaptım scheduler sınıflarını öneriyorlar. Her nevi de uygulama main fonksiyonu bir şekilde tetiklenecek bu olay nasıl olacak peki.? Tomcati start ettiğimde gidip direk o main metodu nasıl call edecek? Mantık olarak o kısımda bir eksikliğim var. Sonrasında scheduled sınıfı da işimi görecektik.

permanent link

cevaplandı: 29 Eyl '14, 07:09

mehmetunluu's gravatar image

mehmetunluu
100114
cevap kabul oranı: 0%

Merhabalar , bu konu ile alakalı benim de bir tane sorum olacak. Elimde bir den fazla client uygulaması var. bunların belli bir zamanda çalışıp databesi güncelleme işlemi yapacak. Farklı araştırmalar yaptım scheduler sınıflarını öneriyorlar. Her nevi de uygulama main fonksiyonu bir şekilde tetiklenecek bu olay nasıl olacak peki.? Tomcati start ettiğimde gidip direk o main metodu nasıl call edecek? Mantık olarak o kısımda bir eksikliğim var. Sonrasında scheduled sınıfı da işimi görecektik.

permanent link

cevaplandı: 29 Eyl '14, 07:09

mehmetunluu's gravatar image

mehmetunluu
100114
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×47
×3
×2

Soruldu: 05 Tem '14, 17:21

Görüntüleme: 813 kez

Son güncelleme: 29 Eyl '14, 07:09

powered by BitNami OSQA