20240326_NET Aspire概要

3.9K Views

March 26, 24

スライド概要

2024年3月26日 C# Tokyoイベントで話した資料です
https://csharp-tokyo.connpass.com/event/312383/

profile-image

New Relic株式会社、Technical Support Manager.

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

マスター タイトルの書式設定 .NET Aspire 概要 C# Tokyoオンラインイベント 2024/3/26 @tanaka_733 1

2.

マスター @tanaka_733 自己紹介 タイトルの書式設定 • C# Tokyo運営メンバー • Microsoft MVP for Developer Technologies • 最近の興味 • .NET Aspire • Radius Project ブログ • OpenTelemetry .NET ブログ • OpenFeature .NET • .NETでAI 2 2

3.

マスター タイトルの書式設定 今日のAgenda • .NET Aspireとは • 以前の資料を一部更新して引用 https://www.docswell.com/s/tanaka_733/KXYV8M-20240118dotnetaspire • .NET Aspire最新情報 • .NET Aspireの機能 • デモやサンプルアプリから見るAspireの実例 3 3

4.

マスター タイトルの書式設定 .NET Aspireとは 4 4

5.

マスター .NET Aspireとは? タイトルの書式設定 • .NET Aspire は、監視可能で本番環境に対応した分散アプリケー ションを構築するための独自のクラウド対応スタックです。 • .NET Aspire は、クラウドネイティブの特定の懸念事項を処理する NuGet パッケージのコレクションを通じて提供されます。 • ASP.NET Coreなど既存のフレームワークに代わるものではない https://learn.microsoft.com/ja-jp/dotnet/aspire/getstarted/aspire-overview より引用 5 5

6.

マスター .NET Aspireが支援するもの タイトルの書式設定 • オーケストレーション • マルチプロジェクトアプリとその依存関係を実行および接続 • アプリの構成、サービス検出、接続文字列の管理 • コンポーネント • サービスへの接続を容易にするNuGetパッケージ • サービス: RedisやPostgreSQL、クラウドサービスなど • アプリとの一貫したシームレスな接続を保証する標準化されたインターフェイスを提供 • ツール • Visual Sutdio用プロジェクトテンプレートや、アプリの作成や管理を行うdotnet CLI • 構造化ログ、メトリクス、トレースなどを計測するOpenTelemetry • ヘルスチェックエンドポイント • サービス検出 6 6

7.

マスター タイトルの書式設定 Aspireの概念 https://learn.microsoft.com/jajp/dotnet/aspire/fundamentals/ app-hostoverview?WT.mc_id=AZ-MVP5000211 より引用 7 7

8.

マスター タイトルの書式設定 Aspireの用語 • リソース:アプリケーションの一部(の要素) .NET プロジェクト、コンテナー、実行ファイル、 データベース、キャッシュ、クラウドサービスなど • アプリモデル:分散アプリケーションを構成するリソースの集合 • アプリホストあるいはオーケストレータープロジェクト: アプリモデルをオーケストレーションするプロジェクト。 *.AppHost という名前のプロジェクト • 参照:リソース間の接続を定義し、依存関係として表現 8 8

9.

マスター タイトルの書式設定 Aspireの概念(再掲) 9 9

10.

マスター タイトルの書式設定 .NET Aspire最新情報 10 10

11.

マスター .NET Aspire最新情報 タイトルの書式設定 • おおよそ1か月おきにpreviewが更新 • 2/14 preview3 • 3/13 preview4 • ドキュメントも更新 11 11

12.

マスターの主な更新 Preview4 タイトルの書式設定 • コンテナランタイムとしてPodmanをサポート • ダッシュボードのUXを改善しスタンドアロンで実行可能 • MySQLとMongoDBの管理ツールの導入 • コンテナリソースを追加する際にイメージ、タグなどを設定可能に • Azure SignalRやAI Searchの新しいコンポーネント • Redisなどのリソースを Azureのフルマネージドサービスにマッピングすることが可能に • Azure bicepリソースにより、bicepで定義したものをモデル化可能に 12 12

13.

マスター タイトルの書式設定 .NET Aspireの機能 主な機能の説明 13 13

14.

マスター タイトルの書式設定 リソースと参照 AppHostプロジェクトでAPIを利用してリソースと その参照を定義する 参照するプロジェクトに参照先の接続先情報が自動で設定される 14 14

