JavaRush /Blog Java /Random-PL /Do czego doprowadzi częste wydawanie nowych wersji JDK?

Do czego doprowadzi częste wydawanie nowych wersji JDK?

Opublikowano w grupie Random-PL
To era zmian dla Java. Wersje JDK będą teraz wydawane zgodnie z harmonogramem, a nie w miarę udostępniania nowych funkcji. To podejście ma swoje zalety i wady, ale jak takie zmiany wpłyną na JDK 8? Simon Ritter, znany ewangelista Java, mistrz Java i zastępca CTO w Azul Systems, wyjaśnia, dlaczego „nowa Java zgodnie z harmonogramem” to kompromis między stabilnością, bezpieczeństwem i kosztami.
Do czego doprowadzi częste wydawanie nowych wersji JDK - 1
W 2018 roku świat Java czeka istotne zmiany. Jak ogłoszono w zeszłym roku, zamierzamy udostępniać wersje JDK zgodnie z harmonogramem, zamiast udostępniać wersje w miarę udostępniania nowych funkcjonalności. To świetna wiadomość, ponieważ teraz nowe funkcje będą dołączane do gotowych wydań, a programiści będą mieli do nich dostęp znacznie szybciej. Premiera JDK 10 planowana jest na marzec, a my weszliśmy już w drugą fazę poprawiania błędów, więc wszystko przebiega zgodnie z planem. Żądanie specyfikacji Java (JSR) jest już w fazie aktywnego rozwoju i jest dostępne do publicznego komentowania. Istnieją nawet propozycje ulepszeń JDK (JEP), których celem jest już JDK 11 . Wygląda na to, że Java radzi sobie świetnie.

Czasy się zmieniają

Istnieje jednak wiele innych zmian związanych z harmonogramem wydań, które ujawnią się w tym roku i mogą nie być tak przyjemne. Przez 22 i pół roku udało nam się przyzwyczaić, że Java jako platforma ma trzy podstawowe właściwości związane bezpośrednio ze sposobem jej obsługi.
  1. Stabilność . Wcześniej funkcje dodane w nowej wersji JDK, choć dokładnie przetestowane, wymagały testowania w środowisku produkcyjnym. Pomogło to zidentyfikować niedociągnięcia wymagające naprawy. Aby mieć pewność, że użytkownicy będą mogli kontynuować pracę ze stabilnymi kompilacjami podczas testowania nowej, aktualizacje zawsze częściowo pokrywały się w czasie.

    Jeśli spojrzymy na kilka ostatnich wydań, zaczynając od JDK 6, zobaczymy, że aktualizacje dla JDK 5 były wydawane przez prawie kolejne 3 lata (dokładnie 2 lata i 11 miesięcy). Wraz z wprowadzeniem JDK 7 wydano publiczne aktualizacje JDK 6 na rok i 9 miesięcy. Aktualizacje dla JDK 7 zostały wydane w ciągu 13 miesięcy od wydania JDK 8.


  2. Bezpieczeństwo . Zespoły zajmujące się rozwojem i wsparciem OpenJDK, Oracle, a przed nimi Sun Microsystems (firma, która stworzyła Javę, przyp. red.) zawsze stawiały bezpieczeństwo platformy na pierwszym planie. Jak pamiętacie, Java była pierwotnie przeznaczona dla urządzeń mobilnych (w szczególności PDA Star7).



    Jednym z kluczowych celów rozwoju było zapewnienie możliwości przesyłania kodu przez sieć i jego bezpiecznego wykonywania. Regularnie publikowane są aktualizacje pakietu JDK, które obejmują poprawki wykrytych problemów związanych z bezpieczeństwem. Jeśli zainstalujesz te aktualizacje natychmiast po ich wydaniu, będziesz całkowicie bezpieczny.


  3. Koszt zerowy . Jedną z największych zalet Java jest to, że zawsze była to darmowa platforma, nawet zanim została wypuszczona jako oprogramowanie open source w 2006 roku. Istniały pewne ograniczenia dotyczące tego, gdzie można używać języka Java bez tantiem, ale zawsze dotyczyło to aplikacji mobilnych i wbudowanych; w przypadku klientów stacjonarnych i serwerów dla przedsiębiorstw bieżąca wersja Java była zawsze bezpłatna. Jedną z już zachodzących zmian w JDK jest wydanie plików wykonywalnych OpenJDK na licencji GPLv2 z wyjątkiem „Classpath”. Niniejsza licencja nie nakłada żadnych ograniczeń na sposób wdrażania środowiska Java Runtime Environment.

