JavaRush /Java блог /Random UA /До чого призведе найчастіший випуск нових версій JDK

До чого призведе найчастіший випуск нових версій JDK

Стаття з групи Random UA
Для Java настає епоха змін. Тепер версії JDK будуть випускати не з появою нових функціональних можливостей, а за розкладом. Такий підхід має свої плюси і мінуси, але як такі зміни відіб'ються на JDK 8? Саймон Ріттер, відомий Java-євангеліст, Java-чемпіон та заступник технічного директора компанії Azul Systems пояснює, чому «нова Java за розкладом» – це вибір між стабільністю, безпекою та вартістю.
До чого призведе найчастіший випуск нових версій JDK - 1
У 2018 році світ Java чекають на суттєві зміни. Як і анонсували минулого року, ми переходимо до випуску версій JDK за розкладом замість випуску версій у міру появи нових функціональних можливостей. Це чудова новина, адже тепер нові можливості включатимуться до випусків у міру готовності, і розробники отримуватимуть доступ до них набагато швидше. Випуск JDK 10 запланований на березень, і ми вже увійшли до другої фази виправлення помилок, так що все йде відповідно до плану. Запит на специфікацію Java (JSR) вже знаходиться в процесі активної розробки та доступний для відкритого обговорення. Вже є навіть пропозиції щодо покращення JDK (JEP'и), націлені на JDK 11 . Складається враження, що у Java справи чудово.

Часи змінюються

Однак із цим розпорядком виходу версій пов'язано чимало інших змін, які виявлять себе цього року, і можуть виявитися далеко не такими приємними. За 22 з половиною роки ми встигли звикнути, що Java, як платформи, має три основні властивості, пов'язані безпосередньо зі способом її підтримки.
  1. Стабільність . Раніше можливості, що додаються разом з новим випуском JDK, хоч і були ретельно протестовані, вимагали перевірки промислової експлуатації. Це допомагало виявити недоліки, які потребують виправлень. Щоб користувачі могли продовжувати роботу зі стабільними складаннями під час тестування нової, оновлення завжди частково перекривалися за часом.

    Якщо подивитися на кілька останніх випусків, починаючи з JDK 6, ми побачимо, що оновлення для JDK 5 продовжували виходити ще протягом майже 3 років (2 років і 11 місяців, якщо бути точним). З появою JDK 7 загальнодоступні оновлення для JDK 6 виходабо протягом року і 9 місяців. А оновлення JDK 7 виходабо протягом 13 місяців після випуску JDK 8.


  2. Безпека . Команди розробки та підтримки OpenJDK, компанія Oracle, а до них – Sun Microsystems (компанія-творець Java, прим. ред.) завжди ставабо безпеку платформи на чільне місце. Як ви пам'ятаєте, Java спочатку була призначена для мобільних пристроїв (зокрема, КПК Star7).



    Однією з ключових цілей розробки було забезпечення можливості передачі коду через мережу та безпечного його виконання. Для JDK регулярно публікуються оновлення, що включають "латки" для виявлених проблем безпеки. Якщо інсталювати ці оновлення відразу після їх виходу, ви будете в повній безпеці.


  3. Нульова вартість . Одна з найчудовіших рис Java - те, що вона завжди була безкоштовною платформою, ще навіть до випуску її у вигляді програмного забезпечення з відкритим вихідним кодом у 2006 році. Існували певні обмеження на те, де можна використовувати Java без ліцензійних відрахувань, але це стосувалося мобільних і вбудованих додатків, для десктопних клієнтів та серверів підприємств актуальна версія Java завжди була безкоштовною. Одна з змін, що вже проводяться в JDK - випуск виконуваних файлів OpenJDK під ліцензією GPLv2 з винятком "Classpath". Ця ліцензія не накладає жодних обмежень на можливість розгортання середовища виконання Java.

Однак зміни у способі розробки та випуску JDK вимагають ретельного продумування планів міграції додатків на нові версії Java. При цьому новому порядку виходу версій за розкладом, зусилля щодо забезпечення доступності оновлень для багатьох попередніх випусків можуть виявитися неприйнятними. Щоб задовольнити потреби двох несумісних груп користувачів (тих, хто вимагає нові можливості швидше та тих, кому важливіша довгострокова стабільність), корпорація Oracle вирішила перейти на модель довгострокової підтримки (LTS). Конкретні версії JDK будуть розглядатися як LTS-випуски, тобто отримуватимуть поновлення протягом трьох років. Решта, проміжні, випуски називаються Feature-випусками та отримують оновлення протягом лише 6 місяців. Для синхронізації з цією новою системою JDK 8 було класифіковано як LTS-випуск. Наступним випуском буде JDK 11, запланований на вересень 2018 р. Найважливіша зміна цієї нової моделі: оновлення між випусками більше не будуть перекриватися за часом . Я спеціально виділив цієї жирним курсивом, що це було зрозуміло. Ось малюнок демонструє доступність оновлень для випусків JDK аж до JDK 19.
До чого призведе найчастіший випуск нових версій JDK - 2
На рис.: Java SE Lifecycle – 5+ Timetable
Життєвий цикл Java SE – розклад на 5+ років Загальнодоступні оновлення нульове перекриття за часом Загальнодоступні файли, що виконуються від Oracle (без підтримки) Комерційна підтримка Oracle Розширена комерційна підтримка Oracle
Прямий наслідок цих змін: платформа Java, як і раніше, стабільна, безпечна і безкоштовна, але тепер з цих трьох властивостей необхідно вибрати дві. У майбутньому при розгортанні Java всі три властивості одночасно не будуть доступні.

Поясню трохи докладніше

Допустимо, вас турбує безпека (так і має бути), але ви не хочете витрачати гроші. У цьому випадку вам потрібно переходити на нові версії JDK відразу після їх випуску. У випадку, коли підтримка не перекривається за часом (Feature- та LTS-випуски), вам доведеться це робити, щоб отримати нові виправлення безпеки. На жаль, без перекриття за часом доведеться відразу переходити на випуски JDK, які ще не були протестовані в промисловій експлуатації, так що ви втратите колишню стабільність. Інший варіант: можна вибрати стабільність за нульової вартості. Знову ж таки, це можливо: все, що вам потрібно робити, це продовжувати використовувати попередню версію LTS після виходу нової. Ви отримуєте звичну стабільність, нічого не повинні платити, але "латок" безпеки не отримаєте, оскільки для цього випуску вони більше не доступні. Нарешті, якщо вам потрібні стабільність та безпека, доведеться заплатити. Ви можете продовжувати використовувати попередній LTS-випуск, але доступ до виправлень безпеки та помилок буде доступний лише за комерційним контрактом на підтримку.

І невеликий рекламний блок від автора:)

