[Helidon] Oracle Developer Cloudを使ったHelidonマイクロサービスのビルドとデプロイ/Build and Deploy a Helidon Microservice Using Oracle Developer Cloud

原文はこちら
https://blogs.oracle.com/developers/build-and-deploy-a-helidon-microservice-using-oracle-developer-cloud

Oracleは最近、Project Helidonを展開しました。Project Helidonはマイクロサービスを開発する新しい方法を提供します。このブログではOracle Developer Cloudを使ってあなたの最初のHelidonベースのマイクロサービスを作成し、Oracle Container Engine for Kubernetesにデプロイする方法をご説明します。

始める前に、いくつかのポイントを確認しておきましょう:

Helidonとはなにか?

Project Helidonはマイクロサービスを開発するためのJavaライブラリの集合です。Helidonはふたつのプログラミングモデルをサポートしており、ひとつはMicroProfile 1.2ベースのHelidon MPで、もうひとつはスモールでファンクショナルスタイルAPIであるHelidon SEです。
どちらを選んだとしても、Java SEベースのアプリケーションを開発することになります。Helidonはオープンソースであり、コードはGitHubで利用可能です。Project Helidonについてもっと知りたい場合は、次のリンクを見てみてくださいね:

始めてみよう

Helidonは単品でダウンロードするような機能を提供しておらず、代わりにMavenリリースを使う必要があります。これはつまり、Mavenアーキタイプを使ってHelidonマイクロサービスプロジェクトを使い始めるということになります。このブログでは、Helidon SEプロフラグラミングモデルを使っていきます。
Helidonで開発を行うにあたり、以下の基本的な前提ソフトウェアをマシンにインストールしておく必要があります:
  • Maven
  • Java 8
  • Gitcli (コードをOracle Developer Cloud Gitリポジトリにプッシュするため)

Mavenを使ってHelidonのサンプルマイクロサービスプロジェクトをダウンロード

Windowsマシンを使っているなら、コマンドプロンプトを開きましょう。そしてサンプルHelidonマイクロサービスプロジェクトを作成したいフォルダに移動し(あるいは作成し)、以下のMavenコマンドを実行してください。
mvn archetype:generate -DinteractiveMode=false \
    -DarchetypeGroupId=io.helidon.archetypes \
    -DarchetypeArtifactId=helidon-quickstart-se \
    -DarchetypeVersion=1.1.0 \
    -DgroupId=io.helidon.examples \
    -DartifactId=helidon-quickstart-se \
    -Dpackage=io.helidon.examples.quickstart.se

実行すると、このMavenコマンドはhelidon-quickstart-seフォルダを作成します。
マイクロサービスのアプリケーションコード、ビルドファイル、およびデプロイメントファイルはすべてこのhelidon-quickstart-seフォルダに格納されています。

以下がそれらのファイルとフォルダです:
  • srcフォルダ –  マイクロサービスのアプリケーションソースコードを格納
  • app.yml – Kubernetesデプロイメントを定義
  • Dockerfile – Dockerイメージ作成方法を定義
  • Dockerfile.native – GraalVMを使ってのDockerイメージ作成方法を定義
  • Pom.xml – Mavenビルドのプロジェクト記述子
  • README.md –  プロジェクトの説明が記載されたファイル
ではGitリポジトリを使うOracle Developer Cloudプロジェクトを作成しましょう。このGitリポジトリのことをここではHelidon.gitと呼びます。

コマンドプロンプトでhelidon-quickstart-seフォルダに移動し、以下のGitコマンドでHelidonマイクロサービスアプリケーションコードを作成したGitリポジトリにプッシュしましょう。
Note: You need to have gitcli installed on your development machine to execute Git commands.
注意:Gitコマンドを実行するには、あなたの開発マシンにgitcliがインストールされている必要があります。
git init
git add --all
git commit -m "First commit"
git remote add origin <git repository url>
git push origin master

あなたのHelidon.gitリポジトリは以下のような構成になったかと思います。

ビルドジョブの構成

