課題を解決

Kubernetes 上での開発・運用の課題を解決!
VMware Tanzu Application Platform によるクラウドネイティブな開発とは?(後編)(2/3)

2022/09/01

ビルドフェーズにおける課題とソリューション

次にビルドフェーズにおける典型的な課題と、Tanzu Application Platformが提供するソリューションについて見ていきましょう。

(1) 非機能要件の侵食

本番環境にセキュリティ製品などを導入した結果、これまで問題なくデプロイできていたアプリケーションに、大量のアラートが出てしまった経験はないでしょうか。しかしアラートだけでは修正点が不明確で、場当たり的に対応せざるをえなくなり、開発工程に混乱をきたしてしまいます。これは、まさに非機能要件がビルドフェーズを侵食している状況です。この状況を放置すれば、開発者の生産性を損なってしまいます。

(2) パイプラインの複雑化

CI/CDツールはとても便利なものですが、アクションを自由に定義できるが故に、あらゆる作業をパイプラインに担わせてしまいがちです。テスト・ビルドだけでなく、コンテナ作成やセキュリティの担保など、様々な工程をパイプラインに含めた結果、パイプラインは複雑化・属人化し、一部の「職人」以外は手出しできないブラックボックスと化してしまいます。

(3) 欠けていく柔軟性

パイプラインによる自動化は、Gitリポジトリへのソースコードのコミットをトリガーにしていますが、それ以外のトリガーで開始できる自動化フローも必要です。コミットへの依存は、先ほどのパイプラインの複雑化と合わせ、柔軟な自動化を妨げることに繋がります。

Tanzu Application Platformは、これらのビルドフェーズの課題に対して、以下のようなソリューションを用意しています。

非機能要件の透過的設定

非機能要件のうち、セキュリティ面では、シフトレフトセキュリティのコンセプトに沿って、あらかじめインナーループの開発工程にセキュリティを折り込むことで、開発者の負担を軽減します。Tanzu Application Platformでは、Scan, Sign, Storeの3つの機能でシフトレフトセキュリティを実現しています。

  • Scan: Anchore Grypeによるソースコード、コンテナイメージの脆弱性検査
  • Sign: Cosignを利用したコンテナへのイメージ署名と、検査を経ない不正デプロイの防止
  • Store: スキャン結果のSBOM(Software Bills of Materials)への蓄積による高速脆弱性検査
シフトレフトセキュリティとは

従来のセキュリティ工程は、アプリケーションのリリース前や運用開始後に行われることが一般的でした。しかし問題発見までのリードタイムや手戻り工数は、開発サイクルの高速化を妨げてしまいます。そこで登場したのが、セキュリティ工程を前倒し(シフトレフト)して、開発工程の初期から実施する、シフトレフトセキュリティというコンセプトです。

またコンテナイメージの作成に伴う膨大な設定ファイル作成の問題は、Build Serviceが解消します。これは、HerokuとVMware(旧Pivotal)が開発したCloudNative Buildpacks※OSSを利用し、ソースコードからイメージを作成する作業を完全自動化にし、品質の高いアセットを作ることを可能にします。開発者が、煩雑なDockerfileを書く必要はなくなります。

柔軟性のある自動化と シンプルなパイプラインへの回帰

柔軟性のある自動化を実現する要となるのが、VMwareが中心となって開発している、Cartographer※OSSです。Cartographerは、ビルド、スキャン、マニフェスト作成といった、アプリケーションのイメージやKubernetesの構成に必要なステップを、ユーザーが自由に定義して自動化できるツールです。ビルドやマニフェスト作成といったステップは、Cartographerにテンプレート化されているので、ユーザーが独自に定義する必要はありません。

また独自のパイプラインが必要な場合は、Kubernetesに特化したCI/CDツールであるTektonを使ったシンプルなパイプラインを作成することも可能です。複雑なデプロイ作業を行わせることが難しい分、パイプラインをシンプルに保ち、本来のパイプラインの役割である、テストとビルドの自動化に集中することができます。

おすすめ資料ダウンロード

この記事を読んだ人がよく読む記事

最新の「課題を解決」

人気の記事

TOP