Компанія Azul (моя компанія) створила набір файлів OpenJDK під маркою Zulu Enterprise, скомпонований з вихідного коду, протестований за допомогою тестів TCK/JCK і навіть проаналізований за допомогою розроблених нами утиліт, щоб переконатися у відсутності пошкоджень відкритого вихідного коду внаслідок неправильних заголовних файлів. Ми надаємо можливість безкоштовного завантаження актуальної його версії, а також комерційну підтримку для бажаючих. Ми нещодавно почали пропонувати новий набір варіантів підтримки для Zulu, орієнтований на надання замовникам максимальної гнучкості. Ми хочемо надати користувачам можливість такої міграції на нову версію JDK, яка б підходила для потреб їхнього бізнесу та замовників. Для цього ми надаємо три варіанти підтримки:
  1. Короткострокова підтримка (short-term support, STS). STS надає користувачам найшвидший доступ до нових можливостей Java з достатньою підтримкою для "гладкого" переходу на нові випуски JDK. Zulu Enterprise надає для STS-випусків доступ до виправлень помилок, оновлень безпеки та інших виправлень у міру необхідності ("підтримка промислової експлуатації") на 12 місяців плюс 6 місяців додаткової підтримки, орієнтованої на консультаційну підтримку та допомогу користувачам у міграції на новішу версію JDK ("Розширена підтримка"). Це 18-місячний життєвий цикл.

  2. Середньострокова підтримка (middle-term support, MTS). MTS-випуски дозволяють використовувати в промисловому середовищі нові можливості, доступні у feature-випусках, не чекаючи нового LTS-випуску. Azul планує по одному MTS-випуску на рік між LTS-випусками та забезпечує підтримку промислової експлуатації на 18 місяців після дати випуску наступного загальнодоступного LTS. Це гарантує перекриття за часом та "гладкий" перехід при розгортанні в промисловій експлуатації. Після закінчення підтримки промислової експлуатації надається додаткові 12 місяців розширеної підтримки.

  3. Довгострокова підтримка (Long-term support, LTS). Вона надається для випусків, які спільнота розробників OpenJDK розглядає як LTS, та забезпечує 8-річну підтримку промислової експлуатації з додатковими двома роками розширеної підтримки.
Ось ще один малюнок, щоб було зрозуміліше.
До чого призведе найчастіший випуск нових версій JDK - 3
На рис.: Java SE Lifecycle - 5+ Year timetable Oracle Publicly available binaries (unsupported) Oracle Commercial Support
Життєвий цикл Java SE – розклад на 5+ років Загальнодоступні файли, що виконуються від Oracle (без підтримки) Комерційна підтримка Oracle Розширена комерційна підтримка Oracle Комерційна підтримка промислової експлуатації від Azul Zulu Розширена (пасивна) комерційна підтримка від Azul Zulu
Якщо ви зараз використовуєте JDK 8 без комерційного контракту на підтримку та забезпечуєте стабільність та безпеку своєї системи за рахунок загальнодоступних оновлень, вам має сенс задуматися про те, що ви робитимете, починаючи з вересня. Azul намагатиметься допомогти вам у цьому, так що не соромтеся звернутися до нас, якщо вам потрібна підтримка.

Висновки

Цього року змінюється кілька аспектів платформи Java, більша частина – на краще. Швидший доступ до нових можливостей, випуск під відкритою ліцензією таких утиліт, як Flight Recorder і Mission Control, випуск файлів OpenJDK, що виконуються під ліцензією GPLv2 з винятком "Classpath". Сумна правда, однак, полягає в тому, що звична щедра безкоштовна підтримка платформи Java відходить у минуле. Java, як і раніше, стабільна, безпечна і безкоштовна. Які дві з цих трьох якостей найбільш важливі для вас та ваших користувачів?
До чого призведе найчастіший випуск нових версій JDK - 4

про автора

Саймон Ріттер – заступник технічного директора компанії Azul Systems. Саймон займається IT-бізнесом з 1984 року та має ступінь бакалавра наук з фізики Брюнельського університету у Великій Британії.

Саймон потрапив у Sun Microsystems у 1996 році та проводив час як за розробкою Java, так і консультаціями. З 1999 року він займався демонстрацією Java-технологій розробникам, з упором як на базову платформу Java, так і клієнтські та вбудовані програми. Зараз, у компанії Azul Systems, він продовжує допомагати людям краще розуміти Java та продукти Azul для JVM. Ви можете підписатися на нього у Twitter: @speakjava .

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