運用者にとってのTanzu Application Platformのメリット
運用フェーズにおける課題とソリューション
今度は視点を変えて、運用者が本番環境で直面する課題を通して、Tanzu Application Platformのメリットと、アウターループにおける役割について解説します。以下のような課題にお困りの運用者は多いのではないでしょうか。
(1) デプロイ時のマニュアル作業
アプリケーションをデプロイする際は、OSやライブラリといったプラットフォームも更新して、アプリケーションに適した構成にしなければなりません。しかし開発環境と本番環境の差異を吸収するために、煩雑な手順に沿って作業することが必要になりがちです。手作業が増えてしまうと、運用者の負担は大きくなり、ミスの誘発や時間的・金銭的コストの増大につながります。
(2) コンテナイメージの脆弱性
アプリケーションを安全に運用するには、アプリケーション本体だけでなく、コンテナイメージ全体の脆弱性を排除する必要があります。しかし安全なDockerfileを作成できる人材は限られ、それをメンテナンスし続けるのはさらに大変な作業です。こうして得られたコンテナイメージであっても、きちんと検査しなければ、安全だという保証を得ることはできません。また、誤ってマルウェアに汚染されたイメージをデプロイしてしまうと、重大な脅威をもたらしてしまいます。
(3) バックエンドサービス管理の煩雑さ
アプリケーションは、データベースのようなバックエンドサービスなしでは稼働できません。しかし、開発環境、本番環境それぞれで必要なバックエンドが異なる場合があります。例をあげると、開発環境では簡便さを重視して、アプリが稼働するKubernetes上にそのままデータベースを立ち上げますが、本番環境では信頼性が重要なので、仮想マシンやマネージドサービス上のデータベースと接続します。それぞれの環境ごとに異なる接続方式やマニフェストの作成が求められるので、バックエンドの構築と管理は煩雑になりがちです。
(4) アプリケーション公開の煩雑さ
ユーザーがアプリケーションを利用できるようになるには、Kubernetesにデプロイし、Service Type LoadbalancerなどでIP公開しただけでは不十分で、URLでのアクセスやHTTPSも提供しなければいけません。これらの作業を手動で実施しなければならないと、運用者の負担をさらに増してしまいます。
これらの課題に対して、Tanzu Application Platformはどのようなソリューションを用意しているのでしょうか。
洗練されたGitOpsによる継続的デプロイ
Tanzu Application Platformのアウターループは、Gitリポジトリへのコミットをトリガーに自動的にデプロイを行う、GitOpsによるCD(継続的デプロイ)を実現しています。具体的には、ソースコードと構成ファイルの動作確認ができたら、それをコンテナレジストリにプッシュすると、Kubernetesとその上で動くCI/CDツールが、Gitから構成を読み込み、アプリケーションのデプロイとインフラの構成変更を自動的に実施します。手作業に比べると遥かに効率的で、人為的なミスもなくすことができます。
コンテナイメージの安全性を保証するScan Store Sign
Tanzu Application Platforは、コンテナイメージの安全性を保証するための様々な機能を備えています。安全なDockerfileの維持コストについては、先にご紹介したBuild Serviceで解消することができます。そして、コンテナイメージの安全性を保証し、不正なイメージのデプロイを防ぐ機能が、Scan, Store, Signです。
ScanはAnchor Grype※OSSをベースにした脆弱性検査機能です。ソースコードとコンテナイメージの両方の検査に対応しているので、複数のツールを行き来することなく、アプリケーション全体の脆弱性を洗い出します。またインターネットから最新の脆弱性情報を取得できるので、新たなリスクの出現にも素早く対処することができます。
コンテナイメージの検査は、ソースコードの検査と比べると負荷が高く時間もかかる作業なので、そのままでは開発スピードに悪影響が出てしまいます。そこでTanzu Application Platformは、コンテナイメージをビルドする際、SBOMと呼ばれるソフトウェアの構成情報のメタデータを作成します。このSBOMを蓄積する仕組みがStoreです。Tanzu Application Platformは、Store上のSBOMに対してコンテナイメージの検査を行うことで、スキャンにかかる時間を大幅に短縮し、効率的な開発とセキュリティを両立します。
問題のあるイメージのデプロイを防ぐための認証機構がSignです。Tanzu Application Platform上で、正しい手順を踏んでビルドされたコンテナイメージにはSignが付与されます。具体的には、ビルド時に付与した公開鍵と秘密鍵がマッチするイメージだけを起動する仕組みになっています。Signが付与されていないイメージはKubernetes上で起動できなくなるので、マルウェアに汚染された外部のイメージなどのデプロイを防ぐことができます。
バックエンドサービスを抽象化し管理工数を削減
バックエンドサービスの管理のためにTanzu Application Platformが提供する機能が、Service OperatorとService Bindingです。Service Operatorは、バックエンドサービスの構成や設定をKubernetesのリソースとして抽象化し、ユーザーへの払い出しを簡素化します。
Service Bindingは、アプリケーションからバックエンドサービスへの接続を抽象化します。その結果アプリケーションは、認証情報の共有や接続作法の違いなどの面倒な事柄を意識することなく、簡便な方法でバックエンドに接続することができます。
アプリケーションの外部公開をシンプルに
Tanzu Application Platformでは、kapp※OSSおよびKnative※OSSを用いた、アプリケーションのシンプルな外部公開を実現しています。kappは、アプリケーションに必要な様々なリソースを、まとめて単一のアプリケーションリソースとして管理することができるツールです。これにより、URLやHTTPSといった要素も、Kubernetes上のリソースとしてまとめて管理することができます。Knativeは、アプリケーションのデプロイから、URLのルーティング、トラフィック管理まで行う、Kubernetes上のサーバレスフレームワークです。
アプリケーション志向のプラットフォームの価値
Tanzu Application Platformは、開発者が求める俊敏性とスケーラビリティ、そして運用者が求める安定性とセキュリティを両立することができるプラットフォームです。インナーループとアウターループそれぞれで、既存のKubernetesとCI/CDに足りない部分を補い、モダンアプリケーション開発におけるDevSecOpsを推進します。そのメリットは、生産性の向上とコスト削減だけに留まりません。最終的にはビジネスが求めるアプリケーションを、いち早く市場投入することを可能にし、ビジネスそのものに大きく貢献します。VMwareは、アプリケーション志向のプラットフォームの提供を通して、今後もスムーズでスピーディーなPath to production(開発から本番環境へ)の実現を目指します。
VMware Tanzu Application Platformについて、詳しくは、次のダウンロード資料をご覧ください
Tanzu Application Platform
– VMware Tanzu が魅せる新世界 –
本資料では、生産性と安全性を両立しながらモダンアプリケーション開発の促進を目指す、VMware Tanzu Application Platformについてご紹介します。