SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
分散トレーシングによる
ソフトウェアの信頼性構築
鈴⽊ 章太郎
Elastic テクニカルプロダクトマーケティングマネージャー/エバンジェリスト
デジタル庁 省庁業務グループ ソリューションアーキテクト
Elastic
Technical Product Marketing
Manager/Evangelist
デジタル庁
省庁業務グループ
ソリューションアーキテクト
元 Microsoft Technical Evangelist
Twitter : @shosuz
Shotaro Suzuki
アジェンダ
• 分散トレーシングってどんなもの︖
• トレーシングの観点から⾒た Metrics
• 最新技術の展望と課題
• Observability Journey の簡素化
• Enterprise Search と Observability による
カスタマーエクスペリエンス向上
@shosuz
本⽇ご紹介するソースコードは
最後のリソースのスライドに纏めて
掲載してあります︕
ぜひダウンロードして試してみて
ください。
@riferrei
@riferrei
分散トレーシングって
どんなもの︖
開発者にありがちな信頼性の捉え⽅
開発者にありがちな信頼性の捉え⽅
デプロイした後は、コードをテストしない
システムのテストをしている
同時接続
Network
不具合
ディストロ、
カーネル、OSの
バージョン
キャッシュのヒット
とハズレ
スケジューラと
そのクセ
クライアントの
バックオフ、
リトライ
メモリガベージ
コレクション
デプロイメント
コードの不具合
コードレース
条件
クロックシンクの
問題
「機械に限界まで負荷をかけ、それを維持しようとするならば、
その限界はどこなのか、ある程度⾒極めなければならない。
外を⾒てごらん。あそこには完璧なラップがある。ミスは許され
ない。すべてのギアチェンジ、すべてのコーナー。完璧に。 」-
ケン・マイルズ
お客様から︓
「503 エラーが発⽣しま
した。」
Ops の問題︓503 エラーを⾒つける
疑う 掘り下げる 解決する
• メトリクスの値を⾒る
• アラートで追いつかれる
• トポロジーを理解する
• 異常の切り分け
• コンテキストデータの収集
• ログやイベントの読み込み
• コードパッチの作成
• 新しいリリースの作成
10% 60% 30%
分散型トレースによるレスキュー
Black-Box White-Box
• コードは変更されない
• ランタイムによる処理
• 最⼩限の実⾏可視化
• コードは変更される
• アプリケーションによる処理
• 完全な実⾏可視化
インスツルメンテーション︓ブラックボックスとホワイトボックスの⽐較
トレーシングの観点
から⾒た Metrics
4つのゴールデンシグナル
レイテンシー トラフィック
エラー 飽和状態
これまでで最⾼のモニタリングアドバイス :
"ユーザーが満⾜
しなければ、99.999
も意味がない"
4つのゴールデンシグナル、1つのパースペクティブ
レイテンシー トラフィック
エラー 飽和状態
ビジネス
トランザクション
4つのゴールデンシグナル、1つのパースペクティブ
最新技術の展望と
課題
物事がシンプルだったことを覚えていますか︖
ハードコードされたログ記録⽂
type Log struct {
request_path string
request_size int64
status int32
latency_ms float64
}
logEntry := Log{
"/customers/find",
840, 200, 35
}
fmt.Printf("%+v", logEntry)
ログ⽂はそれぞれ
"スキーマ "を持つ
スレッドトラブルシューティングのフォロー
API Customer Database
Thread
1
API Customer Database
Thread
2
Log{"/api/find",
840, 200, 35} Log{"/customer/find",
235, 200, 30}
Log{"/db/find",
450, 200, 5}
Log{"/api/find",
840, 200, 45} Log{"/customer/find",
235, 200, 42}
Log{"/db/find",
450, 200, 3}
カオスの始まり︓分散コンピューティング
Thread 1
Host 1
Thread 2
Thread 1
Host 2
Thread 2
仮想化技術の活⽤
Host 1
VM 1 VM 2
API Customer Database
Thread
1
API Customer Database
Thread
2
API Customer Database
Thread
1
API Customer Database
Thread
2
コンテナ化の活⽤
Host 1
VM 1 VM 2
Container 1 Container 2
API Customer Database
Thread
1
API Customer Database
Thread
2
API Customer Database
Thread
1
API Customer Database
Thread
2
私は、あなたにとって
冗談のような存在
ですか︖
Ops の⼈々:
“それではサービスを機能に
分解してみよう"
トレースによりシステム全体のステッチングを⾃動化
Service A Service B Service C Service D
ビジネストランザクション
トランザクションデータを収集し、検索可能な状態にする
トレース、スパン、コンテキストの伝播
Service A (Child Span)
Service B (Child Span)
Service C (Child Span)
Service D (Child Span)
Transaction (Root Span)
Trace ID:
12345
Trace ID:
12345
Trace ID:
12345
Trace ID:
12345
Trace ID:
12345
⬅ This is the context!
Time:
55ms
Time:
30ms
Time:
15ms
Time:
5ms
Time:
5ms
しかし、サービスが同期でない場合はどうでしょうか︖
REST
API
Analytics
Observability
Journey を
簡素化する
Three pillars of observability
Logs
Metrics Traces
⼈、
プロセス、
ツール
⼈、
プロセス、
ツール
⼈、
プロセス、
ツール
統⼀された Observability : さらに良い
Logs
Traces
Metrics
すべてのデータを、ひとつのコンテクストで
統合されたビジネスと オペレーション KPI
可能な限りオープンスタンダードを使⽤する
https://openTelemetry.io
The Elasticsearch
Platform
Enterprise Search Observability Security
Kibana
Explore, Visualize, Engage
Elasticsearch
Store, Search, Analyze
Integrations
Connect, Collect, Alert
Public cloud Hybrid On-premises
In a world where endless data creates endless possibility, search helps people and organizations
thrive.
• あらゆる種類のテレメトリーデータに対応する
シングルエージェント
• 全エージェントを対象とした集中管理および
ポリシー設定
• OpenTelemetry のサポート
• 豊富な可視化機能とデータ探索機能により、
すぐに使える分析、その場限りの分析が可能
Elastic の特⻑
Enterprise Search と
Observability による
カスタマーエクスペリエンス向上
The Gallivant Web Shop
Architecture of The Gallivant Web Shop
Internet
Ship
metrics
& logs
End
user
Elastic Stack
Actions
Backend
micro services
Monitoring
Cart
Catalog
Ordering
Checkout
Search
React Client DevOps
Engineer
SecOps
Engineer
Marketer
…
End
user
Public Cloud
マイクロサービスアーキテクチャの採⽤はメリットも多いが、
同時に問題発⽣時の根本的な原因を⾒つけるのが難しくなる
Observability で解決できる主なビジネス課題
開発者、DevOps、
SRE の⽣産性
⾼い信頼性
コストパフォーマンスの
最適化
デジタルトランスフォーメーションの達成には新たなアプローチが不可⽋
クラウドネイティブアプリと
モノリシックなアプリの
⼀元管理
迅速な復旧
リリースや運⽤に関する
コストの最⼩化
サービスとしての
Observability︖
マネージドクラウドサービス
です。
Elastic Cloud はあなたのためにある
https://cloud.elastic.co/registration
リソース
• ブログ記事 「分散トレーシングによるソフトウェア信頼性の構築」
• ビジネスと運⽤の課題解決に、オブザーバビリティがカギとなる理由
• DevOps のためのオブザーバビリティ ― 不可⽋なビジネスイニシアチブ
• Elastic APM on GitHub(GitHub の Elastic APM ページ)
• Elastic Observability documentation on GitHub(GitHub の Elastic オブザーバビリティ
ドキュメントページ)
• OpenTelemetry in Java with Elastic Observability on GitHub(GitHub の Open
Telemetry in Java with Elastic Observability ページ)
• Elastic Cloud を無料で試⽤する
.NETラボ 勉強会 2022年4⽉
2022/4/23 13:30-18:00
https://dotnetlab.connpass.com/event/243974/
Elastic セキュリティワークショップ
2022/4/27 14:00-17:00
https://www.elastic.co/jp/virtual-events/elastic-security-workshop
Jaguʻeʼr Cloud Native #5
クラウドネイティブ設計コンペバトル
2022/4/28 13:00-15:00
https://jaguer-cloud-native.connpass.com/event/244567/
Jaguʼeʼr 会員企業所属のみです。ごめんなさい︕
Thank you for your
attention!

