İçeriğe geç
Teklif al

Hizmet · Danışmanlık, test ve bakım

Java sürüm yükseltme

Birçok kurumsal uygulama hâlâ Java 8 ya da Java 11 üzerinde çalışıyor. Uygulama işini yapıyor, ama çevresi değişiyor: Spring Boot 2 serisine topluluk desteği sona erdi, yeni kütüphane sürümleri en az Java 17 istiyor, kullanılan JDK dağıtımının güncelleme takvimi ya da lisans koşulları gündeme geliyor. Bir güvenlik taraması kritik bir bağımlılık açığı bulduğunda, yamalı sürüme geçmenin önce Java'yı yükseltmeyi gerektirdiği ortaya çıkıyor.

Kategori
Danışmanlık, test ve bakım
Çalışma modeli
Proje bazlı
Hizmet bölgesi
Türkiye geneli, uzaktan ve yerinde

Java sürüm yükseltme hizmetimizde uygulamanızı güncel bir LTS sürümüne, yani Java 17, 21 ya da 25'e, iş akışlarını bozmadan taşıyoruz. Kaldırılan API'leri, javax paketlerinden jakarta'ya geçişi, derleme araçlarını ve çalışma zamanı ayarlarını tek tek ele alıyor, her adımı test ortamında doğrulayıp kontrollü biçimde canlıya alıyoruz.

Java sürüm yükseltme hizmeti kimler için

Yükseltme ihtiyacı genellikle bir dış baskıyla, bir güvenlik bulgusu ya da bir kütüphane zorunluluğuyla başlar.

  • Spring Boot 2 ve Java 8 ile çalışan, bağımlılık güncellemelerinde artık ilerleyemeyen ekipler
  • WebLogic, JBoss ya da eski Tomcat sürümleri üzerinde Java EE uygulaması işleten kurumlar
  • Güvenlik denetiminde destek dışı JDK ya da kütüphane bulgusu alan şirketler
  • Uygulamasını kapsayıcıya taşıyıp Kubernetes ya da bulut ortamında çalıştırmak isteyen ekipler
  • Java uygulamasını dış bir firmadan devralmış ve önce güncel ve desteklenen bir tabana oturtmak isteyen işletmeler

Eski Java sürümünde kalmanın teknik bedeli

Ertelenen her sürüm, bir sonraki yükseltmeyi daha geniş kapsamlı hâle getirir.

  • 01

    Kilitlenen bağımlılık ağacı

    Hibernate 6, Spring Framework 6 ve birçok güncel kütüphane eski Java sürümlerini desteklemez. Tek bir açığı kapatmak için yapılan güncelleme zincirleme olarak onlarca paketi etkileyebilir.

  • 02

    javax ile jakarta ayrımı

    Jakarta EE 9 ile birlikte paket adları javax'tan jakarta'ya geçti. Servlet, JPA ve doğrulama kullanan her sınıfın yanında bu paketlere bağlı üçüncü taraf kütüphanelerin de uyumlu sürümü gerekir.

  • 03

    Kaldırılan modüller ve kapsülleme

    JAXB ve JAX-WS gibi modüller Java 11 ile JDK'dan çıkarıldı, Nashorn JavaScript motoru kaldırıldı, iç API'lere yansıma ile erişim sıkı biçimde engellendi. Eski kod ya da eski bir kütüphane bu noktalarda çalışma anında hata verir.

  • 04

    Kapsayıcı ve bellek davranışı

    Eski JVM sürümleri, özellikle cgroup v2 kullanan güncel kapsayıcı ortamlarında, bellek ve işlemci sınırlarını doğru algılamayabilir; uygulama beklenmedik biçimde sonlandırılabilir. Güncel sürümlerde bu davranış ve çöp toplayıcı seçenekleri belirgin biçimde iyileşti.

Java sürüm yükseltme çalışmasında ele aldıklarımız

