Отличия Amazon Corretto и OpenJDK
Каковы различия между Amazon Corretto и OpenJDK (и Oracle OpenJDK - но уже есть билет по этому поводу)? Corretto является реализацией OpenJDK версии 8. Оба бесплатны и, похоже, работают на большинстве систем (Linux, Mac OS и Windows). Пока что Corretto только в превью, но это скоро изменится. Документация Корретто мало говорит о различиях. Есть ли различия, например, в производительности, сборке мусора? Почему я предпочитаю одно над другим? Вы бы использовали Corretto вне AWS?
6 ответов
"Исправления и улучшения в Corretto позволяют Amazon решать масштабные, реальные проблемы обслуживания, удовлетворяя высокие требования к производительности и масштабируемости. Мы делаем их доступными для клиентов с бесплатной долгосрочной поддержкой, с ежеквартальными обновлениями, в том числе с ошибками". исправления и исправления безопасности. AWS также будет предоставлять срочные исправления клиентам вне ежеквартального графика "
Таким образом, в Corretto есть настройки, специфичные для производительности (например, для серверных или облачных приложений), а также дополнительные исправления ошибок, которыми могут воспользоваться пользователи, которых еще не обязательно в самом OpenJDK. Также с этим Amazon предлагает надлежащую поддержку LTS своей сборки, как другие коммерческие компании начинают делать для JDK (на ум приходят Oracle и Azul, а также другие).
Помимо каких-либо преимуществ в производительности, важной причиной использования Corretto является длительная поддержка его выпусков, включая уязвимости системы безопасности .
Одно из важных различий между OpenJDK и несколькими другими поставщиками (например, Amazon Corretto) - это цикл выпуска и поддержки.
OpenJDK находится на 6-месячном цикле выпуска и поддерживает только каждый выпуск в это время. После следующего выпуска предыдущий выпуск перестанет получать исправления. Это означает, что вы должны обновляться каждые 6 месяцев, чтобы оставаться в актуальном состоянии.
Corretto, с другой стороны, предлагает LTS (долгосрочную поддержку) своих сборок JDK.
Amazon Corretto - это бесплатный мультиплатформенный готовый к производству дистрибутив Open Java Development Kit (OpenJDK) с долгосрочной поддержкой (LTS). LTS включает в себя обязательство Amazon предоставлять улучшения производительности и обновления безопасности бесплатно, по крайней мере, до указанной даты для соответствующей версии выпуска (например, май 2026 года для Corretto 8). Обновления планируется выпускать ежеквартально.Amazon также планирует применять срочные исправления (в том числе меры безопасности) вне обычного квартального цикла, когда они будут доступны и готовы к использованию.
Подводя итог, у вас есть 3 варианта:
- Используйте OpenJDK бесплатно, но обновляйте каждые 6 месяцев, чтобы получать обновления
- Используйте платный JDK от Oracle или другого поставщика
- Используйте Corretto бесплатно и получайте бесплатные обновления в течение нескольких лет
Как видите, Corretto - отличный выбор, если вы хотите оставаться в безопасности и быть в курсе последних событий, не хотите платить деньги и не хотите постоянно обновляться до новой версии.
Вот текущие даты окончания срока службы Corretto:
- версия 8 LTS июнь 2026 г.
- версия 11 LTS сентябрь 2027 г.
Также доступны версии без LTS, но они поддерживаются в течение более короткого периода времени.
Существует множество поставщиков JDK, поэтому могут быть другие альтернативы бесплатному и обновленному JDK, но обязательно внимательно прочитайте веб-сайт поставщиков, чтобы понять их политику поддержки и исправлений. Лично я считаю, что Corretto - отличный выбор, и вы можете быть уверены, что кое-что будет исправлено своевременно.
Могу сказать, что мы обнаружили несколько тонких отличий. Мы не определили основную причину различий, но мы знаем, что отчеты Jasper, созданные с помощью Corretto, имеют незначительные различия в некоторых числах смещения, например, leadOffset="-2.9667969" в corretto по сравнению с "-2.737793" в Oracle JVM. Визуальной разницы нет, но это привело к провалу в тестах Golden Master. Кроме того, не включены некоторые очень старые устаревшие инструменты, такие как рендеринг текста в формат TIFF. Помимо этого, мы без проблем преобразовали многие проекты на Corretto.
Очень подробную презентацию об Amazon Corretto от Джеймса Гослинга можно найти здесь.
Примененные исправления перечислены на следующих страницах:
- https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/patches.html
- https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/change-log.html
Я не копирую, так как список будет расти со временем, но в центре внимания, похоже, исправления ошибок и исправлений производительности, патчей и бэкпортов.
При сравнении дистрибутивов OpenJDK следует помнить, что долгосрочная поддержка от Amazon Corretto относится строго к обновленным сборкам Corretto. Эти сборки не поддерживаются экспертными инженерными службами Java, как в случае с Oracle и Azul. Плана поддержки OpenJDK от Amazon не существует.
Из aws.amazon.com/corretto/faqs: «LTS для Corretto не имеет отношения к планам поддержки AWS, которые предоставляют экспертное руководство и помощь для достижения ваших целей в AWS. Если у вас уже есть план поддержки AWS, Corretto покрывается тем же основе, как и все другие поддерживаемые сервисы и программное обеспечение AWS.Для тех, у кого нет плана, может иметь или не иметь смысла приобретать план, если ваша единственная цель – получить помощь с Corretto.Пожалуйста, посетите веб-сайт, чтобы определить, если это правильно для вас».