Developer Cloudで、左側のナビゲーションバーからBuildsを選択することでBuildsページに移動し、+Create Jobボタンをクリックします。
New Jobダイアログでは、NameBuildHelidonと入力して、Dockerランタイムを持っているTemplateを選択し、Createボタンをクリックします。このビルドジョブはGitリポジトリにあるHelidonマイクロサービスコードのDockerイメージをビルドし、DockerHubレジストリにプッシュします。
Gitタブでは、Add GitのドロップダウンからGitを選び、GitリポジトリはHelidon.gitを選択し、Branchはmasterを選択しましょう。

Stepsタブでは、Add StepドロップダウンからDocker loginDocker buildおよびDocker pushステップを追加します。
Docker loginステップには、DockerHubのユーザー名パスワードを入力します。DockerHubをレジストリにするため、Registry Hostは空のままにしておきましょう。
Docker buildステップでは、<DockerHubユーザー名>/helidonmicroをImage Nameとして入力し、Version Tagには1.0を入力します。フルのイメージ名は<DockerHubユーザー名>/helidonmicro:1.0と表示されます。

Docker pushステップでは、<DockerHubユーザー名>/helidonmicroをImage Nameとして入力し、Version Tagには1.0を入力します。そうしたらSaveボタンをクリックしましょう。

HelidonマイクロサービスDockerコンテナをデプロイするビルドジョブを作成する前に、app.yamlファイルを編集し、Dockerイメージ名を修正しておく必要があります。編集するにはGitページに移動し、Helidon.gitリポジトリを選択し、app.yamlファイルリンクをクリックしましょう。

鉛筆のアイコンをクリックして編集します。

イメージ名を<DockerHubユーザー名>/helidonmicro:1.0に更新し、Commitボタンをクリックしてコードの変更をmasterブランチにコミットします。

別のジョブを作成するため、Buildsページに移動して+Create Jobボタンをクリックします。
New Jobダイアログで、NameにDeployHelidonと入力し、Kubectlを持ったTemplateを選択してCreateボタンをクリック。このビルドジョブはBuildHelidonビルドジョブでビルドされたDockerイメージをKubernetesクラスターにデプロイします。

DeployHelidonビルドジョブを設定するにあたりまずやることは、コードの所在するリポジトリを指定して、作業しているブランチを選択することです。Gitタブで、ドロップダウンからGitを追加し、Helidon.gitをGitリポジトリとして選択し、ブランチにはmasterを選択しましょう。

StepsタブではAdd StepドロップダウンからOCIcliUnix Shellを選んでください。このブログリンクからOCIcliの設定値をどのように決めればいいかを参照してください。その後、Unix Shellビルドステップで、次のスクリプトを入力してください。Kubernetes Cluster IDはOracle Cloud Infrastructureコンソールから入手できます。
1
2
3
4
5
6
7
8
9
10
mkdir -p $HOME/.kube
oci ce cluster create-kubeconfig --cluster-id <oracle cluster="" container="" engine="" for="" kubernetes="" ocid=""> --file $HOME/.kube/config --region us-ashburn-1
export KUBECONFIG=$HOME/.kube/config
 
kubectl create -f app.yaml
sleep 30
kubectl get services helidon-quickstart-se
kubectl get pods
kubectl describe pods
</oracle>

終わったら、Saveボタンをクリックします。

ビルドパイプラインの作成

BuildsページのPipelinesタブに移動し、+Create Pipelineボタンをクリックします。

Create Pipelineダイアログでは、NameHelidonPipelineといったように入力し、Createボタンをクリック。
BuildHelidonDeployHelidonビルドジョブをドラッグアンドドロップして連結します。

ビルドジョブ間を結合しているリンクをダブルクリックし、Result ConditionとしてSuccessfulを選択したらApplyボタンをクリック。

以下のようにBuildボタンをクリックして、ビルドパイプラインを実行してみます。BuildHelidonビルドジョブがまず実行され、成功すれば、DeployHelidonビルドジョブが次に実行されてOracle Cloud上のKubernetesクラスターにコンテナがデプロイされます。

ビルドパイプライン内のジョブの実行が終了したら、Jobsタブに移動してDeployHelidonビルドジョブのリンクをクリックします。次にビルド実行のlogアイコンをクリックすると、サービスとデプロイメントが成功したことを示すメッセージが表示されるでしょう。ここでは以下のように、helidon-quickstart-seサービスとデプロイメントがKubernetes上で作成されたログを検索して、マイクロサービスにアクセスするためのパブリックIPアドレスポート番号を探しましょう。


