Пару недель назад анонимный аккаунт в Твиттере рассказал историю почти забытая первоапрельская шутка Microsoft, заполнение в 1996 году пустых ящиков инструмента разработки Java «Microsoft Coffee» в Сиэтле. Конечно, в то время шутники не знали, что Microsoft уже работает над собственной реализацией Java, Visual J ++.

Это было началом первой части истории Microsoft о Java, которая в конечном итоге стала предметом судебного разбирательства между Microsoft и Sun Microsystems по поводу поддержки нестандартных API Windows, прежде чем она была удалена из набора инструментов Visual Studio. На этом история могла бы и закончиться, если бы Azure и Microsoft не взяли на себя обязательство «идти туда, где есть разработчики».

Вторая часть истории – это возвращение Java на платформу Microsoft с Инструменты Java для кода Visual Studio и поддержка Java в Azure. И теперь Microsoft предлагает собственный дистрибутив Java с открытым исходным кодом под названием Сборка Microsoft OpenJDK, более чем через десять лет после кончины Visual J ++.

Microsoft, Java и облако Azure

Так почему именно сейчас Java? Все дело в сведении к минимуму затрат на приложения, размещенные в Azure. Запутанная история Java привела к тому, что она принадлежит Oracle, которая на коммерческой основе лицензирует средства разработки и среды выполнения Java. Если вы не хотите платить за коммерческую лицензию, есть альтернатива в виде OpenJDK под лицензией GPL 2. В соответствии с общедоступной спецификацией Java SE (Standard Edition) OpenJDK предоставляет исходный код и двоичные файлы для сред выполнения Java и инструментария разработчика при участии многих различных компаний и отдельных лиц, включая Microsoft.

Поддержка Java в облаке Azure вернула Microsoft на Java, поэтому Microsoft недавно объявила собственная сборка OpenJDK 11, ориентированная на разработчиков, работающих с Java в Azure. Использование Java с открытым исходным кодом позволяет избежать сложных проблем лицензирования с некоторыми реализациями Java. Поскольку Microsoft предлагает поддержку Java для службы приложений Azure, функций Azure и Azure Spring Cloud (среди прочего) использование OpenJDK сведет их затраты к минимуму, поскольку Microsoft не нужно будет перекладывать расходы на лицензирование на пользователей в рамках подписок Azure.

Теперь доступно для скачивания, Предварительная сборка OpenJDK 11 от Microsoft предназначена для Linux x64, MacOS x64 и Windows x64 с отладочными символами для всех выпусков вместе с исходным кодом для ваших собственных сборок. Если вы хотите работать с Arm64, есть сборка раннего доступа OpenJDK 16 для Windows на Arm, так что вы можете начать с ней экспериментировать. Все они будут работать с инструментами разработки Java Visual Studio Code или с любой другой готовой к OpenJDK средой разработки Java, упрощая настройку и запуск тестовой среды на вашем ПК.

Сборка OpenJDK 11 уже доступна в Azure Cloud Shell, поэтому вы можете использовать ее с jshell, чтобы опробовать фрагменты кода. Возможность запускать код Java из командной строки в терминале Windows или на портале Azure поможет вам убедиться, что ваш код будет работать на новой JVM, что даст вам больше уверенности в предстоящем переходе.

Первоначальная поддержка OpenJDK 11 имеет смысл, даже если она основана на выпуске 2018 года. Microsoft была с использованием реализации OpenJDK 11 в Azul Zulu Enterprise в Azure в течение некоторого времени, так как это выпуск с долгосрочной поддержкой. Переход на собственный OpenJDK 11 с эквивалентной версии Zulu будет иметь гораздо меньшее влияние на существующий код, чем переход позже в 2021 году к следующему выпуску с долгосрочной поддержкой, OpenJDK 17. Microsoft описывает свой инструментарий OpenJDK как замену любого другой выпуск OpenJDK в вашей собственной системе или в Azure.

Важно отметить, что Microsoft Build of OpenJDK – это сборка OpenJDK, специфичная для Microsoft. Это означает, что он содержит исправления для Azure и Microsoft, которые могут быть еще не полностью доступны в исходном дистрибутиве. Однако это не форк Microsoft OpenJDK, поскольку все исправления, которые он включает в свой дистрибутив, были отправлены в проект OpenJDK. Сегодня он поставляется с версией, в которой уже есть поддержка Azure и Windows, а также проверены и запущены исправления ошибок, поэтому известные проблемы не повлияют на ваш код. Другие выпуски в конечном итоге будут поставляться с такими же исправлениями, но не так быстро, как Microsoft.

Использование OpenJDK в Azure

К концу 2021 года Microsoft сделает сборку Microsoft OpenJDK JVM по умолчанию для управляемых сервисов Azure, поэтому сейчас самое время скачать предварительную версию и начать проверять, будет ли на ней работать ваш код. Он построен с использованием тех же скриптов, что и Инструменты контроля качества Eclipse Adoptium, и он был протестирован на совместимости с Java Technology Compatibility Kit, поэтому Microsoft OpenJDK должен стать заменой существующей реализации Azul Zulu OpenJDK. Однако всегда полезно быть уверенным, что это не повлияет на ваш код.

Если вы переносите свою собственную Java в образ виртуальной машины Azure, никаких изменений не произойдет, поскольку существующий образ будет продолжать работать под вашим управлением, как всегда. Если вы хотите изменить JVM, вам необходимо перестроить образ, чтобы использовать инструменты Microsoft OpenJDK.

Microsoft не только фокусируется на выпусках долгосрочной поддержки; он работает над сборкой Arm для Java 16, основанной на OpenJDK 16. Поддержка Arm была одним из крупнейших вкладов Microsoft в OpenJDK на сегодняшний день, обеспечивая основу для поддержки Apple Silicon OpenJDK, а также для собственных процессоров Microsoft SQ1 и SQ2 Arm. За кулисами Microsoft работает над кристаллом Arm для Azure, уделяя особое внимание периферийным устройствам и распределению контента. Внутренняя сборка Arm платформы OpenJDK поможет ей предоставить пограничные среды выполнения для сервисов Azure, таких как Spring Cloud, и для сервисов, ориентированных на потребителя, таких как те, на которых работают тысячи серверов Minecraft Microsoft.

Хотя Java SE обеспечивает общую основу для приложений Java, это не полная версия Java Enterprise Edition (теперь известная как Jakarta EE). Microsoft еще не объявила о поддержке Jakarta EE на своих платформах, и большая часть ее документации по Azure Jakarta посвящена работе с такими инструментами, как Red Hat JBoss Enterprise Application Platform. Будет интересно посмотреть, предпримет ли Microsoft какие-либо шаги в этом направлении или продолжит ли она существующее партнерство с Red Hat.

Возврат к собственным сборкам Java имеет большой смысл для Microsoft. Java остается популярной, и для миграции существующих локальных корпоративных приложений в облако требуется облачная Java. Использование OpenJDK помогает свести затраты к минимуму, при этом соблюдая спецификацию Java, обеспечивая продолжение работы существующего кода. Microsoft знает возможности своих виртуальных машин и собственной контейнерной ОС Linux и может создать оптимизированную сборку OpenJDK и доставить ее изменения вверх по течению. Любая другая организация, основанная на OpenJDK, может воспользоваться ими – выигрыш для всех в сообществе Java, желающих использовать Java в облаке и на периферии.

Авторские права © 2021 IDG Communications, Inc.


#Microsoft #возвращается #на #Java #выпуском #OpenJDK #ориентированного #на #Azure

Source link