4.7K Views
March 26, 24
スライド概要
2024年3月26日 C# Tokyoイベントで話した資料です
https://csharp-tokyo.connpass.com/event/312383/
New Relic株式会社、Technical Support Manager.
マスター タイトルの書式設定 .NET Aspire 概要 C# Tokyoオンラインイベント 2024/3/26 @tanaka_733 1
マスター @tanaka_733 自己紹介 タイトルの書式設定 • C# Tokyo運営メンバー • Microsoft MVP for Developer Technologies • 最近の興味 • .NET Aspire • Radius Project ブログ • OpenTelemetry .NET ブログ • OpenFeature .NET • .NETでAI 2 2
マスター タイトルの書式設定 今日のAgenda • .NET Aspireとは • 以前の資料を一部更新して引用 https://www.docswell.com/s/tanaka_733/KXYV8M-20240118dotnetaspire • .NET Aspire最新情報 • .NET Aspireの機能 • デモやサンプルアプリから見るAspireの実例 3 3
マスター タイトルの書式設定 .NET Aspireとは 4 4
マスター .NET Aspireとは? タイトルの書式設定 • .NET Aspire は、監視可能で本番環境に対応した分散アプリケー ションを構築するための独自のクラウド対応スタックです。 • .NET Aspire は、クラウドネイティブの特定の懸念事項を処理する NuGet パッケージのコレクションを通じて提供されます。 • ASP.NET Coreなど既存のフレームワークに代わるものではない https://learn.microsoft.com/ja-jp/dotnet/aspire/getstarted/aspire-overview より引用 5 5
マスター .NET Aspireが支援するもの タイトルの書式設定 • オーケストレーション • マルチプロジェクトアプリとその依存関係を実行および接続 • アプリの構成、サービス検出、接続文字列の管理 • コンポーネント • サービスへの接続を容易にするNuGetパッケージ • サービス: RedisやPostgreSQL、クラウドサービスなど • アプリとの一貫したシームレスな接続を保証する標準化されたインターフェイスを提供 • ツール • Visual Sutdio用プロジェクトテンプレートや、アプリの作成や管理を行うdotnet CLI • 構造化ログ、メトリクス、トレースなどを計測するOpenTelemetry • ヘルスチェックエンドポイント • サービス検出 6 6
マスター タイトルの書式設定 Aspireの概念 https://learn.microsoft.com/jajp/dotnet/aspire/fundamentals/ app-hostoverview?WT.mc_id=AZ-MVP5000211 より引用 7 7
マスター タイトルの書式設定 Aspireの用語 • リソース:アプリケーションの一部(の要素) .NET プロジェクト、コンテナー、実行ファイル、 データベース、キャッシュ、クラウドサービスなど • アプリモデル:分散アプリケーションを構成するリソースの集合 • アプリホストあるいはオーケストレータープロジェクト: アプリモデルをオーケストレーションするプロジェクト。 *.AppHost という名前のプロジェクト • 参照:リソース間の接続を定義し、依存関係として表現 8 8
マスター タイトルの書式設定 Aspireの概念(再掲) 9 9
マスター タイトルの書式設定 .NET Aspire最新情報 10 10
マスター .NET Aspire最新情報 タイトルの書式設定 • おおよそ1か月おきにpreviewが更新 • 2/14 preview3 • 3/13 preview4 • ドキュメントも更新 11 11
マスターの主な更新 Preview4 タイトルの書式設定 • コンテナランタイムとしてPodmanをサポート • ダッシュボードのUXを改善しスタンドアロンで実行可能 • MySQLとMongoDBの管理ツールの導入 • コンテナリソースを追加する際にイメージ、タグなどを設定可能に • Azure SignalRやAI Searchの新しいコンポーネント • Redisなどのリソースを Azureのフルマネージドサービスにマッピングすることが可能に • Azure bicepリソースにより、bicepで定義したものをモデル化可能に 12 12
マスター タイトルの書式設定 .NET Aspireの機能 主な機能の説明 13 13
マスター タイトルの書式設定 リソースと参照 AppHostプロジェクトでAPIを利用してリソースと その参照を定義する 参照するプロジェクトに参照先の接続先情報が自動で設定される 14 14
マスター タイトルの書式設定 基本のリソース3種 15 15
マスター タイトルの書式設定 クラウドに依存しないリソース 16 16
マスター タイトルの書式設定 Azure固有のリソース 17 17
マスター タイトルの書式設定 コンポーネント • RedisやPostgreSQLなどのミドルウェア(サービス) との統合を容易にするためのライブラリ • 現時点ではMySQL, MongoDBを含むデータベースや Redis、Kafka、RabbitMQなどのミドルウェアに加えて Azureのいくつかのサービスに対応 18 18
マスター タイトルの書式設定 サンプルアプリで見るコンポーネントの例(VolumeMount) • https://github.com/dotnet/aspire-samples/tree/main/samples/VolumeMount 19 19
マスター タイトルの書式設定 AppHostプロジェクトでリソースを定義 20 20
マスター タイトルの書式設定 利用するプロジェクトでコンポーネントライブラリを追加 21 21
マスター タイトルの書式設定 Aspireダッシュボード • アプリケーションモデルを一覧表示するリソースビューと オブザーバビリティを提供するログ、トレース、メトリクス のビューから構成される • ローカル開発時はAppHostを起動すると自動的に立ち上がる • 運用環境向けに独立して動作させることも可能 22 22
マスター タイトルの書式設定 サービス検出 AppHostでこのような参照を定義した場合 frontendプロジェクト側ではこのようなドメインで接続できる 23 23
マスター タイトルの書式設定 オブザーバビリティ • OpenTelemetry(OTEL)を利用したテレメトリーデータの取得が デフォルトで計装されている • ローカル開発ではAppHostのダッシュボードにOTELサーバー・表示機能が実装済み • 各プロジェクトに自動的に送信先が設定されるので、原則設定不要 • 運用環境では好きなバックエンドに送信可能 • 独立して稼働させているダッシュボードにも送信可能 • 送信先は各コンポーネントとなるプロジェクトの環境変数に設定 • OTEL .NETの仕様に従う。詳細はドキュメント参照。 • デフォルトの計装の設定はServiceDefaultプロジェクトに記述 • OpenTelemetryとは?OpenTelemetry .NETとは?についてはこちらのブログ参照 https://tech.tanaka733.net/archive/category/OpenTelemetry 24 24
マスター タイトルの書式設定 デプロイメント • Aspireは.NETとコンテナをサポートする環境 であればデプロイ可能 • 現時点ですぐにデプロイできる環境はAzure Container Apps • azdコマンドを利用してデプロイを行う(次ページ) • そのほかの環境向けにはAppHostプロジェクトから マニフェストファイルを生成することが可能 • このマニフェストファイルを読み取って 任意の環境に展開することができる 25 25
マスター タイトルの書式設定 デプロイメント 26 26
マスター タイトルの書式設定 デモやサンプルアプリから見る Aspireの実例 具体的なコードを見てみよう 27 27
マスター タイトルの書式設定 Volumeによる永続化ストレージの利用 • https://github.com/dotnet/aspire-samples/tree/main/samples/VolumeMount 28 28
マスター タイトルの書式設定 Volumeを利用するコード 29 29
マスター タイトルの書式設定 Volumeによる永続化ストレージの利用 30 30
マスター タイトルの書式設定 WPF、WinFormとの連携 • https://github.com/dotnet/aspire-samples/tree/main/samples/ClientAppsIntegration • クライアントアプリとAPIアプリをオーケストレーション 31 31
マスター タイトルの書式設定 WPF、WinFormとの連携 AppHostプロジェクトのProgram.cs 32 32
マスター タイトルの書式設定 WPF、WinFormとの連携 WPFプロジェクトのProgram.cs DIの設定を行い、APIクライアント(HttpClient)を設定している 33 33
マスター タイトルの書式設定 Orleansとの連携 • https://github.com/dotnet/aspiresamples/blob/main/samples/OrleansVoting/README.md 34 34
マスター タイトルの書式設定 ご清聴ありがとうございました 35