ログから見つけたIPアドレスとポート番号を以下のフォーマットのURLでブラウザに入力します:
http://<retrieved IP address>:<retrieved port>/greet
すると、ブラウザに”Hello World!”のメッセージが表示されるでしょう。


というわけで、Oracle Developer CloudがあなたのHelidonベースのマイクロサービスの一連のDevOpsライフサイクル管理をどのように手助けしてくれるのか、また、ビルドとOracle Container Engine for Kubernetesへのデプロイがどれほど簡単にできるのかがおわかりいただけたでしょう。
To learn more about other new features in Oracle Developer Cloud, take a look at the What's Newin Oracle Developer Cloud Service document and explore the links it provides to our product documentation. If you have any questions, you can reach us on the Developer Cloud Slack channel or in the online forum.
Oracle Developer Cloudの新しい機能についてもっと知りたい場合は、ドキュメントのWhat's Newをチェックしてそのリンク先のドキュメントを読んでみてください。質問があればDeveloper Cloud Slack channelか、オンラインフォーラムでどうぞ。
Happy Coding!

[Cloud, Java] OCIでOracle Javaをインストールする方法/How to Install Oracle Java in Oracle Cloud Infrastructure

原文はこちら
https://blogs.oracle.com/developers/how-to-install-oracle-java-in-oracle-cloud-infrastructure

Oracle JavaサポートおよびアップデートはOracle Cloud Infrastructureに含まれています

Oracleの広範に利用されており実績のあるJava Development KitであるOracle Javaが追加費用なしでOracle Cloud Infrastructureのサブスクリプションに含まれるようになったことを最近お知らせしました。
このブロクポストでは、OCI Compute Shape上で稼働するOracle Linuxに、RPMが利用可能なOCI内のyumサーバーを使ってOracle Javaをインストールする方法をご紹介します。

Oracle Javaのインストール

Oracle Java RPMはOCI内でアクセス可能な、Oracle Linux yumサーバーのol7_oci_includedリポジトリに置かれています。
このリポジトリを有効化するには以下のコマンドを実行します:
1
$ sudo yum install -y --enablerepo=ol7_ociyum_config oci-included-release-el7
この記事を書いている時点では、このリポジトリにはOracle Java 8、11および12が含まれていました。
1
2
3
4
5
6
$ yum list jdk*
Loaded plugins: langpacks, ulninfo
Available Packages
jdk-11.0.3.x86_64                                      2000:11.0.3-ga                                           ol7_oci_included
jdk-12.0.1.x86_64                                      2000:12.0.1-ga                                           ol7_oci_included
jdk1.8.x86_64                                          2000:1.8.0_211-fcs                                       ol7_oci_included
Oracle Java 12のバージョン12.0.1をインストールするには以下のコマンドを実行します:
1
$ sudo yum install jdk-12.0.1
Javaのバージョンを確認してみましょう:
1
2
3
4
$ java -version
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

複数のJDKバージョン利用時のデフォルトの設定

If you install multiple version of the JDK, you may want to set the default version using alternatives. For example, let’s first install Oracle Java 8:
もし複数のバージョンのJDKを利用している場合、デフォルトバージョンをalternativesを使って設定したいかもしれません。例えば、まずOracle Java 8をインストールしてみます:
1
$ sudo yum install -y jdk1.8
alternativesコマンドを実行すると、ふたつのプログラムがjavaとして提供されていることが表示されます:
1
2
3
4
5
6
7
8
$ sudo alternatives --config java
 
There are 2 programs which provide 'java'.
 
  Selection    Command
-----------------------------------------------
*+ 1           /usr/java/jdk-12.0.1/bin/java
   2           /usr/java/jdk1.8.0_211-amd64/jre/bin/java
Selectionの2を選ぶと、JDK 1.8(Oracle Java 8)をデフォルトに設定します:
1
2
3
4
$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

まとめ

Oracle Cloud InfrastructureにはOracle Javaが、そしてそのサポートとアップデートが追加費用なしで含まれています。Oracle Java RPMをOCIのyumサーバーとして提供することで、インストールはとてもかんたんになっています。