Contenu connexe

Similaire à Building Software Reliability through Distributed Tracing.pdf

Similaire à Building Software Reliability through Distributed Tracing.pdf (20)

Evolution of Observability and APM with using Elastic and Microsoft Azure
Evolution of Observability and APM with using Elastic and Microsoft AzureEvolution of Observability and APM with using Elastic and Microsoft Azure
Evolution of Observability and APM with using Elastic and Microsoft Azure
 
ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012ヒーロー島 Visual Studio 2012
ヒーロー島 Visual Studio 2012
 
Moving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-finalMoving from on prem to managed services with elastic on azure-final
Moving from on prem to managed services with elastic on azure-final
 
TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?TensorFlowとは? ディープラーニング (深層学習) とは?
TensorFlowとは? ディープラーニング (深層学習) とは?
 
楽天ラクマの組織とシステムをマイクロサービス化しようとした話
楽天ラクマの組織とシステムをマイクロサービス化しようとした話楽天ラクマの組織とシステムをマイクロサービス化しようとした話
楽天ラクマの組織とシステムをマイクロサービス化しようとした話
 
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
NRI流 検索ソリューション導入時にこれだけはおさえておきたい鉄則
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402
 
手間をかけずにサービス監視する方法
手間をかけずにサービス監視する方法手間をかけずにサービス監視する方法
手間をかけずにサービス監視する方法
 
