※本記事は、Alexa Morales による “How Java 15 taught me to love virtual hands-on labs” を翻訳したものです。
最新のJavaリリースとともに公開された3つのハンズオン・ラボをライブで体験。皆さんもぜひお試しを
2020年 10月 7日
新しいテクノロジーを体験する最善の方法は、実際に試してみることです。そして、現在の新しい未知の世界において、実際に試してみるとは、仮想ハンズオン・ラボ(HOL)を試してみることを意味します。
たとえば、2020年9月15日に開催されたOracle Developer Live—Javaバーチャル・イベントでは、データや計算を多用するワークロード向けのJava 15の新しいアーキテクチャについて、多くのプレゼンテーションが行われました。プレゼンテーションの後は、セルフガイド式のラボで誰もがその機能を試すことができました。しかも多くの場合、新しいJDKが正式に公開されたまさにその日に可能でした。今回、筆者が体験したのもまさにこれです。
新しいKubernetes
筆者は、Oracle Cloud Infrastructure Foundations 2020 Associateの認定資格を取得したばかりでした。この試験の対策のため、Oracle Free Tier Accountはすでに持っており、Oracle Cloud Infrastructure(OCI)コンソールにもかなり親しんでいました。
この日に試したセルフガイド式のラボは、オラクルのMonica RiccelliとMaciej Gruszkaによる「MicronautとOracle Cloud InfrastructureによるJavaクラウド・ネイティブ・アプリケーションの構築」(英語)でした。目的は、Kubernetes(ここではOracle Container Engine for Kubernetes)を使ってOracle WebLogicコンテナをデプロイするという貴重なスキルを学ぶことでした。
このプロセスがどれほど簡単かはすぐにわかりました。その手順は、左側のメニュー・バーを下にスクロールしてDeveloper Servicesを開き、「Kubernetes Clusters」を選んでから「Quick Create」をクリックして、新しいクラスタおよびそのクラスタに関連するネットワーク・リソース(仮想クラウド・ネットワーク、インターネット・ゲートウェイおよびNATゲートウェイ、ワーカー・ノード、ノード・プール、ロードバランサ)を作成するというものです。7分ほどで、アクティブなクラスタを示す緑色の大きな六角形がクラウド・コンソールに表示されました(図1参照)。

図1:アクティブな Kubernetes クラスタを示す緑色の大きな六角形
この後もチュートリアルは続き、GitHubからOracle WebLogic Server Kubernetes Operatorをクローンし、Helmを使ってインストールする方法が説明されました。KubeConに参加した経験を踏まえて言うと、雇用者はこのようなクラスタリング・ツールをわずかにでも知っている開発者を非常に求めています。
続くOracle WebLogicドメインのデプロイ、クラスタのスケーリング、新しいイメージの時間差再起動、2つのデータセンターにまたがるクラスタのシミュレーションは行いませんでしたが、こういった点はどれも、Oracle WebLogic Serverでアプリケーションを実行している多くの開発者が興味をそそられる考え方です。
Oracle WebLogicのプロダクト管理担当ディレクターであるGruszkaは、「こういった開発者の大半は、今まさに、最新化のための手法を探そうと考えています。コンテナは、そのような方々の多くにとって一番人気の手法でしょう。コンテナに移行すれば、中立的なアプローチでクラウドに移行できる道が開けます。これは、特定のベンダーにロックインされずに、皆さんを解放するテクノロジーなのです」と述べています。
その後、筆者は次のハンズオン・ラボに移りました。
クラウドで Java 15 をテストする
昨年のベルリンでもそうでしたが、オラクルのカンファレンスでは、Java開発者リレーション部門で豊富な経験を持つDavid Delabasséeの講演をよく聴いてきました。Java 15の新機能を紹介するDelabasséeのラボは、すべてOracle Cloud Infrastructureで実行されており、非常ににぎやかなものでした。しかし、後で本人から聞いたところ、「OCIによるJavaアプリケーションの構築」(英語)ラボの仮想エクスペリエンスを作るのは難しかったとのことでした。
ここでも、仮想クラウド・ネットワークを含むOCI環境を作成し、Javaアプリにインターネット・リクエストが届くように設定しました。セキュリティ・ルールを適切に構成してから、新しいJava機能をテストできるコンピュート・インスタンスをプロビジョニングしました。ここで、ラップトップのシェル・プログラムからアクセスできるように、インスタンスのパブリックIPアドレスを書き留めておきました。
Linuxコマンドをまったく知らない筆者でも、Macでターミナル・アプリを開き、チュートリアルの各ステップにあるコマンドをコピーして貼り付けることができました。こういった手順はどれも初歩的なものと思われるかもしれません。しかし翌日、Delabasséeは、受講者が正確に手順に従うことを前提にすることはできないと話してくれました。
「この15年、対面式のハンズオン・ラボを数多く行ってきたので、受講者がラボガイドを解釈する際に創造性を発揮できることを知っています」と話すDelabasséeは、当たり前のことを当たり前と考えないようにしています。
OCIでLinuxを実行する仮想マシンができたので、次は最新バージョンのOpenJDKと、Maven、Git、Helidonをインストールしました。インストールが大量だと感じるかもしれませんが、Delabasséeが書いてくれたスクリプトを実行したところ、大変な勢いで90秒ほどスクロールが続いてから、すべてのインストールが完了しました。コンソールを確認したところ、確かにOCIインスタンスにJava 15がインストールされたことがわかりました(図2参照)。

