Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

マイクロサービス開発が捗る Project Tye

2020/11/27 C# Tokyo https://csharp-tokyo.connpass.com/event/189415/

  • Be the first to comment

  • Be the first to like this

マイクロサービス開発が捗る Project Tye

  1. 1. マイクロサービス開発が捗る Project Tye 2020/11/27 .NET 5 リリース記念 C# Tokyo イベント Yuta Matsumura #csharptokyo
  2. 2. 松村 優⼤ (Yuta Matsumura) Alterbooth Inc. Chief Technical Architect (C#, PHP, Azure, Consultant) Microsoft MVP - Developer Technologies Fukuoka.NET Organizer Twitter: @tsubakimoto_s #csharptokyo
  3. 3. 祝 .NET 5 リリース LTS ではないことに注意︕ サポート期間が気になる⼈は .NET Core 3.1 を使いましょう。 #csharptokyo
  4. 4. .NET でマイクロサービス開発 ASP.NET Core WebAPI / gRPC コンテナーイメージのサイズ軽減 パフォーマンス向上 #csharptokyo https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-
  5. 5. これまでのマイクロサービ ス開発 (.NET & VS) 1. ソリューションファイルに複数 のプロジェクトを登録する 2. マルチスタートアッププロジェ クトで各サービスを実⾏する 3. 他のサービスは Docker で実⾏ する ▶ ターミナルが分かれて⾯倒 #csharptokyo
  6. 6. アプリケーション開発以外にも学ぶことが多い。。。 Docker を使った開発⽅法 Kubernetes を使った開発⽅法 Kubernetes へのデプロイ⽅法 CNCF のサービスを使ったインフラ構成 ⼤事な知識だけど、開発環境としてはなるべく意識したくない #csharptokyo
  7. 7. Project Tye .NET 製のマイクロサービスア プリケーションの開発とデプ ロイを⽀援する 実験的なツー ル 。 https://github.com/dotnet/tye 5⽉の Micorsoft Build にて発 表され、現在も開発が続いて いる。 #csharptokyo https://devblogs.microsoft.com/aspnet/introducing-
  8. 8. 実験的ってどういうこと︖ 実験的 = Experimental プレビュー段階よりも前であり、今後の展開が明確になっていない。 ▶プレビューになるかもしれないし、クローズになるかもしれない。 Tye では public incubation project と表現されている。 つまり、今後ツールとして発展するかどうかは、みんなで盛り上げら れるかどうか次第︕ #csharptokyo https://github.com/dotnet/tye/blob/master/docs/FAQ.md
  9. 9. Project Tye でできること コマンドラインで⾊々できる ( tye ) YAML ファイルでサービスの構成管理ができる ( tye.yaml ) サービス間の依存関係やエンドポイントを解決してくれる コンテナーイメージを作成してくれる Kubernetes へのデプロイメントを⾃動化してくれる Ingress, Zipkin, Dapr, Azure Functions などをサポートしている #csharptokyo
  10. 10. Tye のインストール 1. Docker 2. .NET Core 3.1 SDK or .NET 5 SDK (後述) 3. dotnet tool install -g Microsoft.Tye ▶ グローバルツール ※ .NET Core グローバルツール $HOME/.dotnet/tools にインストールされ、マシン上の任意のディレ クトリからツールを呼び出すことができる。 (dotnet-ef とか libman とか) #csharptokyo https://www.nuget.org/packages/Microsoft.Tye/
  11. 11. Tye のバージョン .NET Core 3.1 SDK は必須です。 SDK Command .NET Core 3.1 dotnet tool install -g Microsoft.Tye --version "0.4.0-alpha.20371.1" .NET Core 3.1, .NET 5 dotnet tool install -g Microsoft.Tye --version "0.5.0-alpha.20555.1 ※ .NET 5 に対応した正式アナウンスは無い #csharptokyo
  12. 12. Tye コマンド コマンド名 説明 tye init tye.yaml を作成する tye run ローカルでアプリケーションを実⾏する tye build アプリケーションのコンテナーを作成する tye push アプリケーションのコンテナーをプッシュする tye deploy アプリケーションをデプロイする tye undeploy デプロイしたアプリケーションを取り除く #csharptokyo https://github.com/dotnet/tye/blob/master/docs/reference/commandline/README.md
  13. 13. tye.yaml Tye における構成ファイル。 サービスの実⾏情報、サービスの依存関係、オーケストレーション構 成などを定義する YAML ファイル。 YAML のスキーマ定義も公開されているため VSCode などではインテ リセンスも効く。 #csharptokyo https://github.com/dotnet/tye/blob/master/docs/reference/schema.md
  14. 14. ダッシュボードが便利 tye run でダッシュボードが ⾃動⽣成され、サービス⼀覧 から各アプリケーションにア クセス可能。 各アプリケーションのログを 参照することもできるため、 とても便利。 #csharptokyo
  15. 15. サービス間の HTTP 情報は⾃動構成 環境変数に⾃動的に保持される。 #csharptokyo
  16. 16. 環境変数︓フロントエンドの接続情報 Key Value SERVICE:FRONTEND:PROTOCOL http SERVICE:FRONTEND:PORT 54224 SERVICE:FRONTEND:HTTPS:PROTOCOL https SERVICE:FRONTEND:HTTPS:PORT 54225 SERVICE:FRONTEND:HTTPS:HOST localhost SERVICE:FRONTEND:HOST localhost #csharptokyo
  17. 17. 環境変数︓バックエンドの接続情報 Key Value SERVICE:BACKEND:PROTOCOL http SERVICE:BACKEND:PORT 54222 SERVICE:BACKEND:HTTPS:PROTOCOL https SERVICE:BACKEND:HTTPS:PORT 54223 SERVICE:BACKEND:HTTPS:HOST localhost SERVICE:BACKEND:HOST localhost #csharptokyo
  18. 18. 環境変数︓Redis への接続 Key Value CONNECTIONSTRINGS:REDIS localhost:6379 tye.yaml で以下のように定義しているから▼ - name: redis image: redis bindings: - port: 6379 connectionString: "${host}:${port}" #csharptokyo
  19. 19. 環境変数の補⾜ すべてのサービスに環境変数が網羅されます ( tye.yaml の env 以 外) ポート番号は指定していなければ毎回変わります サービス URI は IConfiguration.GetServiceUri(name) で取得可 ▶ NuGet : Microsoft.Tye.Extensions.Configuration #csharptokyo
  20. 20. デモ 1. ローカル開発 2. Azure Kubernetes Service へのデプロイ #csharptokyo
  21. 21. Appendix Introducing Project Tye | ASP.NET Blog GitHub - dotnet/tye .NET Conf 2020 関連動画 Keynote - Welcome to .NET 5 - YouTube Developing and Deploying Microservices with 'Tye' - YouTube Secretless Development from Local to Cloud with the New Azure SDKs, Project Tye, and Kubernetes - YouTube https://tsubalog.hatenablog.com/archive/category/Tye #csharptokyo

×