Jednakże zmiany w sposobie opracowywania i wydawania JDK wymagają dokładnego rozważenia planów migracji aplikacji do nowych wersji Java. W związku z nowym harmonogramem wydań wysiłki mające na celu zapewnienie dostępności aktualizacji dla wielu poprzednich wydań mogą być niewykonalne. Wychodząc naprzeciw potrzebom dwóch odmiennych grup użytkowników (tych, którzy szybko wymagają nowych funkcji i tych, którzy cenią długoterminową stabilność), Oracle zdecydowało się przejść na model długoterminowego wsparcia (LTS). Określone wersje JDK będą uznawane za wydania LTS, co oznacza, że ​​będą otrzymywać aktualizacje przez trzy lata. Wszystkie pozostałe wydania pośrednie nazywane są wydaniami funkcjonalnymi i otrzymują aktualizacje tylko przez 6 miesięcy. Aby zachować synchronizację z nowym systemem, JDK 8 został sklasyfikowany jako wydanie LTS. Następną wersją będzie JDK 11, zaplanowaną na wrzesień 2018. Największą zmianą, jaką wprowadza ten nowy model, jest to, że aktualizacje pomiędzy wydaniami nie będą się już nakładać na siebie w czasie . Specjalnie napisałem to pogrubioną kursywą, ponieważ było to absolutnie jasne. Oto grafika pokazująca dostępność aktualizacji dla wydań JDK do JDK 19.
Do czego doprowadzi częste wydawanie nowych wersji JDK - 2?
Na rysunku: Cykl życia Java SE – harmonogram ponad 5 lat Publiczne aktualizacje bez nakładania się („wsparcie Cliff”) Oracle Commercial Support Oracle Extended Commercial Support
Cykl życia Java SE — harmonogram na ponad 5 lat Aktualizacje publiczne Zero nakładania się czasu Publiczne pliki wykonywalne firmy Oracle (brak wsparcia) Wsparcie komercyjne Oracle Rozszerzone wsparcie komercyjne Oracle
Bezpośrednią konsekwencją tych zmian jest to, że platforma Java jest nadal stabilna, bezpieczna i bezpłatna, ale teraz musisz wybrać dwie z tych trzech funkcji. W przyszłych wdrożeniach Java wszystkie trzy właściwości nie będą dostępne jednocześnie.

Pozwól mi wyjaśnić trochę więcej

Załóżmy, że martwisz się o bezpieczeństwo (tak jak powinieneś), ale nie chcesz wydawać pieniędzy. W takim przypadku należy przeprowadzić migrację do nowych wersji JDK zaraz po ich wydaniu. W przypadkach, gdy wsparcie nie pokrywa się w czasie (wersje funkcji i LTS), będziesz musiał to zrobić, aby otrzymać nowe poprawki bezpieczeństwa. Niestety bez nakładania się czasu trzeba będzie od razu przejść na wydania JDK, które nie zostały jeszcze przetestowane w produkcji, przez co utraci się dotychczasową stabilność. Inną opcją jest wybranie stabilności przy zerowych kosztach. Ponownie jest to możliwe: wystarczy, że będziesz nadal korzystać z poprzedniej wersji LTS po wydaniu nowej. Otrzymujesz stabilność, którą znasz, nie musisz nic płacić, ale nie otrzymasz żadnych poprawek bezpieczeństwa, ponieważ nie są one już dostępne w tej wersji. Wreszcie, jeśli chcesz stabilności i bezpieczeństwa, musisz zapłacić. Możesz nadal korzystać z poprzedniej wersji LTS, ale dostęp do zabezpieczeń i poprawek błędów będzie możliwy wyłącznie w ramach komercyjnej umowy wsparcia.

I mały blok reklamowy od autora :)

