BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AmazonがOpenJDKダウンストリームディストリビューションのCorretto 8 GAをリリース

AmazonがOpenJDKダウンストリームディストリビューションのCorretto 8 GAをリリース

ブックマーク

原文(投稿日:2019/03/04)へのリンク

Amazonは先頃,OpenJDKの"無償,マルチプラットフォーム,実運用対応のディストリビューション"であるCorretto 8をGAリリースした

Correttoは昨年11月のDevoxx Belgiumで,Amazon Web ServicesのプリンシパルオープンソーステクノロジストであるArun Gupta氏と,同じくシニアエンジニアリングマネージャのYishai Galatzer氏が,プレビューリリースとして紹介したものだ。同じDevoxxでは,Javaの父でAmazon Web Servicesの著名なエンジニアであるJames Gosling氏がサプライズで登壇し,Correttoを紹介する特別基調講演を行っている。Devoxx Belgiumでは以下のように,Corretto 8とCorreto 11のGAリリースに関するタイムラインも提示されている。

これによってAmazonは,Oracle, Azul, Red Hat, BellSoftといった,無償あるいは有償サポート付きでOpenJDKダウンストリームディストリビューションを提供するベンダに加わると同時に,無償のビルド済OpenJDKバイナリを開発するオープンビルドファームをローンチしているAdoptOpenJDKチームによるコミュニティ活動とも連携している。

長期サポートが今後,無償でなくなるのではないかという懸念がJavaコミュニティに広がっていることから,Amazonは,Javaが今後も無償であるというコミットメントを推進する目的でCorrettoを開発した。

以前にInfoQがCorrettoのプレビューリリースを伝えた時,jClarityの共同設立者兼CEOでAdoptOpenJDKの創設者のひとりでもある,London Java CommutyリーダのMartijn Verburg氏は,OpenJDKをサポートするベンダのリストにAmazonが加わったことについて,次のように述べている。

AmazonがCorrettoを発表したことは,OpenJDKが実運用環境で使用可能なランタイムであることを,極めて強く認識させるものです!保守的な組織の多くがこれを見て,"IBMやRed Hatらに加えてAmazonもOpenJDKを使っているのならば,もはや疑う必要は何もなくなった!"と言うことでしょう。

昨年11月のデビュー以来,AmazonのCorrettoへの関心は高まっている。例えば,changelogpatchesに記載されているように,Javaコミュニティからの初期のフィードバックに基づいて,GAリリースでは多数の改善やセキュリティパッチが実施された。

4半期に1回および必要時にAmazonがリリースするCorrettoの長期サポート(LTS)には,"セキュリティ修正,パフォーマンス改善(頻繁に使用される関数のスピードアップなど),ガベージコレクションのスケジューリング,メモリ不足状況の発生防止に加えて,監視やレポートやスレッド管理の改善"が含まれている。

Corretto 8およびCoretto 11の次期RCおよびGAリリースについて議論した先日のJava Championsテレカンファレンスでは,CorrettoからJavaコミュニティに提供されるものとして,最新セキュリティパッチ,Correttoを理解するためのツール,SDKMAN!経由のインストール,更新Dockerイメージがあることが確認された。テレカンファレンスのQ&Aセッションでは,OpenJDKの将来的なリリースに対するCorrettoのサポートに関する質問があった。回答は次のとおりだ。

JDK 9あるいはJDK 10をサポートする予定はありません。現時点では,JDK 12,JDK 13,JDK 14がリリースされても,それらをサポートする予定はありません。Correttoの主な存在理由は長期サポートの提供であって,機能追加や改善は副次的なものだからです。

[フィーチャーリリースを]開発してAmazon社内でリリースしたとしても,それを一般公開するまでのギャップはさほど大きくはないかも知れません。どこまでが達成可能かという意味においては,品質基準を高く保ちたいと思っています。ですから現時点では,8と11に注力しているのです。フィードバックに耳を傾けて,フィーチャーリリースに関心のあるユーザが十分にいるようであれば,それも同じようにサポートするつもりです。これまでのところ,ユーザの大半はフューチャーリリースを本稼働で使用したいとは思っていません。ごく一部のユーザが,実際の運用ではなく,将来のテストに備えたテスト継続に関心を持っているだけなのです。ですから答は,"可能であれば",ということになります。