図2: DelabasséeのスクリプトがOracle Cloud InfrastructureへのJava 15のインストールをすべて行ってくれた
その後、Delabasséeが作成した11の項目のうち、Helidonマイクロサービス・フレームワークでREST APIを公開するものと、レコード(Java 15で2回目のプレビュー・ラウンドを迎えているJava言語機能)を有効化するものの2つをさらに終えることができました(図3参照)。

図3:コンパイラ・フラグでプレビュー機能を有効化すると、Javaレコードの実験が可能になる
Micronautの現状
超人になった気分で、この日最後のラボに進みました。「MicronautとOracle Cloud InfrastructureによるJavaクラウド・ネイティブ・アプリケーションの構築」(英語)を進行したのは、Micronautフレームワークの作成者で、現在はOracle Labsでアーキテクトを務めるGraeme Rocherでした。
ここまでで一番難しいラボでしたが、最初の数ステップを行ってみただけでも、同様に多くのことを学べました。ラボを始めるには、クラウド・スタックを作成することが必要でした。Terraform構成ファイル(Oracle Cloud仮想マシンとOracle Autonomous Databaseインスタンスをセットアップするためのレシピ)をダウンロードしました。そして、「Resource Manager」で「Stacks」を選び、そこにそのTerraformファイルをドラッグすることができました。しかし、心配なことがありました。Javaはすべてうまく動作していたので、その状態に戻れるようにしておきたかったのです。このTerraformレシピによって、そのすべてが台なしになってしまう可能性はあるでしょうか。
ちょうどそのとき、ラボの学習をサポートしていた数人のエンジニアの1人、Todd Sharpからブレークアウト・ルームに招待されました。まるで直接顔を合わせているかのように、バーチャル会議室に迎えてもらいました。そこには、チュートリアルに取り組んでいる人が数人いましたが、少しばかり雑談した後、Terraformスクリプトを実行するとJava 15のラボがおかしくなってしまうことはあるかどうかを尋ねました。彼は「問題ない」と教えてくれたので、作業に戻りました。スクリプトを書いたのは彼自身だったこともわかりました。
その後の手順は、GitHubからMicronautアプリケーションをクローンし、そのアプリケーションをOracle Autonomous Databaseに接続するというものでした。しかし、これはすべて高度なプログラミングで、筆者の「頭の限界を超えている」ことがわかりました。
SharpとRocher、そしてOracle Labsのテクニカル・ディレクターであるEric Sedlarとともにこのラボのエクスペリエンス全体を作成したChris Bensenは、「ユーザー・エクスペリエンスとコンテンツの視点から見て、ハンズオン・ラボの設計は非常に難しいものです。100 %バーチャルなら、なおさらです」と述べています。
Bensenは、「ラボには、Micronaut、Helidon、GraalVMなどの優れたテクノロジーが欠かせません。また、開発者が容易についていける内容でなければなりません。そのため、経験を積んだエンジニアのグループがテストしたり、イベントをサポートしたりする必要があります」と述べています。そして、「数百人の受講者がラボで学ぶのであれば、数千時間をかけて作るだけの価値があるのです」と付け加えています。
まとめ
皆さんは、自分のコードが遠くのデータセンターで動いているのを見てインターネットを操っているように感じ、興奮したいと思うかもしれません。筆者もそうです。そういう方は、ハンズオン・ラボをぜひ試してみてください。ここで紹介したハンズオン・ラボはすべて、こちらから、完全無料のOracle Cloud Free Tierで利用できます。
Dig deeper
- Java 15の内側:5つのカテゴリに分かれた14個のJEP
- Java 15の必須リソースを集めた便利なリスト(英語)
- Oracle Developer Live—Java(英語)
- セルフガイド式のラボ:クラウドでJavaアプリケーションを開発するハンズオン体験(英語)
- セルフガイド式のラボ:Oracle Cloudで開発するハンズオン体験(英語)
- Oracle VMハンズオン・ラボ用の仮想アプライアンスのダウンロード(英語)
- Oracle VMのハンズオン・ラボ(英語)
- Oracle Cloud Infrastructureハンズオン・ラボのウェルカム・ページ(英語)
- Oracle WebLogic Server
- Oracle Cloud Free Tier

Alexa Morales
オラクルの開発者コンテンツ担当ディレクター。Software Development誌の元編集長。15年超にわたり、テクノロジー・コンテンツ・ストラテジストおよびジャーナリストとして活動している。
