Java uuendused tunduvad harva kiireloomulised, kuni partneri SDK, turvaparandus või raamistik sunnib teid käega lööma. Selles juhendis selgitatakse, millal liikuda, kuidas hoida riski madalal ja mida küsida oma meeskonnalt, et uuendused lõpetaksid teekaardi blokeerimise.
Java saadetakse kuue kuu tagant. Tootjad määravad teatud versioonid pikaajaliseks toetuseks. Ökosüsteemid kohanduvad nende LTS-liinide järgi, mis tähendab paremat turvakate, sujuvamat SDK-d ja lihtsamat värbamist. See takistab või raskendab ka tehisintellekti kasutuselevõttu, sest pilvede tehisintellekti SDK-d ja turvalised voogedastuse virnad on kooskõlas praeguste Java LTS-baasliinidega. Kaugele maha jäämine tundub odav, kuni see põhjustab väljaande hilinemise või nõuetele vastavuse tuvastamise. Ravimiks on pidev uuendamise harjumus, mitte päästeprojekt.
Kui mõni vastus on ebaselge, parandage see kõigepealt. See vähendab hiljem kulusid ja müra.
Püüdke praeguse müüja LTS-i poole, välja arvatud juhul, kui on selge blokeerija. Tõestage tee lühikese liivakastiharjutusega. Mõnikord peab kõigepealt liikuma JVM, mõnikord raamistik. Otsustage 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.
Esmalt käivitage väike pilootprojekt. Vabastage etapiviisiliselt. Jälgige kliendile suunatud näitajaid ja edendage ainult siis, kui see on hea. Andmebaasi muutmise korral kasutage plaani, mis võimaldab vana ja uut koodi kõrvuti töötada, samal ajal kui andmeid ohutult liigutatakse. Käsitlege "tagasipööramist" realistlikult. Kui andmed muutuvad, on turvalise paranduse edasiandmine sageli ainus mõistlik võimalus.
Kuna Java võttis kasutusele kuuekuulise avaldamisperioodi, olid need vahepealsed versioonid lühikese elueaga ja jõudsid kiiresti uuenduste lõppemiseni. Reaalses maailmas standardiseerivad meeskonnad müüja pikaajalisi toetusliine, sest seal koonduvad turvaparandused, partnerite SDK-d ja tööriistad. Seega keskendutakse käesolevas juhendis praegustele ja hiljutistele LTS-väljaannetele ning käsitatakse mitte-LTS-i kui lühikest vahepeatust teel LTS-i poole.
Java 25 (LTS) - GA september 2025
Uute teenuste ja uuenduste jaoks parim vaikimisi. Saate kõige pikema toetusperioodi ja kõige laiema ökosüsteemi toetuse. Enamik suuremaid stäkke kas juba toetavad 25 või on lühike tee selleni. Kui jääte siia, saate kasutada uusimaid APM-agente, konteineripilte ja partnerite SDK-sid, kui need muutuvad oma baasliinideks.
Miks see on oluline: vähem üllatusi "JVM blokeerib", kiirem partnerite integreerimine ja vähem ümbertööd, kui raamistikud võtavad kasutusele ainult 25 funktsioonid.
Java 21 (LTS) - GA september 2023
Endiselt tugev baas ja turvaline peatuspaik. 21 avab virtuaalsed niidid, mis võimaldavad paljusid niidipõhiseid teenuseid väiksema koormusega skaleerida, mistõttu Spring Boot 3.2+ ja teised raamistikud võtsid 21 kiiresti omaks. Mõned müüjad on hakanud uutele SDK-dele ja APM-agentidele märkima "21+ soovitatav".
Risk, kui te siin liiga kaua peatute: üha rohkem raamatukogusid optimeerib kõigepealt 25 jaoks ja te kannate varasemat toetuse lõppemise kuupäeva, mis surub teie planeerimisakna kokku.
Java 17 (LTS) - GA september 2021
Toetatud, kuid hõõrdumine suureneb. Spring Framework 6 / Spring Boot 3.x, Micronaut 4, Quarkus 3 ja Jakarta EE 11nõuavad kõik Java 17+. Saate käivitada, kuid teil jääb puudu 21+ parandustest ja näete rohkem "nõuab 21+" märkusi SDK-des, turvaagentides ja build pluginates.
Miks see on oluline: te kulutate rohkem aega vanade pluginaversioonide kinnitamisele, nõustusite nõrgemate turvabaasidega ja selgitate partneritele, miks nende uusim SDK ei jookse.
Java 11 (LTS) - GA september 2018
Nüüd vananeb. Paljud tööriistakettad eeldavad uuemaid bytecode'i tasemeid, uuemaid TLS-i vaikimisi ja konteineri baaskujutisi, mis on suunatud 17/21+. 11 hoidmine tähendab sageli Spring Boot 2.x liinide külmutamist ja juurdepääsu kaotamist praegustele turvauuendustele ja jõudlustööle.
Miks see on oluline: suurem intsidentide risk, aeglasemad versioonid, kasvavad kogukulud, et säilitada töökavasid.
Java 8 ja vanemad
Kõrge risk ja suured kulud. Teid ootab ees raamatukogude ja pluginate asendamine, rangemad krüpto/TLS-põhimõtted ja baaskujunduse muutmine. Mõned müüjad jätkavad turvaparanduste tagasiporteerimist, kuid ökosüsteemi hoogu on mujal.
Miks see on oluline: talentide ja partnerite hõõrdumine suureneb, auditid muutuvad karmimaks ja uuenduste ulatus paisub seda suuremaks, mida kauem te ootate.
Kui meeskonnad ütlevad, et "me ei saa AI-d ühendada", on see sageli JVM + SDK ebakõla (ja mõnikord TLS/HTTP2/gRPC hõõrdumine), mitte toote piirang. Siin on praktiline, versioonipõhine ülevaade OpenAI/Azure OpenAI, AWS Bedrock/SageMaker ja Google Vertex AI kohta.
Lõpptulemus: enamik AI Java SDK-d töötavad Java 8+ peal, kuid teil on vähem turvalisuse/HTTP2/gRPC peavalu ja paremad näidised/tööriistad Java 17/21/25 peal - mida teie raamistikud niikuinii üha enam ootavad.
Java 25 (LTS) - roheline.
Uusimate tehisintellekti funktsioonide jaoks parim vaikimisi. Kõige puhtam tee kaasaegsete TLS-i, HTTP/2, gRPC ja konteineri kujutiste jaoks; SDK-d ja näited lähenevad siia kõigepealt.
Java 21 (LTS) - roheline.
Täielikult ühildub kõigi peamiste AI SDK-dega. Raamistikud, APM agendid ja build plugins toetavad aktiivselt 21; saate kasu virtuaalsetest niitidest, kui see on kasulik chat/streaming backends jaoks.
Java 17 (LTS) - roheline → kollane aja jooksul.
SDKd töötavad, kuid rohkem raamatukogusid ja näiteid eeldab 21/25. Samuti nõuavad populaarsed serveriraamistikud, mis majutavad AI väravaid (Spring Boot 3.x jne) juba Java 17+ - seega täna on kõik korras, kuid rada lüheneb kiiremini.
Java 11 (LTS) - Amber.
AI SDK-de integreerimine on endiselt võimalik, kuid te näete kasvavat hõõrdumist: uuemad pistikprogrammid, konteinerid ja turvalisuse vaikimisi eeldavad 17+. Oodata rohkem pining/backports ja vähem abi praegustest näidetest. Vaadake 17/21 kui hüppelaua.
Java 8 ja vanemad - Red.
Kuigi mitmed SDK-d toetavad tehniliselt 8, maksate te operatiivset maksu: vanemad TLS-salvandid, piiratud HTTP/2/gRPC, raskemad konteinerite põhijooned ja müüjate vähenev tähelepanu. Google'i juhis on eelistada viimast LTS-i; AWS v1 (mida kasutatakse sageli JDK 8 puhul) jõuab toetuse lõppemiseni 2025-12-31. Kui olete 8-ga, planeerige kõigepealt platvormi üleminek (17/21/25), enne kui lisate tehisintellekti mastaabis. Google Cloud Documentation+1
Kui teil on Java 21/25, olete kaasaegse tehisintellekti jaoks roheline (OpenAI/Azure, Bedrock/SageMaker, Vertex). Kui teil on Java 11,võite jätkata ettevaatlikult, kuid arvestada kasvava hõõrdumisega. Kui teil on Java 8 või vanem, uuendage kõigepealt - töökaart ületab rahulikku üleminekut praegusele LTS-ile.
Kas me võime jätta versioonid vahele
Sageli jah, kui teie raamistikud ja SDKd toetavad JVM-i sihtmoodulit. Küsi lühikest ühilduvuse kontrolli ja pilooti.
Kas me vajame virtuaalseid niite
Mitte alati. Need aitavad I-O-raskeid teenuseid, mis võitlevad niidipiirangutega. Paluge oma meeskonnal mõõta enne ja pärast.
Kuidas me väldime seisakuid
Avaldamise etapp, jälgime tähelepanelikult teenuse tervist ja kasutame andmete turvalist migratsiooniplaani, mis võimaldab vana ja uue koodi koos töötada.
Paluge ühe lehekülje pikkust ülevaadet, milles on esitatud teie Java versioon, peamised raamistikud, müüja toetuse kuupäevad ja teadaolevad blokeeringud. Kinnitage lühike liivakastiharjutus, seejärel planeerige etapiviisiline kasutuselevõtt. Hoidke harjumust kvartaalselt, et uuendused ei muutuks kunagi kriisiks.
Me planeerime ja teostame Java uuendused rahulikult mõõdetavate sammudega. Kui soovite teist silmapaari või meeskonda plaani elluviimiseks, võtke ühendust.