SlideShare a Scribd company logo
MagicOnion を
Container 化して
kubernetes で動かして
New Relicで監視する
2019/06/04
@tanaka_733
自己紹介
Senior Technical Support Engineer @ New Relic K.K.
◦ アプリケーションプラットフォーム監視(APM)のSaaSです
◦ 日本語サポートなど日本市場に注力しています
Microsoft MVP for Azure (2018 Jul- 2019 Jun)
◦ .NET Core on Linux, Kubernetes, Azureなどのお仕事してました
◦ Visual StudioやQ#などにも興味があります
ソーシャル活動
◦ Twitter: @tanaka_733
◦ Blog: 銀の光と碧い空
◦ Qiita (New Relic関連): https://qiita.com/takayoshitanaka
今日のテーマ
MagicOnion(サーバー側)を(Linux)コンテナ化して動かす
コンテナ化したアプリをkubernetes上で動かす
MagicOnion(サーバー側)をNew Relicで監視する
資料ででてくるコードはここにあります
https://gist.github.com/tanaka-
takayoshi/b64e74305029a5820b6386ddb1996749
MagicOnion
をコンテナ化
コンテナにしよう
Linuxコンテナで!
◦ .NET CoreなのでWindowsでも動くけどメリットがない
MagicOnion.Hostingを使おう
◦ Console.ReadLineはコンテナ上では期待通り動かないです
Listeningアドレスは 0.0.0.0 で
◦ コンテナこしのネットワークなのでlocalhostではないのです
MagicOnion.Hosting
Console.ReadLine()はコンテナ内だと待機せずプロセスが終了する
面倒でもHostingを使いましょう
Dockerfileの例
ASP.NET CoreでVisual Studioが用意してくれるDockerfileを流用
マルチステージビルドで動かすコンテナにソースコードや中間バイナリなどを入れないようにする
コンテナを
動かそう
コンテナをどこで動かすか
オンプレかクラウドか
AWSなら
◦ EKS, ECS
Azureなら
◦ ACI, AKS (コンテナでなければWebAppでも)
GCPなら
◦ GKE
などなどお好きなところで。
コンテナ化することで、同じコンテナイメージをどこでも動かせる。
20190604 Containerized MagicOnion on kubernetes with Observability with New Relic
Kubernetes?
https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/explore/explore-intro/
多くの場合、Node=仮想マシン
コンテナとvolumeをまとめた
もの。1つのアプリ。
永続化ストレージ
コンテナ化したアプリ
=さっき作ったコンテナイメージ
kubernetesでMagicOnion
Podの公開、ロードバランシング
Podのオートスケーリング
Redis Backplaneの準備
Podにする?外部サービス?
Podのデプロイ
Podのヘルスチェック
kubernetesでMagicOnion
とりあえずkubernetesで動かすとしたうえでの課題
◦ インターネットへの公開やロードバランシングどうしよう
◦ デプロイ(アプリの更新)どうしよう?
◦ ヘルスチェックどうしよう?
◦ スケーリングどうしよう?
◦ Redis Backplaneどうしよう?
詳細はLTなので省略(ご希望あればセッション枠ください)
ただ、kubernetesじゃなくても考慮は必要な項目(のはず)
Kubernetesであればその機能を活用することが可能
公開とロードバランシング
Kubernetesではサービスというオブジェクトを作ってPodと通信する
既存の機能はHTTPやTCP向けにまず作られているのでgRPC向けの考慮が必要
単純なTCPでのロードバランシングでよければ、TCP向けのサービスで問題ない
より複雑なバランシングが必要であればどこかにバランサー要素を入れる必要がある
◦ クラウドロードバランサ(ALBs)が対応してくれればうれしいけど
◦ Nginx-ingressとかenvoyとかIstioとかぐぐるといろいろ見つかるけど
とりあえず動かす場合の定義例
単純にdeploymentを作って、クラウドLoadBalancer で公開する例
New RelicでObservability
New Relicの.NET Coreコンテナ対応
基本的な流れはQiitaに書いてあります
◦ https://qiita.com/takayoshitanaka/items/6eef46d821704a7384dc
推奨手順はインストーラー実行なのでDockerfile内でインストール実行
◦ インストーラー実行せずともdllやconfigなどを一式コピーしても動作はする
.NET CoreではkestrelおよびIISのみデフォルトで監視
◦ Kestrelを使わないMagicOnionだとカスタムインスツルメンツが必要
New Relic用のDockerfile例
環境変数の設定
(ライセンスキーとアプリ名は
コンテナ起動時に指定しているので
ここでは省略)
Agentのインストーラーを
インターネットから取得してインストール
必要な設定ファイルをローカルから
所定の位置へコピー
kubernetesのdeploymentに
環境変数を追加
カスタムインスツゥルメント用config例
このXMLファイルを/usr/local/newrelic-netcore20-agent/extensions/ (Linuxでの既定)以下に追加する
カスタムインスツゥルメント用config例
Transactionに指定して測定したいメソッド1つにつき、1つtraceFactoryを作る
カスタム用のデフォルト メトリクスの名前を決める
アセンブリ名
クラス名
メソッド名
属性によるトランザクション指定と
イベントの記録
数値型はSingle推奨
20190604 Containerized MagicOnion on kubernetes with Observability with New Relic
20190604 Containerized MagicOnion on kubernetes with Observability with New Relic
まとめ
コンテナでもMagicOnionは動きます
◦ はやりのkubernetes上でも動きますよ
◦ コンテナに限らず、スケーリングなどの考慮は必要
New Relicで監視できます!
◦ コンテナ化+kubernetes環境ならExplorerあります
◦ カスタムイベント含め、各種メトリクスを監視
New RelicへのFeedbackください
◦ MagicOnionで動かすゲーム(アプリ)をNew Relicで監視したいけど、○○ができない!
◦ MagicOnionじゃないけど、ゲーム・アプリサーバーを監視したいけど(
◦ C#じゃないけど(まで大歓迎

More Related Content

What's hot (20)

PPTX
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
YutoNishine
 
PDF
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
 
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
PDF
IL2CPPに関する軽い話
Wooram Yang
 
PDF
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
TIS Inc.
 
PDF
より高品質なメディアサービスを目指す ABEMA の技術進化
Yusuke Goto
 
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
 
PDF
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
 
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
 
PPTX
なぜなにリアルタイムレンダリング
Satoshi Kodaira
 
PDF
ドメイン駆動設計とは何か 【入門編】
増田 亨
 
PDF
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
 
PDF
3分でわかるAzureでのService Principal
Toru Makabe
 
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
 
PDF
DockerとDocker Hubの操作と概念
Masahito Zembutsu
 
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
 
PDF
マイクロサービス 4つの分割アプローチ
増田 亨
 
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
PDF
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
YutoNishine
 
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
IL2CPPに関する軽い話
Wooram Yang
 
EventStormingワークショップ 〜かつてない図書館をモデリングしてみよう〜
TIS Inc.
 
より高品質なメディアサービスを目指す ABEMA の技術進化
Yusuke Goto
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
 
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
 
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
 
なぜなにリアルタイムレンダリング
Satoshi Kodaira
 
ドメイン駆動設計とは何か 【入門編】
増田 亨
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
 
3分でわかるAzureでのService Principal
Toru Makabe
 
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
 
DockerとDocker Hubの操作と概念
Masahito Zembutsu
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
 
マイクロサービス 4つの分割アプローチ
増田 亨
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
 

Similar to 20190604 Containerized MagicOnion on kubernetes with Observability with New Relic (20)

PPTX
C#エンジニアのためのdocker kubernetesハンズオン
Takayoshi Tanaka
 
PPTX
C#エンジニアのためのdocker kubernetesハンズオン (再)
Takayoshi Tanaka
 
PPTX
202202 open telemetry .net handson
Takayoshi Tanaka
 
PDF
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
 
PDF
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
whywaita
 
PDF
2018 07-19dist
Yuji Oshima
 
PPTX
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
オラクルエンジニア通信
 
PDF
20210129 azure webapplogging
Takayoshi Tanaka
 
PPTX
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
 
PDF
Kubernetesセキュリティの歩き方
LIFULL Co., Ltd.
 
PDF
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
Hitachi, Ltd. OSS Solution Center.
 
PDF
インフラチームの歴史とこれから
bitbank, Inc. Tokyo, Japan
 
PPTX
Sit tokyo2022 how_to_develop_own_migration_object
KoichiroOgawa
 
PDF
OpenStackアップストリーム活動実践 中級
Takashi Natsume
 
PPTX
Running Kubernetes on Azure
Masaki Yamamoto
 
PDF
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
 
PPTX
OSSのクラウド基盤 OpenStack / CloudStack
VirtualTech Japan Inc.
 
PPTX
Edge Computing と k8s でなんか話すよ
VirtualTech Japan Inc.
 
PPTX
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
 
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
 
C#エンジニアのためのdocker kubernetesハンズオン
Takayoshi Tanaka
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
Takayoshi Tanaka
 
202202 open telemetry .net handson
Takayoshi Tanaka
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
Koto Shigeru
 
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
whywaita
 
2018 07-19dist
Yuji Oshima
 
OCHaCafe2#5 変幻自在♪ 広がるKubernetesのエコシステム
オラクルエンジニア通信
 
20210129 azure webapplogging
Takayoshi Tanaka
 
5分でわかる Capabilities と Privilege + KubeCon Recap
Masaya Aoyama
 
Kubernetesセキュリティの歩き方
LIFULL Co., Ltd.
 
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
Hitachi, Ltd. OSS Solution Center.
 
インフラチームの歴史とこれから
bitbank, Inc. Tokyo, Japan
 
Sit tokyo2022 how_to_develop_own_migration_object
KoichiroOgawa
 
OpenStackアップストリーム活動実践 中級
Takashi Natsume
 
Running Kubernetes on Azure
Masaki Yamamoto
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
VirtualTech Japan Inc.
 
OSSのクラウド基盤 OpenStack / CloudStack
VirtualTech Japan Inc.
 
Edge Computing と k8s でなんか話すよ
VirtualTech Japan Inc.
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
Nobuyuki Tamaoki
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
 
Ad

More from Takayoshi Tanaka (20)

PDF
deep dive distributed tracing
Takayoshi Tanaka
 
PPTX
202109-New_Relic-for-csharp-engineers
Takayoshi Tanaka
 
PDF
20201127 .NET 5
Takayoshi Tanaka
 
PPTX
Unity(再)入門
Takayoshi Tanaka
 
PPTX
最近のQ#について
Takayoshi Tanaka
 
PDF
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
Takayoshi Tanaka
 
PDF
20191024 Get Start gRPC with ASP.NET
Takayoshi Tanaka
 
PDF
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka
 
PPTX
20190806 Q# Measurements
Takayoshi Tanaka
 
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka
 
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
PDF
Try! Visual Studio 209 git feature
Takayoshi Tanaka
 
PDF
Q#基礎 ver1.1
Takayoshi Tanaka
 
PDF
(過去バージョン) Q#基礎 ver1.0
Takayoshi Tanaka
 
PDF
ゼロから始めるQ#
Takayoshi Tanaka
 
PDF
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
Takayoshi Tanaka
 
PDF
New features of Azure Cloud Provider at OCP 3.10
Takayoshi Tanaka
 
PDF
Open shift on azure stack
Takayoshi Tanaka
 
PPTX
Introduction to SQL Server on RHEL
Takayoshi Tanaka
 
PPTX
Log in to a Linux VM in Azure using AAD authentication
Takayoshi Tanaka
 
deep dive distributed tracing
Takayoshi Tanaka
 
202109-New_Relic-for-csharp-engineers
Takayoshi Tanaka
 
20201127 .NET 5
Takayoshi Tanaka
 
Unity(再)入門
Takayoshi Tanaka
 
最近のQ#について
Takayoshi Tanaka
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
Takayoshi Tanaka
 
20191024 Get Start gRPC with ASP.NET
Takayoshi Tanaka
 
New Relicで始める、.NET Applications on AWSのObservability
Takayoshi Tanaka
 
20190806 Q# Measurements
Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
Try! Visual Studio 209 git feature
Takayoshi Tanaka
 
Q#基礎 ver1.1
Takayoshi Tanaka
 
(過去バージョン) Q#基礎 ver1.0
Takayoshi Tanaka
 
ゼロから始めるQ#
Takayoshi Tanaka
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
Takayoshi Tanaka
 
New features of Azure Cloud Provider at OCP 3.10
Takayoshi Tanaka
 
Open shift on azure stack
Takayoshi Tanaka
 
Introduction to SQL Server on RHEL
Takayoshi Tanaka
 
Log in to a Linux VM in Azure using AAD authentication
Takayoshi Tanaka
 
Ad

Recently uploaded (10)

PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 

20190604 Containerized MagicOnion on kubernetes with Observability with New Relic