Corretto 8はOpenJDK build 8u202に対応している。現在まだプレビューリリースのCorretto 11は,今年前半にGAとしてリリースされる予定だ。

Gupta氏がInfoQに,今回の最新のCorretto GAリリースについて説明してくれた。

InfoQ: あなたの現在の役職は何ですか、つまり,日々どのようなことをしているのでしょうか?

Arun Gupta: 私は現在,Amazonのプリンシパル・オープンソース・テクノロジストです。オープンソース戦略の定義を手伝うために,Amazonのさまざまなチームと仕事をしています。Javaには20年以上の経験があり,Java Championでもあります。Correttoチームには積極的に関わって,コミュニティへの取り組み方を定義する作業をしています。

InfoQ: AmazonがOpenJDKのディストリビューションを開発することになった,きっかけは何だったのでしょう?

Gupta: Amazonでは,何事もユーザから始まっています。AmazonではJavaを多く使用していますが,2016年になって,バイナリディストリビューションには頼れないことが分かったのです。社内では,数千という数のJavaアプリケーションを運用しているのですが,JDKの四半期毎のセキュリティリリースによって微妙な非互換性が導入された結果,潜在的に大きな影響につながったことが何度もありました。その一方で,セキュリティ対策という面からは,これらのリリースへの運用環境の移行は急務です。しかしバイナリディストリビューションでは,JVMあるいはライブラリを修正することはできません。そこで当社では,Javaをソースから構築することによって,運用上の制約と要件に対処することにしたのです。

最初はいくつかのチームを対象とした実験をして,クリックひとつでCorettoに切り替えられるツールを開発することによって対象を広げていきました。それによって信頼性を確認できたので,大規模なマイグレーションの自動実行を始めました。数ヶ月間で何千というサービスを移行しました。プロセスは完全に自動化されていましたが,未知の問題による爆発半径をコントロールするため,段階的に実施しました。このプロセスはスムーズに進行しました。マイグレーションによって修正が必要になったのは,数千のサービスの中でたったひとつのインスタンスでした。

このような手順で,Correttoの社内運用を開始しました。当初は社内利用のみ考えていたのですが,その後OracleがOracle JDK 8の公開アップデートの終了と,Java SE 9からは6ヶ月周期でリリースするということを発表したので,Amazon社内の開発者によるニーズのみから,Javaコミュニティ全体を対象として考慮するようになったのです。

当社にアプローチしてきたユーザはみな,自分たちのJavaアプリケーションのサポートに不安を抱えていました。同時に彼らは,複数の異なるバイナリディストリビューションに対してテストすることにも不安を持っていました。それぞれのディストリビューションには,それぞれ異なる制約があります。彼らのワークロードを制約なく実行できるディストリビューションを提供するように,私たちに求めたのです。

ユーザの多くは,ソリューションそのものを求めていました。当社のユーザやコミュニティは,当然ながらAWSだけですべてを実行している訳ではなく,開発用のラップトップやオンプレミスで,さまざまなオペレーティングシステム上でローカルにJavaを実行していました。それらに対して,費用を必要としないソリューションは存在しませんでした。そこで,CorrettoをJavaコミュニティ全体に提供することを考え始めたのです。

Amazonではかなり前から,Amazon LinuxでOpenJDKを提供していました。ユーザのニーズを見て,いろいろ調べた結果,Amazon LinuxやAWSのみに限定したり,その他の制限を加える理由は何もない,ということが分かったのです。現在,Correttoは主なオペレーティングシステム上で利用することが可能で,実運用を対象とした長期サポートが無償で提供されています。どのクラウドでも,オンプレミスでも,デスクトップでも実行できますし,ソフトウェアへのバンドルも可能です。

InfoQ: "Corretto"という名前はどうやって選ばれたのですか?

Gupta: イタリア語で"正しい(correct)"という意味を,遊び心で付けました。リキュールのショットを入れたエスプレッソの名前であることも気に入っています。