クラウド事業者に求めるビジネス要件
クラウド事業者に求めるビジネス要件クラウド事業者に求めるビジネス要件
クラウド事業者に求めるビジネス要件
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
Centralized Observability for the Azure Ecosystem
Centralized Observability for the Azure EcosystemCentralized Observability for the Azure Ecosystem
Centralized Observability for the Azure Ecosystem
 
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
 
DevRel2020-TransformingDeveloperMarketingStrategy
DevRel2020-TransformingDeveloperMarketingStrategyDevRel2020-TransformingDeveloperMarketingStrategy
DevRel2020-TransformingDeveloperMarketingStrategy
 
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
20160927_守るべきは、大量の情報資産を管理するデータベース! ~ユーザ事例から見るデータベースのセキュリティ対策~ by 株式会社インサイトテクノ...
 
超高速開発の基礎概念 20141119 0
超高速開発の基礎概念 20141119 0超高速開発の基礎概念 20141119 0
超高速開発の基礎概念 20141119 0
 
OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料OutSystems ユーザー会 セッション資料
OutSystems ユーザー会 セッション資料
 
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
 
20180627 - DEEP LEARNING LAB / Cognitive Services 最新情報 30 分でズバリ!
20180627 - DEEP LEARNING LAB / Cognitive Services 最新情報 30 分でズバリ!20180627 - DEEP LEARNING LAB / Cognitive Services 最新情報 30 分でズバリ!
20180627 - DEEP LEARNING LAB / Cognitive Services 最新情報 30 分でズバリ!
 
Open Cloud Innovation2016 day1(これからのデータ分析者とエンジニアに必要なdatascienceexperienceツールと...
Open Cloud Innovation2016 day1(これからのデータ分析者とエンジニアに必要なdatascienceexperienceツールと...Open Cloud Innovation2016 day1(これからのデータ分析者とエンジニアに必要なdatascienceexperienceツールと...
Open Cloud Innovation2016 day1(これからのデータ分析者とエンジニアに必要なdatascienceexperienceツールと...
 
20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング20141003 webマーケティングエンジニアリング
20141003 webマーケティングエンジニアリング
 

Plus de Shotaro Suzuki

Plus de Shotaro Suzuki (20)

This is how our first offline technical event in three years was able to succ...
This is how our first offline technical event in three years was able to succ...This is how our first offline technical event in three years was able to succ...
This is how our first offline technical event in three years was able to succ...
 
Introducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdfIntroducing the new features of the Elastic 8.6 release.pdf
Introducing the new features of the Elastic 8.6 release.pdf
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
What's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 ReleaseWhat's New in the Elastic 8.5 Release
What's New in the Elastic 8.5 Release
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 ReleaseWhat's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 Release
 
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
Power Apps x .NET ~ Transforming Business Applications with Fusion DevelopmentPower Apps x .NET ~ Transforming Business Applications with Fusion Development
Power Apps x .NET ~ Transforming Business Applications with Fusion Development
 
devreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdfdevreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
 
elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e...
 
Building a search experience with Elastic – Introducing Elastic's latest samp...
Building a search experience with Elastic – Introducing Elastic's latest samp...Building a search experience with Elastic – Introducing Elastic's latest samp...
Building a search experience with Elastic – Introducing Elastic's latest samp...
 
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
 
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S...
 
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da...
 
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
What's New in the Elastic 8.2 Release - Seamless User Experience with Search -
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Building a Flutter Development Environment with VSCode and Useful Extensions
Building a Flutter Development Environment with VSCode and Useful ExtensionsBuilding a Flutter Development Environment with VSCode and Useful Extensions
Building a Flutter Development Environment with VSCode and Useful Extensions
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo...
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 

Dernier

Dernier (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Building Software Reliability through Distributed Tracing.pdf