Yükseltme yalnızca JDK'yı değiştirmek değil, uygulamanın bütün çalışma zincirini güncellemektir.

  • 01

    Uyumluluk analizi

    jdeps ile JDK iç API kullanımları, derleme uyarıları ve bağımlılık ağacı taranır. Hangi kütüphanenin hangi sürüme çıkması gerektiği ve hangilerinin yerine alternatif bulunması gerektiği listelenir.

  • 02

    Ara adımlarla ilerleme

    Java 8'den doğrudan en yeni sürüme atlamak yerine, gerektiğinde önce bir ara LTS sürümde derleme ve testler yeşile getirilir. Her adım ayrı bir sürüm olarak canlıya alınabilir.

  • 03

    Otomatik dönüşüm tarifleri

    OpenRewrite gibi araçların hazır tarifleriyle javax-jakarta paket değişiklikleri, kaldırılan API çağrıları ve Spring Boot yapılandırma anahtarları toplu olarak dönüştürülür; sonuç elle gözden geçirilir.

  • 04

    Derleme ve çalışma zamanı ayarları

    Maven ya da Gradle eklentileri, Lombok ve kod üretici araçlar, JVM bayrakları ve çöp toplayıcı ayarları yeni sürüme göre güncellenir; kaldırılmış bayraklar temizlenir.

  • 05

    Karşılaştırmalı performans ölçümü

    Yükseltme öncesi ve sonrası aynı senaryoda yanıt süresi, bellek kullanımı ve başlangıç süresi ölçülür; beklenmeyen gerileme varsa canlıya çıkmadan araştırılır.

Yükseltmede birlikte güncellenen bileşenler

Java sürümü, etrafındaki altyapıyla birlikte düşünülmelidir.

  • 01

    Spring Boot ve Spring Framework

    Spring Boot 2'den 3'e geçişte güvenlik yapılandırması, gözlemlenebilirlik ve yapılandırma özellikleri yeni yapıya uyarlanır.

  • 02

    Uygulama sunucuları

    Tomcat 10 ve üzeri, WildFly ya da güncel WebLogic sürümlerinin jakarta paketleriyle uyumu sağlanır; gerekirse gömülü sunucuya geçiş değerlendirilir.

  • 03

    JDK dağıtımı

    Eclipse Temurin, Amazon Corretto, Oracle JDK ya da işletim sistemi paketleri arasında güncelleme takvimi ve lisans koşulları karşılaştırılarak seçim yapılır.

  • 04

    Veritabanı sürücüleri ve ORM

    JDBC sürücüleri ile Hibernate sürümü güncellenir; sorgu davranışında değişiklik olabilecek noktalar testlerle doğrulanır.

  • 05

    CI hattı ve kapsayıcı imajları

    Derleme sunucusu, temel Docker imajları ve dağıtım betikleri yeni JDK ile yeniden kurulur.

Java sürüm yükseltme hizmeti nasıl ilerler?

  1. Adım 01

    Analiz

    İş akışınızı, kullanıcılarınızı ve mevcut sistemlerinizi dinleriz; kapsamı, öncelikleri ve kabul ölçütlerini yazılı hâle getiririz.

  2. Adım 02

    Tasarım

    Ekran akışlarını ve veri modelini çıkarırız. Arayüzü sizinle gözden geçirip onay almadan geliştirmeye geçmeyiz.

  3. Adım 03

    Geliştirme

    Kısa döngülerle çalışırız; her döngü sonunda çalışan bir sürümü test ortamında görürsünüz.

  4. Adım 04

    Test

    İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.

  5. Adım 05

    Yayın

    Sunucu, alan adı, yedekleme ve izleme ayarlarını yaparak canlıya alırız; ekibinize kısa bir kullanım eğitimi veririz.

  6. Adım 06

    Bakım

    İsterseniz bakım ve destek anlaşmasıyla güncellemeleri, izlemeyi ve yeni geliştirmeleri sürdürürüz.

Yükseltme sırasında riskleri nasıl yönetiyoruz

