LoginSignup
8
0

More than 1 year has passed since last update.

逆引き!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の導入をご検討してみてはいかがでしょうか?

8
0
0

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
  3. You can use dark theme
What you can do with signing up
8
0