この記事では、Tanzu Application Platform (TAP) のカタログ機能である Application Accelerator について紹介します。この機能を使うことで、企業のアプリケーションの雛形をつくることが可能となり、開発者にとってのアセット提供がより簡単にできます。
開発を加速!Application Acceleratorとは?
各会社それぞれに固有の要件を満たすために、技術スタックのパターン、つまり雛形があるはずです。
Application Accelerator とは、TAP が提供するカタログ機能であり、アプリケーション開発の雛形を配布しやすくする仕組みです。開発エンジニアは Application Accelerator をダウンロードして、煩わしい共通設定、ドライバー、ミドルウェア構成などをつくることなく、ビジネスロジックの開発に着手できます。まさに開発を加速するための機能です。
TAP の GUI では Accelerator という形で、一覧化されているものが見えます。
Choose > Explore とすると、それぞれの雛形に含まれる内容が見れます。
ヒントは、Spring Initializr
この Application Accelerator という発想はもともと Spring とよばれる Java のフレームワーク、そのコード雛形をつくるための Spring Initalizr (“e”がないのは意図的)からヒントを得て開発されました。(余談:Spring の Developer Advocate である Josh Long は Spring Initializr を「世界一大好きなWebサイト」と表現しています。」)
このサイトですが、ログインすると以下のように左ペインに言語やバージョンの指定、右側に開発に必要な依存関係を指定できます。
それぞれに値をいれたあとに “Explore” をおすと、コードの雛形が生成されます。
こういった雛形作成の思想は0からコード作成をするのに比べ、言語習得の敷居をさげることにつながりコミュニティから高い評価を得ています。(最近ですと、Quarkusでも同じような雛形作成のサイトがございます。)
Application Accelerator では、Spring Initialzr をさらに拡張し、企業の固有のロジックをいれることをできるようにしたものです。
Accelerator を登録してみよう
ここでは、簡単な Accelerator を登録してみます。Accelerator の管理は TAP らしく、 kubectl を使って行うものです。まず以下のコマンドを TAP がインストールされたKubernetes に実行します。
kubectl get accelerators -n accelerator-system
すると以下のようにみえてくると思います。
今回はここに、筆者が作った Accelerator を登録してみます。 ソースコードはここにあります。以下のコマンドで Accelerator を登録します。
git clone https://github.com/mhoshi-vm/appaccelerator-demo
cd appaccelerator-demo
kubectl apply -f k8s-resource.yaml -n accelerator-system
正しく登録されれば以下のようになります。
TAP の GUI にログインして、Accelerator 一覧に以下のようなものが追加されているので、Choose を選択します。
以下の画面で任意の Service Name と App Name を入力します。
その後、Create を入力すると、Zip ファイルのダウンロードが開始されます。Java 8 以上と Maven CLI がインストールされているマシンどこでもいいのでそれを展開してください。
展開後のそのディレクトリーで以下を実行します。
mvn spring-boot:run
アプリケーションが起動したら、以下のコマンドを交互に複数回入力します。
curl -X PUT “localhost:8080/create?name=aaa”
curl “localhost:8080”
最後に完了したら、ブラウザで以下のURLをアクセスします。
http://localhost:8080/actuator/wavefront
すると以下のように Tanzu Observability と呼ばれる監視画面に転送されます。(無料アカウントですのでご安心ください。)
今回の Accelerator は Spring で最低限の REST API の設定のほか、Tanzu Observability とよばれる監視ツールの設定を数多くしています。たとえば、Tanzu Observability でApplications > Application Map と移動すると以下のようにアプリケーションとデータベースの可視化されます。これは事前にコードに仕込まれた状態で Accelerator からダウンロードされます。
本来はどうやってこのような設定をいれたのか、つくった私が細かい解説をいれたいものですが。。。開発者の皆様はそれを気にしなくて良いわけです。Application Accelerator は開発の本質ではないところに時間をかけず、開発にのみ集中することができます。
今回は Tanzu Observability との Accelerator を用意しましたが、皆様の企業固有の Accelerator をどんどん登録することができます。
まとめ
今回 TAP の Application Accelerator を紹介しました。VMware ブログでは引き続き TAP の様々な機能を紹介していくので、ご期待ください。