InfoQ: OpenJDKを独自のディストリビューションで提供する他のベンダと比較して,Correttoのユニークな点は何ですか?

Gupta: ユーザから,既存のディストリビューションには何らかの制限がある,という声を聞いています。有償であったり,特定のプラットフォームに制限されていたり,あるいは,開発目的には使用可能だが実運用には使用できない,といった具合です。ユーザの多くはサポート対象としてさまざまなプラットフォームを抱えているため,これは彼らのプロセスを妨げるものでした。開発時間やテスト時間やさまざまなプラットフォームで検証する時間を短縮したい,というのがユーザの希望なのです。そこで当社では,社内で使用しているものを使って,それらすべての懸念に対処することを決めました。同時に,一切の制限を加えないこと,OpenJDKにコントリビューションすることも決定しました。

さらに私たちは,Correttoを簡単に導入できるように,ホットスポットベースのOpenJDKディストリビューションをそのまま入れ替え可能にしたいと思っていました。オープンソースで使用できない有償の機能を使用していない限り,これは実現できています。もちろん,現在のOpenJDKディストリビューションが問題なく動作しているのであれば,私たちとしては,そのまま使用を続けるようにお勧めします。

InfoQ: AdoptOpenJDKイニシアティブを支援する計画はありますか?

Gupta: はい。AdoptOpenJDKとはCorrettoバイナリのホストで協力関係にありますし,当社がコンピューティングリソースを提供しています。AmazonとAdoptOpenJDKは共同で,OpenJDKビルドの構築とテストロジックの詳細を交換しているのです。

InfoQ: 長期的な目標は何ですか?

Gupta: Correttoの改善とサポートに加えて,上流プロジェクトのサポートも計画しています。ロードマップのおおよそ90~95%は,ユーザに関わっています。OpenJDK 8に対応するCorretto 8は今年初めに一般公開されました。OpenJDK 11相当のCorretto 11は,この記事の時点ではRC(Release Candidate)ですが,GAに向けた作業を行っています。

ユーザの多くはJDK 8を使用していて,当面はJDK 11に移行する予定を持っていません。あるいは,今後何年もJDK 8を使用するかも知れません。ですから私たちとしては,パフォーマンスを向上するだけでなく,既存システムが一貫した動作を維持するように改善したいと思っています。Corretto 8は少なくとも2023年まで,Corretto 11は少なくとも2024年まで,無償の長期サポートを提供する予定です。

Correttoの前提となるのは,上流プロジェクトの成功と十分なメンテナンスです。CorrettoチームはRed Hatのリーダシップの下で,OpenJDK8uプロジェクトのメンテナンスに投資しています。このプロジェクトは,他のOpenJDKコミュニティディストリビューションの上流にあたり,私たちの四半期リリースの基盤となるものです。Correttoチーム内にリーダシップと個々のコントリビュータの役割を設けることで,これらプロジェクトをサポートし,さらなる改善を提供する能力を高めています。

OracleやRed Hatや他のパートナとも協力して,セキュリティパッチや障害の修正を開発していて,それらをOpenJDK Updateプロジェクトにバックポートしています。すべてのOpenJDKディストリビューションにセキュリティパッチのギャップが生じないように,Oracleと合わせてそれらをリリースする必要があります。

Correttoは2つのコンポーネントで構成されています。ひとつはOpenJDKで,ソースコードがopenjdk.java.netで公開されています。もうひとつのコンポーネントはパッチ,ビルド手順とシステム,テスト,ドキュメントです。Correttoにフィードバックしたいことがある場合は,github.com/correttoにイシューまたはプルリクエストを送って頂きたいと思います。OpenJDK自体のアップストリームまたはパッチに対するコード変更の場合は,すべてのコントリビューションをアップストリームに送って欲しいと思っていますので,そこから始めてください。ビルドシステムや資料,あるいはCorretto特有のテストフェーズに関するものは,GitHubリポジトリに送ってください。

リソース

この記事に星をつける

おすすめ度
スタイル

BT