docker
spring-boot
kubernetes
iBM
microclimate

Microclimateローカル版でアプリケーションの開発を試す

Microclimateとは

Microclimateは、IBMが公開しているアプリケーション開発環境です。ひっそりβ版が公開されていましたが、つい最近ひっそりβがとれたようです。

あまり情報が公開されていないので私の独自調査によると、まず、ローカル版とKubernetesのHelm版があります。ローカル版は、

  • ポータル
  • コードの雛形生成(Java,Node.js,Swift)
  • エディタ
  • ビルドツール
  • アプリケーションランタイム
  • モニタリングツール
  • Git連携機能

がセットになっているようです。Helm版はこれに加え、

  • GitLab
  • Jenkins

も合わせてデプロイされますので、ちょっとしたCI/CD環境をすぐに使い始めることができる、ということです。

今回はローカル版を試してみます。

検証環境
- Mac OS
- Docker Community Edition 18.03.0-ce

手順

インストール

公式サイトからダウンロードします。

https://microclimate-dev2ops.github.io/gettingstarted

現時点ではmicroclimate-18.03.zipというファイルがダウンロードできます。これを解凍します。

$ unzip microclimate-18.03.zip
$ cd microclimate-18.03/cli
$ ./install.sh

Dockerイメージのビルドやダウンロードが始まります。通信状況によってはかなり時間がかかりますので待ちましょう。しばらく待つと次のようなメッセージが出ます。

=====================

INSTALLATION COMPLETE

Microclimate has been successfully installed.

Add Microclimate to your $PATH by running one or more of the following commands.

echo 'export PATH="$PATH:/Users/teru/.microclimate"' >> /Users/teru/.bash_profile

Note: These will not reload automatically. Use 'source [ Your file location ]' to reload the path.
For example I would use 'source ~/.bashrc' to reload my .bashrc file.

Alternatively you can run '~/mcdev COMMAND'

言われたとおり、PATH環境変数にホームディレクトリの.microclimateを追加しましょう。

Microclimateの起動

次のコマンドを実行します。-oオプションは開始後に自動でブラウザを開くという意味です。

$ mcdev start -o

すると初回はDockerのネットワーク設定や必要となるイメージのプルなどが始まります。これも時間がかかる場合があるので、気長に待ちましょう。次のメッセージが出れば起動完了です。

Creating microclimate-jmeter-init       ... done
Creating microclimate-theia-init        ... done
Creating microclimate-file-watcher-init ... done
Creating microclimate-portal            ... done

Microclimate has been started at http://localhost:9090

Waiting for Microclimate to start

先ほど -oオプションを付けたので、ブラウザが自動で開かれているはずです。あるいはブラウザで直接 http://localhost:9090/ アクセスしてください。

ポータルの表示

初回は利用規約への合意画面が出ますので合意してください。すると、ポータル画面が表示されます。個人的にはすでに日本語化されていることに驚きました。

image.png

最初は何もないので新規プロジェクトを作成するか、既存プロジェクトをインポートします。インポートの場合はGit、ローカル、アーカイブから選択できます。

image.png

プロジェクトの作成

今回は新規プロジェクトを選んでみます。今のところ、Java、Node.js、Swiftが選べます。今回はとりあえずJavaで。ちなみにプロジェクト名ですが、英小文字と数字しか受け付けてくれません。-や_のような記号は駄目ですし、大文字も駄目です。この制約は結構きついです。

image.png

次に進むとフレームワークの選択をします。個人的な趣味でSpringを選びます。

image.png

作成ボタンを押すとすぐにプロジェクトの生成が終わります。それではコードの編集をしてみましょう。

image.png

コードの編集

コードの編集に進むとWebIDEが開きます。ファイルを見ると、Spring BootのPOMや、Dockerfile、Jenkinsfileなどが自動生成されているのがわかります。

image.png

もちろんここではコードの修正が可能です。

ビルド・ログ

ビルドログを見ると、Mavenによるビルドが自動で入っていることがわかります。エラーがなければアプリケーションも自動起動します。

image.png

アプリケーションを開く

アプリケーションの実行結果が表示されます。

image.png

これだとなんだかわかりませんので、URL欄のパスに/v1/を付けてみます。実は先ほど自動生成されたソースでは、このURIで簡単なメッセージを出力するようになっています。

image.png

アプリケーション・ログ

アプリケーションのログ出力を見ることができます。

image.png

変なコードがたくさん出ているのは、出力時に文字色を変えるエスケープだと思われます。残念ながらこの画面では色は変わらないようです。

アプリケーション・モニター

CPUやメモリの使用状況や、リクエスト数、スループットなどを見ることができます。これは便利ですね。

image.png

ロードの実行

アプリケーション・モニターの画面からロードの実行をすることできます。ボタンを押せば次のように自動的に負荷をかけることができます。

image.png

なお、HTTP Incoming Requestsがちょっと変ですね。時系列が他のグラフと合っていないように見えます。これはご愛嬌。

ここでかけた負荷は、プロジェクトフォルダのload-test/TestPlan.jmxで定義されています。こういった雛形が自動生成されているのはうれしいですね。

image.png

Git連携

変更したファイルはGitでの管理が可能です。

image.png

感想

最低限開発に必要なものは揃っているという印象です。コードや各種設定ファイルがある程度自動生成されるのも便利です。ただ、それ以外は、本格的なCI/CDツールとは比べることはできません。特にWebIDEはやはり本格的な開発には貧弱すぎます。しかし、それは今回Javaを選択したからというのもあります。私見ですが、この手のツールは、開発言語にNode.jsを採用すると一気に化けます。今後どう機能拡張していくのか、引き続き見守ってみたいと思います。

後日Helm版の方も検証してみます。