![見出し画像](https://assets.st-note.com/production/uploads/images/62340685/rectangle_large_type_2_7e0d8913543da518024589b0955e30bd.jpeg?width=1200)
あらゆるKubernetes上で、よりよい体験を、全ての開発者に
VMware Tanzu Application Platform (TAP)
Tanzu Application Platform (TAP) はアプリケーション開発者や運用チームが Azure Kubernetes Service (AKS)、Amazon Elastic Kubernetes Service (EKS)、Google Kubernetes Engine (GKE)、Tanzu Kubernetes Grid (TKG) などを含むあらゆるKubernetesディストリビューション上で、より良いマルチクラウド開発環境を構築し、提供することを可能にします。
Tanzu Application Platform (TAP) は、開発チームと運用チームの両方がKubernetes上で統一されたエクスペリエンスを構築するための基盤となります。
・コンプライアンスとベストプラクティスが組み込まれたアプリケーションテンプレート
・コンテナイメージの自動ビルド
・サービスおよびイベント機能のためのランタイム
・APIの検出とルーティング
・迅速なトラブルシューティングのための実行中のアプリケーションのインサイト
開発者が主導するエンタープライズITの未来
プログラムを書きながら、そのコードを引く作業に没頭したことはありますか?
集中、完全に浸りきる、没入、のめり込み。
もしくはゾーン。もしくはピークエクスペリエンス。
無我の境地、忘我、我を忘れる、そんな表現を使う人もいる。
心理学ではフローというらしい。
「コードを書く」
その行為は、そのような感覚の中で行われるべきものだと信じています。
私たちは全ての優秀な開発者が、意識的に望むとき、いつでもそういう状態に入り込める。
今、目の前にある、そのコードに夢中になり、時間や労力が溶けるように消えていくのも全く気にならない。
開発者だけが、エンジニアだけが理解できる、その世界を私たちは全ての開発者に届けたいと常に考えています。
しかし今日のクラウドネイティブのエコシステムは、なかなかそれを許してくれません。
複雑で、選択肢が多く、前に進むのが難しい状況にあります。
一方で、DevSecOpsの手法を採用する組織が増えています。
つまり開発者はコードを本番環境に提供するだけではなく、セキュリティ要件を満たすための、より大きな責任を負うことになります。
もちろん開発者が作る新しいアプリケーションは、既存のアプリケーションやバックエンドサービスとの連携も必要です。
・本番環境やバックエンドシステムとの連携における摩擦を最小化する
・安全なソフトウェアサプライチェーンを実現する
・モジュール化されることで、開発者が自分の好きなコンポーネントやツールに入れ替えることができる
・運用チームは企業のセキュリティやコンプライアンスのニーズに最適な意見(ガードレール)を定義することができる
Tanzu Application Platform (TAP) はそういう世界を実現します。
今日、ソフトウェアチームはKubernetes上で、インフラ・プロバイダやパブリッククラウドからの部品を組み合わせることで、活気に満ちた、しかし現実的には断片的なクラウドネイティブ・エコシステムから調達した技術を用いて独自のパイプラインを構築しています。
これらのパイプラインには多くの課題があります。
・セットアップやメンテナンスが大変
・チーム間で動作に一貫性がない
・他のアプリケーションやインフラとの接続が非常に複雑
・開発者がコードを書く代わりに、パイプラインやインフラとの格闘に多くの時間を費やすことになる
などです。
確かにKubernetesはプラットフォームを構築するための優れたプラットフォームです。
しかし本来、開発者が自分で構築する必要はないはずです。
また運用担当者は、開発者がそのエコシステムを利用している間に、どのような種類の脆弱性やコンプライアンス違反が発生するかを常に心配しなければなりません。
Spring活用し、Kubernetes上で提供
Spring フレームワークは Java 開発者の仕事のやり方を根本的に変えました。
フレームワークとして根本的にやり方を根本的に変えた、その核となる考え方の1つが「制御の逆転」です。
これにより Spring はアプリケーションを意識したフレームワークとなっています。
同様に Tanzu Application Platform (TAP) もアプリケーションを意識したプラットフォームです。
開発者がどのようなアプリケーションやサービスを構築するかに応じ、必要な足場を提供します。
Application Accelerator for VMware Tanzuは、Spring Initializr に強い影響を受けた、Tanzu App Platform (TAP) の一部として提供されるツールです。
プラットフォーム・エンジニアやアーキテクトが定義した企業標準に沿ったテンプレートをベースに、新しいアプリケーションを作成することができます。
これにより企業が求めるコードや、構成を備えたアプリケーションを開発することが可能になります。
合わせてアイデアからシステム構築までの時間を短縮します。
今年の後半には、開発者は宣言型マニフェストにアプリケーションを記述することで、Kubernetesの知識をほとんど必要とせず、数分でプラットフォーム上でテストするためのURLを入手し、本番環境に近い環境でテストすることができるようになります。
Planned for Beta 2, the Workload resource will allow an application developer to focus on information relevant to the application.
アプリケーションマニフェストは、開発者と運用チームが協力してアプリケーションを本番環境に導入し、維持するための契約書となります。
またアプリケーションが本番環境に移行する際には、パイプラインやアプリケーションの状態を把握するためのオブザーバビリティが組み込まれます。
このプラットフォームでは、イベントトリガー型のファンクションや長期間利用されるWebアプリケーションなど、複数の方法でコードを実行できます。
これらのパターンを選択することは、設定上の詳細事項となります。
またAPIやアプリケーション・プリミティブにも素早くアクセスでき、それらに関する情報も分かりやすくまとめられています。
この為、開発者は何百、何千ものドキュメントに目を通すことなく、既存のインフラやアプリケーションと素早く統合することができます。
これらの体験は抽象化されたレイヤーによって実現されています。
しかしブラックボックスではありません。
開発者が必要とするときには kubectl に至るまでの基本的なレイヤーにいつでもアクセスできます。
これによりクラウドネイティブアプリケーションやKubernetesの経験の有無にかかわらず、どのような開発者にも素晴らしい体験を提供できるプラットフォームとなります。
BYOO - 自分の意見を持ち込む (Bring Your Own Opinions)
通常、Kubernetesを使い始めるとき、プラットフォーム運用者やDevOpsチームは、ベンダーの製品やコミュニティのプロジェクトを組み合わせ、クラスターにデプロイし、それぞれをDevOpsパイプラインで連携させるように設定します。
これに対し Tanzu Application Platform (TAP) のお客様は、エンドツーエンドのサプライチェーンがすべて含まれており、各コンポーネントがシームレスに連携するようにあらかじめ設定されている状態でスタートします。
このような強力なデフォルトを持つことで、Kubernetesのエコシステムで利用可能な何千ものテクノロジーの組み合わせの中から、どのようにプラットフォームを構築するかを決める際に、通常であればチームが下すべき多くの決定を排除することができます。
しかし強力なデフォルト設定があれば簡単に始められるかもしれませんが、VMwareが選択したコンポーネントがうまくいかない場合はどうすればよいのでしょうか。
Tanzu Application Platform (TAP) はモジュール化されており、運用チームは専門家の意見に基づいて独自のガードレールを設定することもできます。
つまりアダプターを介して個々のコンポーネントを簡単に代替することができるのです。
CI からコンテナビルドシステムまで、運用チームが定義したものでさえあれば、開発者は好きなものを使うことができます。
Tanzu Application Platform (TAP) は、VMware テクノロジーに縛られることはありません。
始めるためにはデフォルトが必要ですが、その選択はダイナミックで簡単に変更できるものでなければならないと考えています。
関心事の分離
多くのソフトウェアを生産するアプリケーションチームは、その作業を「インナーループ」「アウターループ」に分けています。
インナーループは共有またはローカルの開発環境で構成され、開発者は適切なリソースやクラウドネイティブ・アプリケーションパターンにセルフサービスでアクセスできます。
外側のループでは、DevOps、プラットフォーム運用、セキュリティの各チームが、開発者と協力してアプリケーションを本番環境に導入し、維持します。
Tanzu Application Platform (TAP) では、これらの「インナーループ」「アウターループ」を中心に作業が行われるため、これらのグループの連携が容易になります。
開発者は生産性やフローの維持に役立つインナーループのツールを使いながら、コードに集中して作業を進めることができます。
本番環境でアプリを更新するために実行するコマンドが git push だけの場合、コンテキストの切り替えはほとんど行われません。
セキュリティチームとオペレーションチームは Application Accelerator の足場にガードレールを組み込みコード化することができるため、開発者にとってセキュリティやポリシーに関する懸念のほとんどが解消されます。
・コンプライアンスの徹底が自動化され
・セキュリティはシフトレフトに組み込まれ
・セキュリティが後回しにされることはなく
・開発者が最初からやり直したり、VM 用に設計された時代遅れのルールにクラウドネイティブアプリを押し込む必要がなくなる
誰もがこれらのメリットを享受できるようになります。
Opsチームにとっても、コンテナイメージの依存関係の更新などを開発者に頼らずに済むのは嬉しいはずです。
脆弱性が発生した場合には VMware Tanzu Build Service によってコンテナの継続的なビルドとメンテナンスが一元化されているため、運用チームとセキュリティチームは、開発者の手を煩わせることなく、影響を受けたコンテナをすべて修正することができます。
またCI/CDパイプラインの運用、ネットワークの設定、Kubernetesの基本的な保守など、Opsチームが担当するその他の活動(DevOpsにおけるOps)は、アウターループで処理され、オペレーターは開発者の邪魔になることなく、最高の仕事をすることができます。
開発者自身が外部のアプリケーション、サービス、インフラを自由につなぎ合わせて活用できるように
マイクロサービスアーキテクチャは、基本的にAPIファーストの構成であり、サービスは相互を含む内部ソースおよび外部ソースと通信する必要があります。
Tanzu Application Platform (TAP) の API ポータルでは、シンプルなインターフェースで社内外の API にアクセスできます。
また開発者はコードを書くことなく、エンドポイントを直接試し、サンプルレスポンスを受け取ることができます。
一方、運用担当者はポータルの管理機能を利用して、アプリケーションの数に応じて API の使用量が増加しても、API の安全性、コンプライアンス、パフォーマンスが維持されていることを確認できます。
API を発見することは重要ですが、API を介したサービスの接続を容易にするためには、優れたゲートウェイが必要です。
Spring Cloud Gateway for Kubernetesは、社内外のアプリケーションやマイクロサービス間のインタラクションを実装する際に、開発者が分散したゲートウェイサービスインスタンスにルートを設定できるようにします。
また従来のようなチケットベースのワークフローや煩雑なAPIゲートウェイアプライアンスではなく、Tanzu Application Platform (TAP) のサービスバインディング時に JSON でルートを設定します。
つまり開発者は IDE や git から離れることなく、この作業を行うことができます。
Tanzu Application Platform (TAP) では、アプリケーションへのAPI接続を容易にするだけでなく、他のアプリケーションやインフラからのイベントを簡単に消費することができます。
これは Cloud Native Runtimes for VMware Tanzu によって実現されており、TriggerMesh イベント統合プラットフォームを使用し、さまざまなタイプのイベントソースとコンシューマーを接続します。
TriggerMesh は Kubernetes 上で動作するイベントドリブンなアーキテクチャを持つクラウドネイティブアプリケーションから、外部のイベントソースをアンロックします。
この記事が気に入ったらサポートをしてみませんか?