3.3K Views
May 27, 23
スライド概要
.NETラボ 勉強会 2023年5月
https://dotnetlab.connpass.com/event/281932/
Kubernetes でマイクロサービス対応アプリケーションを開発しようとする場合、Java/Spring や .NET、Node での開発は得意であっても、クラウドインフラの管理は苦手という開発者は多いでしょう。
Azure、AWS、GCP などの1つで実行することが決まっている場合にも、アプリをクラウドにデプロイしたり、AI やメッセージングなどのサービスを利用したり、運用や監視を行ったり、をもっと簡単に行いたいという要望です。
またマイクロサービスアプリケーションの場合、アプリを動かすクラウドインフラ自体の管理もさることながら、ライフサイクルの管理が困難であったり、アプリのトラブルシューティングが難しいという課題もあります。
そこで、これら2つの課題を解決する方法として、Tanzu Application Platform と Azure Spring Apps について、デモを交えてご紹介します。
ヴイエムウェア株式会社 プリンシパルエンタープライズアーキテクト。Microsoft で13年間、テクニカルエバンジェリストとして .NET、Visual Studio、Windows、iOS、Android、Microsoft Azure 等の開発者向け最新技術啓発活動を実施。その後、Dell、Accenture、Elastic 等を通じて現職でも同様の活動を実施。 2019年4月〜2021年8月迄、内閣官房 IT 総合戦略室 政府 CIO 補佐官を兼務、2021年9月〜2024年3月迄、デジタル庁 PjM ユニット ソリューションアーキテクトを兼務。
Tanzu Application Platform と Azure Spring Apps による マイクロサービスアプリケーション 開発のアジリティの向上 鈴⽊ 章太郎 ヴイエムウェア株式会社 戦略ビジネス推進本部 主席エンタープライズアーキテクト ©2023 VMware, Inc.
鈴⽊ 章太郎 Twitter : @shosuz ヴイエムウェア株式会社 戦略ビジネス推進本部 主席エンタープライズアーキテクト Microsoft で13年間、テクニカルエバンジェリストと して .NET、Visual Studio、Windows、iOS、 Android、Microsoft Azure 等の開発者向け 技術啓発活動を実施。 その後 Dell、Accenture、Elastic での開発者 向け技術啓発活動等を経て現職。 2019年4⽉より内閣官房 IT 総合戦略室 政府 CIO 補佐官、2021年9⽉よりデジタル庁 省庁業 務サービスグループソリューションアーキテクトを兼務。 ©2023 VMware, Inc.
Agenda l Kubernetes でマイクロサービス対応アプリを開発する際の課題 l Tanzu Application Services l Azure Spring Apps Enterprise l まとめ ©2023 VMware, Inc. 3
Kubernetes でマイクロサービス 対応アプリを開発する際の課題 │ © VMware, Inc. 4
プロダクショングレードの Kubernetes デプロイメントで考慮すべき主要パターン • Infrastructure as a Code (IaC) ベースのオプションでプラットフォームを セットアップすれば、⼿動でのデプロイを減らし、より⼀貫性、信頼性、再現性の⾼ いものにする。Terraform、Pulumi 等のツールはこの領域で考慮される場合あり • Observability ツール、プロセス、プラクティスの適切なセットを選択することは、 デプロイされたクラスタのすべてのイベントの集中的なロギング、モニタリング、トレース、 イベント化にとって重要。Grafana、Prometheus、Elastic、loki などの複数の ツールがこの領域で考慮されることがある • SSL 証明書管理による集中型 Ingress Controller により、内部 CA または外部承認 CA が発⾏した有効な HTTPs 証明書による pods への着信 トラフィックを管理する • API、ダッシュボード、デプロイメントに RBAC (Role-Based Access Control) ポリシーに よる最⼩特権の原則を適⽤。さらに、外部のソリューションを 使って、Auth2/OIDC を使って、プラットフォームツールとアプリケーションの両⽅で 認証と 認可を管理することができる • GitOps の原則を導⼊し、 kubectl apply ⽅式ではなく、アプリケーションや k8s 構成の 望ましい状態設定を管理することで、変更を100%追跡可能にし、 簡単に⾃動化して管理できるようにする。ArgoCD や Flux のようなツールは、 この分野では完璧な候補となり得る • Hashicorp Vault、Bitnami Sealed Secrets、AWS Secrets Manager などの中央管理ツールを使ったシークレット管理、External Secrets Operator などの中央秘密オペレータを使ったシークレット管理。従来はアプリケー ションの範囲外だった環境変数や設定を管理するのに役⽴つ。RBAC を使⽤して、 Kubernetes のシークレットからすべての開発者をロックアウトするオプションを提供 • 参考:- https://lnkd.in/gwvPCw4h │ © VMware, Inc. 5
Spring でのマイクロサービス開発の課題 クラウドインフラ管理、ライフサイクル管理、トラブルシューティング Spring Boot アプリケーション を動かすクラウドインフラの 管理作業 アプリケーションライフ サイクルの管理が困難 アプリの コンシューマ Spring Cloud コンポーネント Spring Cloud Apps ブレーカー ダッシュボード Spring Cloud コンポーネント クラウド サービス サービス レジストリ マイクロサービス IoT メッセージ ブローカー マイクロサービス モバイル API ゲートウェイ データベース アプリケーションの問題の トラブルシューティング │ © VMware, Inc. マイクロサービス ブラウザ コンフィグ ダッシュボード 分散 トレーシング 6
Kubernetes での開発の課題 クラウドへのデプロイ、AI/メッセージング等のサービス利⽤、運⽤監視の⾃動化 継続的インテグレーション アイディア コード YAML Dockerfile の準備 YAML イメージの 作成とプッシュ 継続的デリバリー YAML YAML YAML K8sへの ベスト サービスと kubectl デプロイ プラクティス Ingress の apply の追加 YAML YAML YAML 構成 YAML 開発者はコードに専念できない︕ プラットフォームを意識したアプリケーション アプリケーション の実⾏ コンテナランタイム / オーケストレーション │ © VMware, Inc. 7
2つの課題を解決する製品 VMware Tanzu Application Platform: AKS (Kubernetes) 上の開発者体験を向上するアプリケーションプラットフォーム Microsoft Azure Spring Apps: Spring Boot マイクロサービス向けの完全なマネージドサービス │ © VMware, Inc. 8
Tanzu Application Platform │ © VMware, Inc. 9
Tanzu Application Platform AKS (Kubernetes)上の開発者体験を向上するアプリケーションプラットフォーム デベロッパーの⽣産性向上 ⾼速なビルドと持続可能な 本番環境へのパス デベロッパーとインフラ エンジニアの仕事を調整 │ © VMware, Inc. 10
開発者の⽣産性向上 標準環境の構築により、開発チーム全体の標準化を促進、チームの⽣産性を向上 プロジェクト開始にどれくらいの期間を要していますか︖ ❗ 開発チームの標準ポータル ❗ アプリケーションの標準テンプレート 開発環境の構築にどれくらいの期間を要していますか︖ プロジェクト標準はお持ちですか︖ ❗ アプリケーションフレームワーク (Spring) ❗ 開発者の⽣産性を阻害しない開発環境 アプリケーションの標準テンプレート ü 多様な⾔語によるプロジェクトの標準テンプレートにより、 プロジェクトの開始をスムーズに ü 雛形のコードを⾃動⽣成 │ © VMware, Inc. 組織カタログ、APIポータル ü 標準APIやデータアクセスのためのポータルを提供 11
参考︓.NET アプリをクラウド上の Tanzu Application Platform に デプロイしてみよう︕(.NET Lab 3⽉セッション) https://www.docswell.com/s/shosuz/ZP99LX-2023-03-25-162941 │ © VMware, Inc. 12
Demo Application Accelerator Source to URL Live Update Live View Confidential │ ©2021 VMware, Inc. 13
デモのシナリオ 1. TAP GUI より Java アプリの雛形テンプレートをダウンロードする 2. IDE ツール + Java コードをベースにライブアップデート機能を通してスクラッチから ビルドしてコンテナアプリとして AKS 上にデプロイする 3. IDE ツール上にある Java コードを変更し、その変更されたコードが即時にリモートの AKS 上のコンテナアプリ上で反映されることを確認する 4. ライブビュー機能を利⽤してコンテナアプリの状態を確認する │ © VMware, Inc. 14
デモ環境 ブラウザ経由で URL にアクセス URL を提供 LB Google Chrome VScode Tanzu plugin Tanzu Application Platform にアクセス (⾮機能要件は TAP が対応) Pod Pod PV PV Tanzu Application Platform AKS Local PC │ © VMware, Inc. 15
│ © VMware, Inc. 16
ライブアップデートの仕組み ② Watch workload Supply Chain Cartographer ① Liveupdate ③ supply chain ④ Watch Flux/ Source Controller IDE + Tilt Build Service Convention Service Service Bindings K8s Resource Kapp ⑤ Deploy Cloud Native Runtimes │ © VMware, Inc. 17
ライブアップデートの仕組み ② Watch workload Supply Chain Cartographer ① Liveupdate ③ supply chain ④ Watch Flux/ Source Controller IDE + Tilt Build Service Convention Service Service Bindings K8s Resource Kapp ⑤ Deploy ⑥Live Reload/ Stream change to Pod │ © VMware, Inc. Cloud Native Runtimes 18
⾼速なビルドと持続可能な本番環境へのパスを提供 CI/CD プロセスとコンテナのデプロイ、セキュリティに柔軟性を提供 コードのビルド、テスト、デプロイにどれくらいの時間を ❗ DevSecOps 要していますか︖ ❗ シフトレフトセキュリティ コードの変更からデプロイにどれくらいの時間を要してい ❗ サプライチェーン ますか︖ 開発の早期からセキュリティを担保していますか︖ │ © VMware, Inc. 19
Demo すぐに使えるサプライチェーン 1. source-test-to-url 2. source-test-scan-to-url Confidential │ ©2021 VMware, Inc. 20
サプライチェーンにおけるツールのバリエーション 普段使っているツールをそのまま利⽤できる ソースコード 管理 変更トリガー │ © VMware, Inc. ⾃動テスト コード スキャン 開発⾔語を識 別し、ビルド イメージ スキャン イメージ レポジトリ K8s 構成管理 Workload 実⾏ 21
│ © VMware, Inc. 22
デベロッパーとインフラエンジニアの仕事とを調整 標準環境の構築により、開発チーム全体の標準化を促進、チームの⽣産性を向上 開発環境 ü テンプレートや開発環境の標準化 ü 開発チームには⾃由度の⾼い開発環境を提供 ü ⾃社開発チームも委託開発チームも⾃⾝の環境で⾃由に スピーディに開発を進められる インナーループ │ © VMware, Inc. テスト/ステージング/本番環境 ü ü ü ü テスト⼯程以降は、ガバナンスとセキュリティを厳格に守る DevSecOps によりデプロイのスピードを維持 サプライチェーンによる柔軟なデプロイプロセスの⾃動化 あらゆるクラウド / Kubernetes で実⾏可能 アウターループ 23
Azure Spring Apps Enterprise │ © VMware, Inc. 24
Azure Spring Apps Spring Boot マイクロサービス向けの完全なマネージドサービス Azure のエコシステムとサービスの多くの選択肢と完全な統合 Azure Active Directory Azure Monitor DIY with Spring Boot 責務 Azure Spring Apps Service アプリケーションの統合、デバッグ Azure Database for MySQL Azure Cosmos DB CI/CD クラスタのビルドと管理 メトリクス ログ トレーシング サービス バインディング Managed Identities Service Principals Azure Spring Apps Service Runtime User Environment Azure Cache for Redis Spring Cloud ミドルウェアのホスト モニタリングとロギング Config Git リポジトリ Source App 1 App 2 App N Config Server Service Registry Lifecycle Mgmt. App Resiliency Log Stream Data Encryption Custom Domain SelfDiagnostics スケーリング パッチ Azure DevOps CI/CD サポート Azure Spring Apps agents GitHub お客様 VMware Microsoft Jenkins │ © VMware, Inc. Azure Kubernetes Service 25
開発のスピードアップ、効率化 組み込み型のアプリケーションライフサイクル管理 アプリケーションライフ サイクル管理を簡素化 Azure Spring Apps ソースコードの容易な デプロイと成果物のビルド アプリと Spring Apps インフラ を⾃動的に接続 デプロイのための完全に統合 された CI/CD パイプライン │ © VMware, Inc. 26
Demo ACME Fitness Application Confidential │ ©2021 VMware, Inc. 27
ACME フィットネスアプリで検証できること ACME フィットネスストアアプリのアーキテクチャ •Azure Spring Apps サービスインスタンスを プロビジョニング •Application Configuration Service リポジトリの構成 •多⾔語アプリケーションを Azure にデプロイし、 Tanzu Build Service を使⽤してビルドする •Spring Cloud Gateway を使⽤してアプリ ケーションへのルーティングを構成する •アプリケーションを開く •API ポータルでアプリケーション API を探索 する •アプリケーションのシングルサインオン (SSO) を構成する •アプリケーションを監視する •GitHub Actions を使⽤してプロビジョニング とデプロイメントを⾃動化する │ © VMware, Inc. • Java Spring Boot アプリケーション (3) : • ⼊⼿可能な製品を取得するためのカタログ サービス。このアプリケーションは Azure AD 認証を使⽤して PostgreSQL に接続 • ユーザーの注⽂に対する⽀払いを処理および承認するための決済サービス • 認証されたユーザーを参照するためのアイデンティティ サービス • Python アプリケーション (1) : • ユーザーが購⼊した商品を管理するためのカートサービス • ASP.NET Core アプリケーション (1) • カートに⼊っている商品を注⽂する注⽂サービス • NodeJS と静的 HTMLアプリケーション (1) • フロントエンドショッピングアプリケーション 28
│ © VMware, Inc. 29
│ © VMware, Inc. 30
運⽤の⼿間を省きながら Spring ポートフォリオを拡⼤ エンタープライズ規模での Spring アプリケーションのよりセキュアなデプロイと管理 フルマネージドサービスによる利便性の向上 スケーリングとグローバルデプロイオプションの改善 商⽤サポートによりシームレスな運⽤を維持 既存 API の管理と新規 API のコントローラ作成 エンタープライズで利⽤できるのツールや テンプレートを開発チームに提供 │ © VMware, Inc. 31
アプリケーションを常に把握 アプリの監視とトラブルシューティングが容易に Azure Monitor で価値のある インサイトを収集 集計されたログ、システム、 JVM メトリクスの表⽰ 分散トレースによるサービス リクエストの追跡 リアルタイムでログを ストリーム 閾値アラートによる問題の特定 │ © VMware, Inc. 32
エンタープライズグレードの⾰新的な機能を搭載 VMware Tanzu as a マネージドサービス クラウドネイティブパターン をデフォルトで活⽤ スタートまでの時間を短縮 • Application Accelerators • -マイクロサービスベースのアプリケー ションを単⼀のURLとして簡単に公開し、 管理 –アプリのテンプレートを利⽤して素 早くスタート • Tanzu Build Service –ソースコードから実⾏ワークロード を⾃動ビルド Spring Cloud Gateway • API portal -アプリ内のすべてのマイクロサービス に対してAPIドキュメントを⾃動⽣成し 検出 • 迅速なフィードバックループ でよりスマートなビルド • Application Live View –アプリベースのメトリクスとデバッグ で、開発中のアプリケーションの トラブルシューティングを容易に • Tanzu Buildpacks –⼀貫した再現性のあるビルドツールに より、「私のマシンでは動作するのに …」というエラーを排除 Service Registry & Config Service –クラウドネイティブツールを利⽤して マイクロサービスアーキテクチャを強化 │ © VMware, Inc. 33
│ © VMware, Inc. 34
│ © VMware, Inc. 35
Application Live View for VMware Tanzu 実⾏中のアプリの内部を⾒るための軽量なインサイトとトラブルシューティングのツール 主要な機能: • アプリの情報 • アプリの詳細 • 健全性 - アプリの準備状況、有効性、ディス ク容量 • 環境-システムプロパティ、システム環境、 構成プロパティ • ログレベル - 各アプリケーション⽤ • JVM の統計 - メモリとスレッドの詳細。 • HTTP リクエスト • キャッシュ • セッション • スケジュールされたタスク • Beans • メトリクス... │ © VMware, Inc. 36
Application Accelerator for VMware Tanzu 企業標準に沿ったテンプレートに基づく新規アプリケーションの作成 アーキテクトが準備 • エンタープライズアーキテクトは、Application Accelerator を使⽤して、組織内の開発者やオペレータ に、企業に適合した既製のコードと構成を提供 開発者は利⽤ • 開発者は Application Accelerator を使⽤して、企業 の標準に従った新しいプロジェクトを作成 │ © VMware, Inc. 37
Azure Spring Apps と Tanzu Application Platform Microsoft Azure 上でのアプリケーション開発の俊敏性を⾼める 2 つの⽅法 Azure Spring Apps Enterprise Tanzu Application Platform マネージド VS カスタマイズ Azure AKS 上に構築された マネージドサービス • • • • アプリケーション⾔語 Java/Spring 以外に C#/.NET、Python、 Go、Node.js も可能 Java/Spring メイン、C#/.NET、Python、Go、 Node.js 等 Kubernetes Microsoft Azure AKS マルチ Kubernetes ユースケース • リフト&シフト • あらゆるアプリケーションのモダナイズ • Spring Native アプリケーションの モダナイゼーション Spring Boot アプリケーションを Spring Cloud を活⽤するために移⾏ • Spring à Kubernetes アプリケーションへの モダナイズ マイクロソフトによる運⽤ お客様による運⽤ Spring/Java アプリケーションを Azure 上へ 移⾏ プラットフォーム運⽤ カスタマイズ可能、お客様による管理 ⾼度な設定が必要 中央の IT 統制構造との⾼い整合性 OS、⾔語、機能のカスタマイズ性 Kubernetes ネイティブ環境での近代化/実⾏が必要 なあらゆる⾔語のワークロードを⾒つけることが可能 Spring Boot/Spring Cloud アプリケーションを、 K8s ネイティブでクラウド間でポータブルなアプリ ケーションへの移⾏を⽀援 運⽤の容易さ │ © VMware, Inc. 柔軟性・拡張性 38
まとめ │ © VMware, Inc. 39
Agenda まとめ l Kubernetes でマイクロサービス対応アプリを開発する際の課題 l Tanzu Application Services l Azure Spring Apps Enterprise l まとめ ©2023 VMware, Inc. 40
リソース ©2023 VMware, Inc. 41
リソース⼀覧 • Kubernetes 環境でマルチクラウド対応の優れた開発者体験を提供 • VMware Tanzu Application Platform – マルチクラウド上の Kubernetes で稼働する アプリケーションの開発者体験を⾰新する開発・実⾏環境をリリース https://tanzu.vmware.com/jp/application-platform https://blogs.vmware.com/vmware-japan/2022/01/tanzu-application-platform.html • Azure Spring Apps https://learn.microsoft.com/ja-jp/azure/spring-apps/ • フィットネスストア サンプル アプリの概要 • クイックスタート: Enterprise プランを使⽤してアプリをビルドし Azure Spring Apps にデプロイする https://learn.microsoft.com/ja-jp/azure/spring-apps/quickstart-sample-app-acme-fitness-store-introduction https://learn.microsoft.com/ja-jp/azure/spring-apps/quickstart-deploy-apps-enterprise • GitHub Azure-Samples/acme-fitness-store https://github.com/Azure-Samples/acme-fitness-store ©2023 VMware, Inc. 42
VMware Japan Public Sector “Cloud Smart” Day 適切にクラウドを使い分けるマルチクラウド時代に求められる「クラウドスマート」に向けて July 13th, 2023, JAPAN Agenda オンライン開催 開催概要 プログラム [ ⽇時 ] [基調講演] 2023年7⽉13⽇(⽊) 13:30-16:50 「クラウドファースト」戦略から オンライン開催 「クラウドスマート」戦略の時代へ。 「統制され、最適化されたマルチクラウド」への [申込サイト] 転換に必要なクラウドスマート指針の考え⽅について 事前登録制 弊社公共 SE 本部本部⻑ 中島より解説します。 https://japan.zdnet.com/info/event/vmware/202307/ [⾃治体向けセッション] [参加対象 ] 官公庁団体における役員クラスの⽅、 ・⾃治体のクラウド利⽤状況と最新動向 情報システム関連部⾨のマネージャ、 ・クラウド活⽤の課題に対する解決策をご紹介 IT 担当者、システム開発者、パートナー企業 [ 主催 ] ・クラウドスマートワークショップのご案内 [官公庁向けセッション] ・中央省庁のクラウドスマート担当者や 主催 ︓ 朝⽇インタラクティブ 協賛 ︓ ヴイエムウェア株式会社 セキュリティ担当者のご登壇(調整中) ・官公庁システムのクラウド化への展望 ・防衛省向けセッションをご⽤意 ©2023 VMware, Inc. 43
Thank You for your attention! ©2023 VMware, Inc.