15.

マスター タイトルの書式設定 基本のリソース3種 15 15

16.

マスター タイトルの書式設定 クラウドに依存しないリソース 16 16

17.

マスター タイトルの書式設定 Azure固有のリソース 17 17

18.

マスター タイトルの書式設定 コンポーネント • RedisやPostgreSQLなどのミドルウェア(サービス) との統合を容易にするためのライブラリ • 現時点ではMySQL, MongoDBを含むデータベースや Redis、Kafka、RabbitMQなどのミドルウェアに加えて Azureのいくつかのサービスに対応 18 18

19.

マスター タイトルの書式設定 サンプルアプリで見るコンポーネントの例(VolumeMount) • https://github.com/dotnet/aspire-samples/tree/main/samples/VolumeMount 19 19

20.

マスター タイトルの書式設定 AppHostプロジェクトでリソースを定義 20 20

21.

マスター タイトルの書式設定 利用するプロジェクトでコンポーネントライブラリを追加 21 21

22.

マスター タイトルの書式設定 Aspireダッシュボード • アプリケーションモデルを一覧表示するリソースビューと オブザーバビリティを提供するログ、トレース、メトリクス のビューから構成される • ローカル開発時はAppHostを起動すると自動的に立ち上がる • 運用環境向けに独立して動作させることも可能 22 22

23.

マスター タイトルの書式設定 サービス検出 AppHostでこのような参照を定義した場合 frontendプロジェクト側ではこのようなドメインで接続できる 23 23

24.

マスター タイトルの書式設定 オブザーバビリティ • OpenTelemetry(OTEL)を利用したテレメトリーデータの取得が デフォルトで計装されている • ローカル開発ではAppHostのダッシュボードにOTELサーバー・表示機能が実装済み • 各プロジェクトに自動的に送信先が設定されるので、原則設定不要 • 運用環境では好きなバックエンドに送信可能 • 独立して稼働させているダッシュボードにも送信可能 • 送信先は各コンポーネントとなるプロジェクトの環境変数に設定 • OTEL .NETの仕様に従う。詳細はドキュメント参照。 • デフォルトの計装の設定はServiceDefaultプロジェクトに記述 • OpenTelemetryとは?OpenTelemetry .NETとは?についてはこちらのブログ参照 https://tech.tanaka733.net/archive/category/OpenTelemetry 24 24

25.

マスター タイトルの書式設定 デプロイメント • Aspireは.NETとコンテナをサポートする環境 であればデプロイ可能 • 現時点ですぐにデプロイできる環境はAzure Container Apps • azdコマンドを利用してデプロイを行う(次ページ) • そのほかの環境向けにはAppHostプロジェクトから マニフェストファイルを生成することが可能 • このマニフェストファイルを読み取って 任意の環境に展開することができる 25 25

26.

マスター タイトルの書式設定 デプロイメント 26 26

27.

マスター タイトルの書式設定 デモやサンプルアプリから見る Aspireの実例 具体的なコードを見てみよう 27 27

28.

マスター タイトルの書式設定 Volumeによる永続化ストレージの利用 • https://github.com/dotnet/aspire-samples/tree/main/samples/VolumeMount 28 28

29.

マスター タイトルの書式設定 Volumeを利用するコード 29 29

30.

マスター タイトルの書式設定 Volumeによる永続化ストレージの利用 30 30

31.

マスター タイトルの書式設定 WPF、WinFormとの連携 • https://github.com/dotnet/aspire-samples/tree/main/samples/ClientAppsIntegration • クライアントアプリとAPIアプリをオーケストレーション 31 31

32.

マスター タイトルの書式設定 WPF、WinFormとの連携 AppHostプロジェクトのProgram.cs 32 32

33.

マスター タイトルの書式設定 WPF、WinFormとの連携 WPFプロジェクトのProgram.cs DIの設定を行い、APIクライアント(HttpClient)を設定している 33 33

34.

マスター タイトルの書式設定 Orleansとの連携 • https://github.com/dotnet/aspiresamples/blob/main/samples/OrleansVoting/README.md 34 34

35.

マスター タイトルの書式設定 ご清聴ありがとうございました 35