LoginSignup
0

逆引き!TAPではこんなことができるよ

Last updated at Posted at 2022-12-02

こんにちわ!TUNA-JPの運営メンバーをしている @hirosat です。
本記事は、「TUNA-JP Advent Calendar 2022」の3日目のエントリです。
(実は、本業が忙しくなってきて、執筆当日になってバタバタしながら書いてます。。ひぇぇ)

TL;DR (この記事の要約)

  • VMware Tanzu Application Platform (以下、TAP) では、こんなことができるよ!を、ちょっとご紹介

この記事の狙い

Advent Calender 2日目 では、TAPには色んなOSSが使われていることをご紹介させていただきました。
その後、恐らく次に思うことは、「で、結局それらを使ってどんなことができるんよ?」なのではないかと思います。VMwareからもいくつかTAPの記事がでていますが、「何か凄そう!」と思える記事はあるけど、具体的にはどう使われるかがイメージできる記事がないのでは?と思いました。

なので本記事では、そんな疑問に解消するため、逆引き形式で紹介しようかなと思いました。
前提として、全体像は2日目にご紹介したこの画像に集約されていますので、これを頭の隅に入れておいてください。

Screen Shot 2022-11-26 at 17.11.26.png

※. 上記はTAP1.3時点の構成です。今後のバージョンアップによって変わる可能性があります。
また、思いつく限り書いてみましたが、完全に全機能を網羅できていない可能性もあります。

逆引き: TAPでできること

※. 以下、基本的には、肯定的な答えになるよう、仕向けています・・w

Software Supply Chain を構成するOSS

★ 開発者にとって・・・

ソースコードを書いたら、いい感じにKubernetesアプリケーションにして欲しい

できます!必要最低限なステップは、これだけです。

  1. Github等のGitレポジトリにソースコードをあげる
  2. CLI で tanzu apps workload apply 引数 と実行し、対象のGitレポを指定

後は、TAPがソースコードをコンテナ化してくれて、Kubernetes上にアプリケーションとしてデプロイされ、URLが払い出されて公開までしてくれます。(参考: Deploy an App)

そうは言っても、どんなコードを書けばいいのか分からないけど、雛形とかあるの?

あります!
Deploy an App のドキュメント内ではそこから解説しています。
具体的には、TAPが提供するGUIのAccelerators のページに進み、10数種類ある雛形の中から自分のイメージに合うものを選択し、サンプルをダウンロードします。
それをGitレポジトリに置き、少しずつ自分のアプリの仕様に合わせて編集していきましょう。

ソースコードを改良するたびに、毎回パイプラインに投入するコマンドを打つの?

違います! (あ、やべ、否定してしまった・・w)
tanzu apps workload apply 引数 を打つのは、Gitレポジトリを登録する初回のみです。
その後は、git commit & push するだけで、改良したコードを元に、新しいアプリケーションが自動的にデプロイされて公開されます。

パイプラインが今どんな処理を行っていて、どこでエラーがでたかを見る方法はあるの?

複数あります!

  1. TAP GUIからWorkloadメニューに進み、自分のアプリケーションがパイプラインを通る様子を視覚的に確認できます
  2. tanzu apps workload get APP名 で、現在の状態の概要を確認できます
  3. tanzu apps workload tail APP名 で、ジョブ投入後の各フェーズの詳細なログを確認できます

パイプラインを通って、デプロイされた後のアプリの状態を確認する方法はあるの?

あります!
ただし、TAP GUIのHomeメニュー内で、自分のアプリケーションをカタログとして登録する必要があります。
Deploy an App のドキュメント内の、Add your Application...のところで、解説しています。

★ 運用者にとって・・・

CI/CDパイプラインを作ったことないけど、簡単に開発者にパイプラインを提供できる?

できます!
具体的には、TAPのインストール に従い、導入するだけです。
TAPには、3種類のOOTB(Out of the box = すぐに使える) Supply Chain というものが用意されており、
初期設定では、最も基本的なOOTB Supply Chain Basic というCI/CDパイプラインが利用可能な状態となります。
なお、OOTB Supply Chain Basic では、以下の処理を行ってくれます。

  1. Gitレポからソースコードを取り込み (Flux)
  2. コンテナイメージのビルド (kpack)
  3. Kubernetesに必要なコンフィグの設定
  4. アプリのデプロイ (knative)

図には、テストとかスキャンが入ってるけど、これも簡単に導入できるの?

できます!
それが残りの2種類のOOTB Supply Chainです。

  1. OOTB Supply Chain Basic: Git取り込み + ビルド + 設定 + デプロイ
  2. OOTB Supply Chain Testing: 1に加え、Tekton で Test が追加
  3. OOTB Supply Chain Testing & Scanning: 2に加え、Grype でソースコード Scanコンテナ Scan が追加

変更方法は、Add testing and scanning を御覧ください。

図には、Jenkinsとかも出てきてるけど、これらにも変更できるの?

できます!
デフォルトで使われるOSSは、前の質問の通りですが、以下のドキュメントで入れ替えることができます。

開発支援ツールで使われるOSS

※. 開発支援ツールの話なので、そもそも対象が開発者となります。

Supply Chainが通ってデプロイされるのを待つのがダルい。。もっと簡単に動作確認する方法はないの?

あります!
ただし、Java アプリケーション + VS code IDE 限定です。
TAPの Developer Conventions という機能によって実現します。または、Live Updateと呼ぶこともあります。
具体的には、IDE上で変更した内容を、OSSのTiltと連携して、リアルタイムでKubernetes上のPodに反映して動作確認できます。Gitレポにあげる前段階として、この機能でしばらくデバッグを続け、コード内容がFixしたら、TAPのSupply Chainに反映するような使い方が想定されます。
使い方は、Iterate on your App をご参照ください。

Supply Chainでデプロイされたアプリに対して、Threadやアクセス数を解析する方法ある?

あります!
ただし、Spring Boot(とSteeltoe) アプリケーション 限定です。
TAPの Application Live View という機能によって実現します。
先ほど、自分のアプリケーションをカタログとして登録する方法を紹介しましたが、対応アプリの場合、Live Viewという項目が現れ、そこから確認可能です。

デプロイ支援ツールとして利用されるOSS

複数のアプリをサブドメインで振り分けたい

できます!
(というより、TAPでの標準的な使い方として、そのような仕様になっています。)
OSSのContourによって実現されます。

PodのScale-to-zero、Scale-from-zeroを実現したい

できます!
(というより、TAPでの標準的な使い方として、そのような仕様になっています。)
OSSのknativeによって、podがAuto scalingします。
しばらくアクセスがなかったら0pod状態になり、その状態からアクセスリクエストによってPodを起動、といったことが実現できます。もちろん、0podが嫌な場合、最小1podみたいな設定も可能です。

アプリをTLS対応したい

できます!
OSSのcert-managerにより、自動でhttps対応したり、証明書の自動更新といったことが可能です。

あとがき

本当は、もっといっぱい機能があるので紹介したかったですが、1記事としてのボリュームを考えると、ここら辺でやめておきます。図もいれたかったけど、タイムアップですね。。

自社のコンテナ開発・生産体制に停滞を感じている場合、TAPの導入をご検討してみてはいかがでしょうか?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0