Microsoft Build の OpenJDK をプレビュー版として提供開始

https://devblogs.microsoft.com/java/announcing-preview-of-microsoft-build-of-openjdk/

この記事は [https://devblogs.microsoft.com/java/announcing-preview-of-microsoft-build-of-openjdk/](https://devblogs.microsoft.com/java/announcing-preview-of-microsoft-build-of-openjdk/) の記事を翻訳した内容です。

本日、Microsoft Build の OpenJDK のプレビュー版を発表できることを心より嬉しく思います。

今回提供する Microsoft Build の OpenJDK はオープンソースで、どなたでも、そしてどこでも無料で利用可能な ロングタームサポート（LTS）付きの新しいディストリビューションです。OpenJDK 11.0.10+9 をベースに、MacOS、Linux、Windows の x64 サーバーおよびデスクトップ版を用意しています。
また最新の OpenJDK 16+36 をベースにした、Windows AArch64/ARM64 版 Java16 のアーリー・アクセスバイナリも公開しています。

入手先
https://www.microsoft.com/openjdk

Javaは、現在使用されているプログラミング言語の中で最も重要な言語の1つです。開発者は Java を利用して企業における重要なアプリケーションの構築から趣味のロボット用のプログラミングまで様々な環境で利用されています。

マイクロソフトは、我々が提供するクラウドサービスや開発ツール等で Java の利用者が増えていることを確認しています。そして我々は Java を利用するお客様と開発者の皆様のために、Java サポートの拡大を継続的に取り組んでいます。

Microsoft Build の OpenJDK バイナリは、[OpenJDK のソースコード](https://github.com/openjdk)をベースに、[Eclipse Adoptium プロジェクトで使用されているビルド・スクリプト](https://github.com/AdoptOpenJDK/openjdk-build)と同じビルド・スクリプトを使用し、[Eclipse Adoptium Quality Assurance Suite](https://github.com/AdoptOpenJDK/openjdk-tests)（OpenJDK プロジェクトテストを含む）を利用してテストを行なっています。

我々が提供する Java のバイナリは、Java の仕様と互換性を検証するために使用する Java11 用の Technology Compatibility Kit (TCK) に合格しています。

そこで、Microsoft Build の OpenJDK は、Java エコシステムで利用可能な他の OpenJDK ディストリビューションを簡単に置き換える事が可能です。

どうぞお試しください！！もし、Azure をご利用ならば、ブラウザから [Azure の Cloud Shell](https://portal.azure.com/#cloudshell/)にアクセスするか、Windows Terminal からアクセスしてください。

![https://devblogs.microsoft.com/java/wp-content/uploads/sites/51/2021/04/ms-openjdk-azure-cloud-shell.gif](https://devblogs.microsoft.com/java/wp-content/uploads/sites/51/2021/04/ms-openjdk-azure-cloud-shell.gif)

Microsoft における OpenJDK への取り組みは、当初は OpenJDK の開発プロセスの把握と参加方法について学ぶところから始めました。そして直近の過去 18 か月間、MacOS 用のパッケージ化、ビルドとインフラストラクチャの提供、GC のバグ修正、Windows 用の拡張機能の提供など、約 50 を超えるパッチを提供してきました。

中でも大きな貢献の1つに、[JEP 388: Windows/AArch64](https://openjdk.java.net/jeps/388) Port があります。
この作業は、Apple Silicon 用 MacOS 上で OpenJDK を利用するためのポートにとても重要で、2020年に[新しいプラットフォーム用の OpenJDK16 のアーリー・アクセス・ビルド](https://github.com/microsoft/openjdk-aarch64/releases)を公開しました。
x64 プラットフォーム用の OpenJDK11 をベースに、主要な3つのオペレーティングシステムをカバーし、この作業を継続して行い、その成果を Java コミュニティの皆様そして Microsoft Azure のお客様と共有できることを嬉しく思います。
Microsoft Build の OpenJDK 11 バイナリは、バックポートされたバグ修正対応や、マイクロソフトのお客様や社内利用者からのフィードバックに基づく拡張機能が含まれている可能性があります。こうした一部は、まだ正式にアップストリームにバックポートされていない場合もありますが、リリースノートに明確に示しています。これにより、これらの変更を並行してアップストリームに進めながら、改善と修正をより迅速に行うことができます。
OpenJDK のアップデートは無料で、すべてのJava開発者がどこにでもデプロイできるようになります。

過去数年間、我々は Azul Systems 社や他のベンダーと協力して、お客様、ユーザー、および私たち自身の業務に高品質な Java のサポートを提供してきました。マイクロソフトは、提供されたすばらしい支援に感謝しており、OpenJDK プロジェクトと [Eclipse Adoptium ワーキンググループ](https://newsroom.eclipse.org/news/announcements/eclipse-foundation-launches-adoptium-working-group-multi-vendor-delivery-java)を通じて引き続き協力することを約束します。

## Microsoft における Java：
Microsoft ではさまざまな社内システム、アプリケーション、およびワークロードを Java テクノロジに依存して利用しており、有名なパブリックなサービスや製品、および Azure インフラを強化する為のミッション・クリティカルなシステムで利用されています。
我々は、Java ベースのシステムの最適化と、お客様とユーザーに利益をもたらすサプライチェーンの保護に取り組んできました。

マイクロソフト社内では、500,000 を超える Java 仮想マシン(JVM) のサービスをデプロイし（すべての Azure サービスと顧客のワークロードを除く）、バックエンドのマイクロサービスからビッグデータシステム、メッセージブローカー、イベントストリーミングサービス、ゲーム・サーバーに至るまで様々なニーズに対応しています。そして、これらの JVM の内 140,000 以上のサービスは、すでに Microsoft Build の OpenJDK を利用しています。
例えば、Azure 上でグローバル・インフラをサポートするための重要なタスクやビッグ・データ、さらにはログ分析システムなどで、オープンソースの Java プロジェクトを利用しています。実際、LinkedIn や Yammer のバックエンドサービスでは、ほぼ完全な Java の分散クラウドネイティブ・マイクロサービスとして実装されています。

[Minecraft Java Edition](https://www.minecraft.net/en-us/store/minecraft-java-edition)は、Mod の重要なエコシステムでありいたるところに存在しています。そして熱狂的な Modder のコミュニティもいたるところに存在しています。そして [Minecraft Realms](https://www.minecraft.net/en-us/realms-plus) のバックエンド・サーバでも Java を利用しています。Azureでは、[Azure Spring Cloud](https://azure.microsoft.com/ja-jp/services/spring-cloud/)、Azure [App Service](https://docs.microsoft.com/ja-jp/azure/app-service/)、Azure [Functions](https://docs.microsoft.com/ja-jp/azure/azure-functions/)、および [Azure Kubernetes Service](https://docs.microsoft.com/ja-jp/azure/aks/) などの環境で Java の利用が大幅に増加しています。将来的にはこうした環境用に最適化した Java の実行環境を提供し、Microsoft Build の OpenJDK の利用を推奨したいと考えています。

今年後半には、Microsoft Build の OpenJDK は Azure マネージドサービス全体でデフォルトの Java11 ディストリビューションになります。
アプリケーションのデプロイにおいて、移行をスムーズかつ透過的に行うため、お客様はメンテナンスに関して意識する必要はありません。他のすべての Azure サービスにおいて、お客様は、Microsoft Build of OpenJDKを含め、お客様が選択した JDK を利用できます。今後数か月以内に、さらに詳しい情報を提供する予定です。



## FAQ (よくあるご質問)

### 1. Java 11は2018年にリリースされました。なぜこれらのバイナリはプレビューなのですか？
このディストリビューションは、OpenJDK11.0.10 の正式リリース版をコード・ベースにしていますが、今回提供する Microsoft Build の OpenJDK はプレビュー版です。これは、お客様とユーザーに対して、正式リリース前にパッケージングやインストールエクスペリエンスなどに関するフィードバックを頂く機会を得るためです。

### 2. Java 11をどのくらいの期間サポートしますか？
Microsoftは、少なくとも2024年までJava11をサポートします。

### 3. 他のバージョンのJavaをリリースしますか？
Java 17が完成次第、今年末までにOpenJDK17バイナリをリリースする予定です。

### 4. Java 8をサポートしますか？
ターゲットの実行環境の選択肢として Java8 を提供する Azure のマネージドサービスでは、Microsoft は [Eclipse Adoptium](https://adoptium.net/?variant=openjdk8&jvmVariant=hotspot) （以前の[AdoptOpenJDK](https://adoptopenjdk.net/)）のJava8バイナリをサポートします。
他の全 Azure サービスにおいて Java8 用の選択肢として、お客様は、Azul Systems の Zulu などの JDK を利用できます。しかし、Microsoft としては、クラウドへのデプロイやコスト削減、開発生産性の向上や、最新 Java によるいくつかの機能強化の恩恵を受けるために、[Java11 以降のバージョンに移行することをお勧めします](https://docs.microsoft.com/ja-jp/azure/developer/java/fundamentals/reasons-to-move-to-java-11)。バージョン・アップを行なって頂くことは、努力する価値があると信じており、この[移行を進めて頂くための役立つガイダンス]((https://docs.microsoft.com/ja-jp/azure/developer/java/fundamentals/transition-from-java-8-to-java-11))も提供しています。

### 5. これらのバイナリはどのようにライセンスされていますか？
General Public License v2.0 (GPLv2+ Classpath Exceptionを含む)で提供します

### 6. Microsoft Build の OpenJDK を含むコンテナ・イメージを提供しますか？

間もなくDockerHubを介して公開します。


## フィードバックをお寄せください

Microsoft Build の OpenJDK を改善するために、コメント、アイデア、ご意見をお寄せください。 
[GitHub ページ](https://github.com/microsoft/openjdk/discussions)にアクセスし、フィードバックを送信できます。


ダウンロードは [こちら](https://www.microsoft.com/openjdk)から