Java uuendamine tundub harva kiireloomuline, kuni partneri SDK, turvaparandus või raamistik paneb sind seda tegema. Käesolevas juhendis selgitatakse, millal uuendama peaks, kuidas riske vähendada ja mida oma meeskonnalt küsida, et uuendamine ei takistaks enam tegevuskava elluviimist.
Java uued versioonid ilmuvad iga kuue kuu tagant. Tootjad määravad kindlad versioonid pikaajaliseks toetuseks (LTS). Ökosüsteemid kohanduvad nende LTS-versioonidega, mis tähendab paremat turvalisust, sujuvamaid SDK-sid ja lihtsamat töötajate värbamist. Samas takistab või raskendab see tehisintellekti kasutuselevõttu, kuna pilvepõhised tehisintellekti SDK-d ja turvalised voogedastuslahendused tuginevad praegustele Java LTS-baasversioonidele. Maha jäämine tundub odav, kuni see põhjustab versiooni väljalaske viivituse või vastavusprobleemi. Lahenduseks on järjepidev uuendamine, mitte päästmisprojekt.
Kui mõni vastus on ebaselge, paranda see esmalt ära. See vähendab hiljem kulusid ja segadust.
Püüdke kasutada tootja praegust pikaajalist toetust (LTS), kui selleks pole selget takistust. Kontrollige seda lühikese katsetuse abil. Mõnikord peab esimesena muutuma JVM, mõnikord raamistik. Määrake järjekord faktide, mitte oletuste põhjal, ja kirjutage see üles. Hoidke meeskond keskendunud pigem mõnele lühikesele tsüklile kui ühele suurele hüppele.
Käivita esmalt väike pilootprojekt. Viia kasutusele järk-järgult. Jälgi klientidega seotud näitajaid ja laienda kasutusala alles siis, kui tulemused on head. Kui tegemist on andmebaasi muudatustega, kasuta plaani, mis võimaldab vanal ja uuel koodil töötada paralleelselt, kuni andmed on ohutult üle viidud. Suhtu „tagasipööramisse“ realistlikult. Kui andmed muutuvad, on edasiliikumine turvalise versioonini sageli ainus mõistlik valik.
Kuna Java võttis kasutusele kuuekuulise väljalasketsükli, olid need vaheversioonid lühiajalised ja jõudsid kiiresti uuenduste lõppfaasi. Praktikas eelistavad meeskonnad tootjate pikaajalise toega versioone, sest just seal koonduvad turvaparandused, partnerite SDK-d ja tööriistad. Seega keskendub käesolev juhend praegustele ja hiljutistele LTS-versioonidele ning käsitleb mitte-LTS-versioone vaid vahepeatuseina teel LTS-versioonide poole.
Java 25 (LTS) – üldine kättesaadavus septembris 2025
Parim vaikimisi valik uute teenuste ja uuenduste jaoks. Saate kõige pikema toetuse ja laiaulatuslikuma ökosüsteemi toetuse. Enamik suuremaid platvorme toetab juba versiooni 25 või on sellele üleminekuks valmis. Selle versiooni kasutamine tagab teile juurdepääsu uusimatele APM-agentidele, konteineripiltidele ja partnerite SDK-dele, kui need uuendavad oma baasversioone.
Miks see on oluline: vähem „JVM-i poolt blokeeritud” üllatusi, kiirem partnerite integreerimine ja vähem ümbertegemist, kui raamistikud võtavad kasutusele ainult versioonile 25 mõeldud funktsioone.
Java 21 (LTS) – üldine kättesaadavus septembris 2023
Endiselt tugev alus ja turvaline vahepeatus. Versioon 21 võimaldab virtuaalsete niitide kasutamist, mis aitab paljudel „niit-päringu-kohta” teenustel skaleeruda väiksema koormusega, mistõttu Spring Boot 3.2+ ja teised raamistikud võtsid versiooni 21 kiiresti omaks. Mõned tarnijad hakkavad uute SDK-de ja APM-agentide puhul märkima „soovitatav versioon 21+”.
Risk, kui siin liiga kaua viivitada: üha rohkem raamatukogusid optimeerib esmalt versiooni 25 jaoks ning teile kehtib varasem toetuse lõppkuupäev, mis kitsendab teie planeerimisajaakent.
Java 17 (LTS) – üldine kättesaadavus alates septembrist 2021
Toetatud, kuid kasutamisraskused suurenevad. Spring Framework 6 / Spring Boot 3.x, Micronaut 4, Quarkus 3 ja Jakarta EE 11nõuavad kõik Java 17 või uuemat versiooni. Saate küll töötada, kuid jääte ilma 21+ versiooni parandustest ja näete SDK-des, turvaagentides ja ehitamispluginates rohkem märkusi „nõuab 21+ versiooni”.
Miks see oluline on: kulutate rohkem aega vanade pluginaversioonide kinnitamisele, nõrgemate turvastandardite aktsepteerimisele ja partneritele selgitamisele, miks nende uusim SDK ei tööta.
Java 11 (LTS) – üldkättesaadavus alates septembrist 2018
Hakatakse juba vananema. Paljud tööriistakomplektid eeldavad uuemaid baitkoodi versioone, uuemaid TLS-i vaikimisi seadeid ja konteinerite baaskujutisi, mis on suunatud versioonidele 17/21+. Java 11 kasutamine tähendab sageli Spring Boot 2.x versioonide külmutamist ning juurdepääsu kaotamist praegustele turbevärskendustele ja jõudluse parandustele.
Miks see on oluline: suurem rikkete oht, aeglasemad väljalasked, ümberkorralduste hooldamise kogukulude suurenemine.
Java 8 ja vanemad versioonid
Suur risk ja suured kulud. Teid ootavad ees raamatukogude ja pistikprogrammide asendamine, rangemad krüpto- ja TLS-poliitikad ning baaskujutise muudatused. Mõned tarnijad pakuvad endiselt turvaparandusi vanematele versioonidele, kuid ökosüsteemi arengusuund on mujal.
Miks see oluline on: tööjõu ja partnerite vahelised pinged suurenevad, auditid muutuvad rangemaks ning mida kauem ootate, seda suuremaks paisub uuendamise ulatus.
Kui meeskonnad väidavad, et „me ei saa tehisintellekti rakendada”, on tegemist sageli JVM-i ja SDK-i vahelise kokkusobimatusega (ja mõnikord ka TLS/HTTP2/gRPC-ga seotud probleemidega), mitte toote piiranguga. Siin on praktiline ülevaade versioonide kaupa OpenAI/Azure OpenAI, AWS Bedrock/SageMaker ja Google Vertex AI kohta.
Kokkuvõttes: enamik AI Java SDK-sid töötab Java 8+ versioonidel, kuid Java 17/21/25 versioonidel on vähem turvalisuse, HTTP2 ja gRPC-ga seotud probleeme ning saad paremaid näiteid ja tööriistu – mida su raamistikud niikuinii üha enam eeldavad.
Java 25 (LTS) – Green.
Parim vaikimisi valik uute tehisintellekti funktsioonide jaoks. Kõige puhtam tee kaasaegse TLS-i, HTTP/2, gRPC ja konteineripiltide juurde; SDK-d ja näited koonduvad esmalt siia.
Java 21 (LTS) – Green.
Täielikult ühilduv kõigi peamiste tehisintellekti SDK-dega. Raamistikud, APM-agendid ja ehitamispluginad toetavad aktiivselt versiooni 21; saate kasu virtuaalsetest niitidest, mis on kasulikud vestlus- ja voogesituse taustsüsteemides.
Java 17 (LTS) – alguses roheline → aja jooksul kollane.
SDK-d toimivad, kuid üha enam raamatukogusid ja näidiskoode eeldavad versiooni 21/25. Lisaks nõuavad populaarsed serveriraamistikud, mis majutavad AI-liideseid (Spring Boot 3.x jne), juba Java 17 või uuemat versiooni – seega on praegu kõik korras, kuid aega jääb üha vähemaks.
Java 11 (LTS) – Amber.
AI-SDK-de integreerimine on endiselt võimalik, kuid sellega kaasnevad üha suuremad raskused: uuemad pistikprogrammid, konteinerid ja turvalisuse vaikimisi seaded eeldavad versiooni 17 või uuemat. Oodata on rohkem versioonide fikseerimist ja tagasiühilduvuse tagamist ning vähem abi praegustest näidetest. Vaadake versioone 17 ja 21 kui vahepealset lahendust.
Java 8 ja vanemad versioonid – Punane.
Kuigi mitmed SDK-d toetavad tehniliselt versiooni 8, tuleb selle kasutamisel arvestada teatud piirangutega: vanemad TLS-krüpteeringud, piiratud HTTP/2/gRPC tugi, rangemad konteinerite baasnõuded ja tootja vähenev tähelepanu. Google soovitab eelistada uusimat pikaajalise toega (LTS) versiooni; AWS v1 (mida kasutatakse sageli JDK 8-ga) toetamine lõpeb 31. 12.2025. Kui kasutate versiooni 8, planeerige esmalt platvormi vahetus (versioonile 17/21/25), enne kui lisate AI laiaulatuslikult. Google Cloudi dokumentatsioon+1
Kui kasutate Java 21 või 25 versiooni, on teil kõik korras kaasaegse tehisintellekti (OpenAI/Azure, Bedrock/SageMaker, Vertex) kasutamiseks. Kui kasutate Java 11 versiooni, võite jätkata ettevaatusega, kuid arvestage kasvavate probleemidega. Kui kasutate Java 8 või vanemat versiooni, uuendage esmalt – ajutiste lahenduste kulud ületavad sujuva ülemineku kulud praegusele pikaajalise toega (LTS) versioonile.
Kas saame vahele jätta versioonid
? Enamasti küll, kui teie raamistikud ja SDK-d toetavad siht-JVM-i. Paluge teha lühike ühilduvuskontroll ja katsetamine.
Kas meil on vaja virtuaalseid protsessisid
? Mitte alati. Need aitavad I/O-mahukaid teenuseid, mis põrkuvad protsesside arvu piirangutele. Palu oma meeskonnal mõõta tulemusi enne ja pärast.
Kuidas vältida seisakuid„
“keskkonnas?Jaga versiooni väljalaskmine etappideks, jälgi teenuse seisundit tähelepanelikult ja kasuta andmete turvalisust tagavat migratsiooniplaani, mis võimaldab vanal ja uuel koodil üheaegselt töötada.
Paluge üheleheküljelist ülevaadet, milles on kirjas teie Java versioon, peamised raamistikud, tootja poolt pakutava toe kehtivusaeg ja teadaolevad takistused. Kiidake heaks lühike katsetamine testkeskkonnas ning planeerige seejärel järkjärguline kasutuselevõtt. Tehke seda kord kvartalis, et uuendused ei muutuks kunagi kriisiks.
Me kavandame ja viime läbi Java-uuendusi rahulikult ja läbimõeldud sammudega. Kui soovite, et keegi teine seda üle vaataks või et plaan viidaks ellu meie meeskonna poolt, võtke meiega ühendust.