Test kapsamı zayıf olan projelerde önce kritik iş akışları için entegrasyon testleri yazarız. Fatura hesaplama, sipariş onayı ya da raporlama gibi akışların yükseltmeden önceki çıktıları kayda alınır; yeni sürümdeki çıktılar bunlarla karşılaştırılır. Tarih, saat dilimi ve sayı biçimlendirme gibi yerel ayara bağlı davranışlar ayrıca kontrol edilir.

Devamını okuDaha az göster

Canlıya geçişte mümkünse yeni sürümü eski sürümle yan yana çalıştırır, trafiği kademeli olarak aktarırız. Tek sunuculu yapılarda ise geri dönüş için önceki JDK ve uygulama paketi hazır tutulur, geçiş düşük trafikli bir zaman diliminde yapılır.

Yükseltme bittiğinde bir sonraki LTS geçişini kolaylaştıracak düzeni de bırakırız: bağımlılıkların otomatik güncelleme önerileri, derleme uyarılarının hata sayılması ve kullanılmayan kütüphanelerin temizlenmesi. Böylece bir sonraki yükseltme yine büyük bir projeye dönüşmez.

Bu hizmette çalışma modelleri

  • 01

    Proje bazlı

    Sabit kapsam, sabit fiyat ve belirli teslim tarihi

    Kapsamı belli, teslim tarihi olan işler için.

    • Yazılı kapsam ve kabul ölçütleri
    • Sabit fiyat ve belirli teslim tarihi
    • Teslim ve kabul adımları sözleşmede
    Bu modelle teklif alın: Proje bazlı

Java sürüm yükseltme hakkında sık sorulan sorular

Java sürüm yükseltme fiyatları neye bağlıdır?

Uygulamanın büyüklüğü, mevcut ve hedef sürüm arasındaki mesafe, Spring Boot ya da Java EE kullanımı, eski kütüphane sayısı, mevcut test kapsamı ve uygulama sunucusu değişikliği gerekip gerekmediği belirleyicidir. Uyumluluk analizinden sonra kesin kapsamla teklif veririz.

Java 17'ye mi, 21'e mi, 25'e mi geçmeliyiz?

Kullandığınız kütüphanelerin ve uygulama sunucusunun desteklediği en yeni LTS sürüm genellikle doğru hedeftir. Bazı kurumsal ürünler belirli bir sürümü onaylamış olabilir; analizde bu kısıtları kontrol edip önerimizi gerekçesiyle sunarız.

Yükseltme sırasında uygulama kapanır mı?

Hazırlık ve testler ayrı bir ortamda yapılır. Canlı geçiş, altyapınıza göre kesintisiz ya da kısa ve planlı bir bakım penceresiyle gerçekleştirilir.

Oracle JDK lisansı konusunda ne yapmalıyız?

Lisans koşulları kullanım biçimine ve sürüme göre değişebilir. Ücretsiz OpenJDK dağıtımlarına geçişin teknik yanını planlarız; sözleşmeye ilişkin konuları hukuk ve satın alma biriminizle netleştirmenizi öneririz.

Kotlin ya da başka bir JVM dili kullanan modüller de yükseltilir mi?

Evet. Kotlin, Groovy ya da Scala modüllerinin derleyici ve standart kütüphane sürümleri de hedef JDK ile uyumlu olacak şekilde güncellenir.

Java sürüm yükseltme hizmeti sonrasında sorun çıkarsa ne olur?

Geçişten sonraki dönemde yükseltmeden kaynaklanan hataları düzeltiriz. Uzun vadeli takip isterseniz bakım ve destek anlaşmasıyla güncellemeleri düzenli olarak sürdürebiliriz.

İlgili hizmetler ve sayfalar

Java sürüm yükseltme için teklif alın

Kısa bir ön görüşmede ihtiyacınızı dinleyip kapsamı, çalışma modelini ve takvimi yazılı olarak paylaşırız.

+90 552 579 93 21