Azul (moja firma) stworzyła zestaw plików wykonywalnych OpenJDK pod marką Zulu Enterprise, zbudowany ze źródeł, przetestowany za pomocą testów porównawczych TCK/JCK, a nawet przeanalizowany za pomocą narzędzi, które opracowaliśmy, aby upewnić się, że nie ma uszkodzeń kodu open source z powodu złych plików nagłówkowych . Zapewniamy możliwość pobrania aktualnej wersji za darmo, a także wsparcie komercyjne dla zainteresowanych. Niedawno zaczęliśmy oferować nowy zestaw opcji wsparcia dla Zulu, którego celem jest zapewnienie klientom maksymalnej elastyczności. Chcemy zapewnić użytkownikom możliwość migracji do nowej wersji JDK, która będzie odpowiadać ich potrzebom biznesowym i klientom. W tym celu oferujemy trzy opcje wsparcia:
  1. Wsparcie krótkoterminowe (STS). STS zapewnia użytkownikom najszybszy dostęp do nowych funkcji Java, z wystarczającą obsługą, aby płynnie przejść do nowszych wydań JDK. Zulu Enterprise zapewnia wydaniom STS dostęp do poprawek błędów, aktualizacji zabezpieczeń i innych poprawek w razie potrzeby („wsparcie produkcyjne”) przez 12 miesięcy plus 6 miesięcy dodatkowego wsparcia skupiającego się na wsparciu doradczym i pomocy użytkownikom w migracji do nowszej wersji JDK („rozszerzone wsparcie”). Odpowiada to 18-miesięcznemu cyklowi życia.

  2. Wsparcie średnioterminowe (MTS). Wersje MTS umożliwiają korzystanie z nowych funkcji dostępnych w wersjach produkcyjnych bez konieczności czekania na nowe wydanie LTS. Azul planuje jedno wydanie MTS rocznie pomiędzy wydaniami LTS i zapewnia wsparcie produkcyjne przez 18 miesięcy od daty następnej ogólnej dostępności LTS. Zapewnia to nakładanie się czasu i „płynne” przejście podczas wdrożenia produkcyjnego. Po zakończeniu wsparcia produkcyjnego zapewniane jest dodatkowe 12 miesięcy przedłużonego wsparcia.

  3. Wsparcie długoterminowe (LTS). Jest dostępny dla wydań uznawanych przez społeczność OpenJDK za LTS i zapewnia 8 lat wsparcia produkcyjnego z dodatkowymi dwoma latami rozszerzonego wsparcia.
Oto kolejny rysunek, aby było to jaśniejsze.
Do czego doprowadzi częste wydawanie nowych wersji JDK - 3?
Na rysunku: Cykl życia Java SE – harmonogram ponad 5 lat Oracle Publicznie dostępne pliki binarne (nieobsługiwane) Wsparcie komercyjne Oracle Rozszerzone wsparcie komercyjne Oracle Azul Zulu Production Wsparcie komercyjne Azul Zulu Rozszerzone (pasywne) wsparcie komercyjne
Cykl życia Java SE — harmonogram na ponad 5 lat Publiczne pliki wykonywalne od Oracle (bez wsparcia) Wsparcie komercyjne Oracle Rozszerzone wsparcie komercyjne Oracle Wsparcie komercyjne dla produkcji komercyjnej od Azul Zulu Rozszerzone (pasywne) wsparcie komercyjne od Azul Zulu
Jeśli obecnie używasz JDK 8 bez komercyjnej umowy wsparcia i zapewniasz stabilność i bezpieczeństwo swojego systemu dzięki publicznym aktualizacjom, możesz pomyśleć o tym, co będziesz robić od września. Azul stara się Ci w tym pomóc, więc nie wahaj się z nami skontaktować, jeśli potrzebujesz wsparcia.

wnioski

W tym roku zmienia się kilka aspektów platformy Java, większość z nich na lepsze. Szybszy dostęp do nowych funkcji, otwarte wydanie narzędzi takich jak Flight Recorder i Mission Control, wydanie plików wykonywalnych OpenJDK na licencji GPLv2 z wyjątkiem „Classpath”. Smutna prawda jest jednak taka, że ​​zwykłe, hojne, bezpłatne wsparcie dla platformy Java odchodzi już do przeszłości. Java jest nadal stabilna, bezpieczna i bezpłatna. Które dwie z tych trzech cech są najważniejsze dla Ciebie i Twoich użytkowników?
Do czego doprowadzi częste wydawanie nowych wersji JDK - 4?

o autorze

Simon Ritter jest zastępcą dyrektora technicznego w Azul Systems. Simon działa w branży IT od 1984 roku i posiada tytuł licencjata z fizyki uzyskany na Uniwersytecie Brunel w Wielkiej Brytanii.

Simon dołączył do Sun Microsystems w 1996 roku i zajmował się zarówno rozwojem oprogramowania Java, jak i konsultingiem. Od 1999 roku demonstruje programistom technologie Java, koncentrując się zarówno na podstawowej platformie Java, jak i aplikacjach klienckich i wbudowanych. Obecnie w Azul Systems nadal pomaga ludziom lepiej zrozumieć język Java i produkty JVM firmy Azul. Możesz śledzić go na Twitterze: @speakjava .

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION