Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
EN
Upload
Download free for 30 days
Sign in
Uploaded by
NTT Communications Technology Development
PDF, PPTX
24,232 views
分散トレーシング技術について(Open tracingやjaeger)
勉強会で分散トレーシング技術について調査した内容を発表した資料です。OpenTracingやJaegerなどについてのざっくりとした解説などを行っています。
Technology
◦
Read more
27
Save
Share
Embed
Save to Drive
Download now
Download as PDF, PPTX
1
/ 25
2
/ 25
Most read
3
/ 25
4
/ 25
Most read
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
16
/ 25
17
/ 25
18
/ 25
19
/ 25
20
/ 25
More Related Content
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
32 slides
141K views
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
53 slides
3.7K views
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
45 slides
174.7K views
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
57 slides
79.8K views
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
49 slides
25.4K views
PDF
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
33 slides
64.3K views
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
148 slides
15K views
マイクロにしすぎた結果がこれだよ!
by
mosa siru
32 slides
141K views
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
53 slides
3.7K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
45 slides
174.7K views
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
57 slides
79.8K views
マイクロサービス 4つの分割アプローチ
by
増田 亨
60 slides
44.8K views
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
49 slides
25.4K views
HTTP/2 入門
by
Yahoo!デベロッパーネットワーク
33 slides
64.3K views
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
by
日本マイクロソフト株式会社
148 slides
15K views
What's hot
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
62 slides
5.6K views
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
27 slides
45.8K views
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
46 slides
37.2K views
PPTX
RLSを用いたマルチテナント実装 for Django
by
Takayuki Shimizukawa
49 slides
13.1K views
PDF
例外設計における大罪
by
Takuto Wada
37 slides
76.9K views
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
15 slides
15.2K views
PDF
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
43 slides
51.8K views
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
51 slides
3.9K views
PDF
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
36 slides
7K views
PPTX
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
94 slides
35.4K views
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
49 slides
5.1K views
PDF
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
by
Preferred Networks
47 slides
2.7K views
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
36 slides
19.4K views
PDF
DockerとPodmanの比較
by
Akihiro Suda
37 slides
64.8K views
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
33 slides
129.9K views
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
by
Amazon Web Services Japan
45 slides
3.9K views
PDF
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
28 slides
29.1K views
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
35 slides
14.3K views
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
56 slides
889.1K views
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
64 slides
59.3K views
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
62 slides
5.6K views
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
27 slides
45.8K views
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
46 slides
37.2K views
RLSを用いたマルチテナント実装 for Django
by
Takayuki Shimizukawa
49 slides
13.1K views
例外設計における大罪
by
Takuto Wada
37 slides
76.9K views
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
15 slides
15.2K views
Fluentdのお勧めシステム構成パターン
by
Kentaro Yoshida
43 slides
51.8K views
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
51 slides
3.9K views
マルチテナントのアプリケーション実装〜実践編〜
by
Yoshiki Nakagawa
36 slides
7K views
Prometheus入門から運用まで徹底解説
by
貴仁 大和屋
94 slides
35.4K views
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
49 slides
5.1K views
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
by
Preferred Networks
47 slides
2.7K views
Dockerからcontainerdへの移行
by
Kohei Tokunaga
36 slides
19.4K views
DockerとPodmanの比較
by
Akihiro Suda
37 slides
64.8K views
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
33 slides
129.9K views
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
by
Amazon Web Services Japan
45 slides
3.9K views
イミュータブルデータモデルの極意
by
Yoshitaka Kawashima
28 slides
29.1K views
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
by
NTT DATA Technology & Innovation
35 slides
14.3K views
オンラインゲームの仕組みと工夫
by
Yuta Imai
56 slides
889.1K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
by
Amazon Web Services Japan
64 slides
59.3K views
More from NTT Communications Technology Development
PDF
クラウドを最大限活用するinfrastructure as codeを考えよう
by
NTT Communications Technology Development
42 slides
1.1K views
PPTX
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
by
NTT Communications Technology Development
53 slides
1.5K views
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
30 slides
2.6K views
PPTX
マルチクラウドでContinuous Deliveryを実現するSpinnakerについて
by
NTT Communications Technology Development
41 slides
392 views
PPTX
Argo CDについて
by
NTT Communications Technology Development
20 slides
347 views
PDF
SpinnakerとKayentaで 高速・安全なデプロイ!
by
NTT Communications Technology Development
48 slides
4.6K views
PDF
100Gbps OpenStack For Providing High-Performance NFV
by
NTT Communications Technology Development
48 slides
1.8K views
PDF
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
by
NTT Communications Technology Development
57 slides
992 views
PDF
AWS re:Invent2017で見た AWSの強さとは
by
NTT Communications Technology Development
118 slides
1.4K views
PDF
Mexico ops meetup発表資料 20170905
by
NTT Communications Technology Development
21 slides
749 views
PDF
NTT Tech Conference #2 - closing -
by
NTT Communications Technology Development
17 slides
1.1K views
PPTX
イケてない開発チームがイケてる開発を始めようとする軌跡
by
NTT Communications Technology Development
32 slides
6.2K views
PDF
GPU Container as a Service を実現するための最新OSS徹底比較
by
NTT Communications Technology Development
65 slides
6.2K views
PDF
SpinnakerとOpenStackの構築
by
NTT Communications Technology Development
49 slides
2.4K views
PDF
Troveコミュニティ動向
by
NTT Communications Technology Development
10 slides
615 views
PPTX
Web rtc for iot, edge computing use cases
by
NTT Communications Technology Development
28 slides
1.7K views
PDF
OpenStack Ops Mid-Cycle Meetup & Project Team Gathering出張報告
by
NTT Communications Technology Development
16 slides
595 views
PDF
NTT Tech Conference #1 Opening Keynote
by
NTT Communications Technology Development
13 slides
1.4K views
PDF
NTT Tech Conference #1 Closing Keynote
by
NTT Communications Technology Development
14 slides
776 views
PDF
OpsからみたOpenStack Summit
by
NTT Communications Technology Development
14 slides
720 views
クラウドを最大限活用するinfrastructure as codeを考えよう
by
NTT Communications Technology Development
42 slides
1.1K views
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
by
NTT Communications Technology Development
53 slides
1.5K views
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
by
NTT Communications Technology Development
30 slides
2.6K views
マルチクラウドでContinuous Deliveryを実現するSpinnakerについて
by
NTT Communications Technology Development
41 slides
392 views
Argo CDについて
by
NTT Communications Technology Development
20 slides
347 views
SpinnakerとKayentaで 高速・安全なデプロイ!
by
NTT Communications Technology Development
48 slides
4.6K views
100Gbps OpenStack For Providing High-Performance NFV
by
NTT Communications Technology Development
48 slides
1.8K views
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
by
NTT Communications Technology Development
57 slides
992 views
AWS re:Invent2017で見た AWSの強さとは
by
NTT Communications Technology Development
118 slides
1.4K views
Mexico ops meetup発表資料 20170905
by
NTT Communications Technology Development
21 slides
749 views
NTT Tech Conference #2 - closing -
by
NTT Communications Technology Development
17 slides
1.1K views
イケてない開発チームがイケてる開発を始めようとする軌跡
by
NTT Communications Technology Development
32 slides
6.2K views
GPU Container as a Service を実現するための最新OSS徹底比較
by
NTT Communications Technology Development
65 slides
6.2K views
SpinnakerとOpenStackの構築
by
NTT Communications Technology Development
49 slides
2.4K views
Troveコミュニティ動向
by
NTT Communications Technology Development
10 slides
615 views
Web rtc for iot, edge computing use cases
by
NTT Communications Technology Development
28 slides
1.7K views
OpenStack Ops Mid-Cycle Meetup & Project Team Gathering出張報告
by
NTT Communications Technology Development
16 slides
595 views
NTT Tech Conference #1 Opening Keynote
by
NTT Communications Technology Development
13 slides
1.4K views
NTT Tech Conference #1 Closing Keynote
by
NTT Communications Technology Development
14 slides
776 views
OpsからみたOpenStack Summit
by
NTT Communications Technology Development
14 slides
720 views
分散トレーシング技術について(Open tracingやjaeger)
1.
分散トレーシング技術について
2.
About me Mahito Ogura
(小倉真人<m.ogura@ntt.com>) NTTコミュニケーションズ 技術開発部 業務:クラウドや分散システムの調査検証 ● コムウェア入社(H21)2014年に異動で現職 ● インフラ構築(Chef, Ansible) ● アプリケーション開発(Ruby) ● OpenStackとか分散ミドルとかコンテナ ● 採用のお手伝いとか各種イベント業, etc...
3.
はじめに 現代のサービスは複雑化され、そのシステムは大規模に分散することが多い。 特にサービスの機能ごとに分けて作り、それらを疎結合させるMicroservicesアーキテク チャの流行もあり、機能ごとに開発チームが異なることや、開発言語が違うことが増え、 サービス内部はより分散し複雑化している。 分散し複雑化したサービスにおいて機能ごとの関係性を把握することは難しく、エラーや 性能問題などが起きた際にその原因特定が非常に難しくなる。 こうした問題に取り組むべく、分散されたサービス内のリクエストをトレース可能な、分散 トレーシング技術が現在注目を浴びている。
4.
分散トレーシングの歴史 2003年「Magpie: Online Modelling
and Performance-aware Systems」 2007年「X-Trace: A Pervasive Network Tracing Framework」 2010年「Dapper, a Large-Scale Distributed Systems Tracing Infrastructure」 以降、Dapperの論文を元にZipkinやDapperとZipkinをベースにしたappdash、HDFSや HBaseに使われているHTraceなどのOSSが開発される。 また、最近では分散Tracingの仕様やAPIを取りまとめたOpenTracingが登場し、 OpenTracingの仕様を実装したライブラリや、上記OSSのOpenTracing対応が進められて いる。
5.
インターネットサービスはしばしば複雑に実装され、大規模に分散したシステムとなって いることがある。 これらのシステムはソフトウェアモジュールの集合であり、各ソフトウェアモジュールは、 開発チームが異なることや、開発言語が異なること、そして何千台のマシンの複数のレ イヤにまたがることがある。 こうした環境においてシステムのしくみの理解や、性能問題の原因特定は難しく、一度 問題が起きると解決に至るまでに膨大なコストがかかることがある。 こうした問題を解決するために、各システムの挙動や性能を把握することができる分散 トレーシング技術が注目を集めている。 なぜ分散トレーシングが注目されているか
6.
参考:OpenStackのアーキテクチャ
7.
分散トレーシングに必要なしくみは次の2つ ● 分散トレーシングのしくみ(ライブラリ含む) ● トレースの結果をモニタリングするためのしくみ また、トレーシングがシステムの性能に影響を及ぼさないよう、 一部の処理だけをトレースするためのサンプリングレートを設定するしくみを 設けている分散トレーシングツールも存在している(ex.Zipkin,
OpenTracing) 分散トレーシング
8.
Trace:Span全体のStartからFinishまでを含むSpanの集合体 Span:ひとつのサービス(境界)内の処理。以下の情報が含まれる 分散トレーシング(OpenTracing)用語解説 -1/2- Trace Span
9.
オプション ● Span Tags ●
Span Logs ● References ○ 他Spanとの関係性 分散トレーシング(OpenTracing)用語解説 2/2 必須 ● Operation Name ● Start / Finish Timestamp ● Span Context ○ Baggage Items ○ tarace / span ID
10.
以下例では、Traceは8つのSpanから構成されている。 各Spanの間には関係性があり有効巡回グラフ(DAG)で表すことができる。 Spanの関係図(DAG)
11.
SpanとReferenceについて ChildOf Reference: 親Spanが依存する子Spanとの関係(例:RPC, SQL) FollowsFrom
Reference: 親Spanが依存しない子Spanとの関係(例:非同期処理)
12.
分散トレーシングのユースケース ● プログラム内の関数レベルのトレース ● サーバのエンドポイントのトレース ●
クライアントコールのトレース ● 分散環境におけるデータの分散 / 転送 ● イベントのロギング ● メッセージバス(MQ and Pub/Sub)シナリオのトレース
13.
OpenTracingについて OpenTracingは、一般的なプラットフォームに向けて、一貫したベンダ非依存なAPIを提 供することにより、開発者に容易にシステムへトレーサの追加、またはトレーサの切り替 えを行うことが出来るしくみを提供する、分散トレーシングの実装である。 また、OpenTracingは分散トレーシングとしてのOSSの実装以外にも、プラットフォーム固 有のトレーサーに向けた共通仕様も用意しており、他の分散トレーシングツールはこの 仕様を実装することで、OpenTracing互換のトレーサーとして実装することが出来るた め、ユーザは設定の変更だけでトレーサの切り替えを行うことができる。
14.
OpenTracing仕様を実装したトレーサー ● Zipkin:Twitter社が開発したトレーサー ● Jaeger:Uber社が開発したトレーサー ●
Appdash:sourcegraph社がGo言語で開発した軽量なトレーサー ● LightStep:OpenTracing互換のトレーサー ● Hawkular:OpenTracing-Javaをサポート ● Instana:OpenTracingのJava, Node.js, Goをサポート ● sky-walking:OpenTracing-Javaをサポート ● inspectIT:OpenTracing-Javaをサポート ● stagemonitor:Javaのバイトコードからトレーシングを行う
15.
Zipkin GoogleのDapperを参考に作られた分散トレーシングシステム 分散システムのレイテンシ問題の トラブルシューティングに必要な データを収集し(Zipkin)、 システムの依存関係を参照するための UI(Zipkin UI)を提供する アーキテクチャは右図参照 ● ReporterはTransportにデータを転送 ●
Transporはcollectorにデータを転送 ● CollectorはStorageにデータを格納 参考:http://zipkin.io/pages/architecture.html
16.
Jaeger Uber社がGo言語で開発している分散トレーサーとそのUI ● 2017年9月にプロジェクトがCNCFにホストされることになった Go言語で書かれた自前のモニタリングツールが用意されている Go, Python,
Node, JavaなどのTracerが用意されている ● Python 3には未対応
17.
Architecture 出典:http://jaeger.readthedocs.io/en/latest/architecture/
18.
分散トレースのしくみ(ex. HTTP Request) HTTPヘッダに格納された親スパンの 情報をデシリアライズ(extract) 現在のSpanの情報をシリアライズして HTTPヘッダに格納(inject) Serialize
span ID to a string {trace_id}:{span_id}:{parent_id}:{flags} 出典:http://jaeger.readthedocs.io/en/latest/architecture/
19.
sourcegraph社がGo言語で開発した軽量なトレーサー Go言語で書かれた自前のモニタリングツールが用意されている ● 一応OpenTracingへの対応はしているとドキュメントに書かれている ● 開発の更新は2016/11で止まっている(2017/9/19時点) ●
DAGの表示はできない Go, Python, Ruby(サードパーティー)などのTracerが用意されている ● しかしながらRubyはOpenTracing未対応かつ壊れている可能性が高い 参考:Appdashを動かしてみた - Qiita Appdash
20.
LightStep OpenTracing互換のTracer ● Go /
JavaScript / Python / PHP / Ruby / Java / iOS / Android MonitoringはSplunk/kibanaを利用する模様 詳細はLightStep社に問い合わせが必要
21.
Hawkular RedHatが支援している既存のモニタリングの課題を解決するためのツール 以下の4つの機能を有する ● Federated Alerting ●
Distributed Tracing ● Metrics TSDB ● ManageIQ Provider 分散トレーシングについてはJaegerとコラボをすることでOpenTracing対応をしているらし い。
22.
サンプル(OpenStack Novaへの実装) nova-computeがnova-schedulerにインスタンスの情報を同期する流れ 22 nova-compute Queue <conductor> RabbitMQ nova-conductor Queue <reply_xxx> nova-scheduler Queue <scheduler> ① ② ③ ① call
to ”conductor” for DB access ② reply to ① ③ cast to ”scheduler” Database
23.
Jaeger UI上でのトレース結果 ① ① call
to ”conductor” for DB access ② reply to ① ③ cast to ”scheduler” ① + ② ② ③
24.
● 分散システムの挙動やレイテンシの把握は難い ● 分散トレーシングの仕様としてOpenTracingがある ●
OpenTracing実装として各種ツールがあるが、 現状はUber社が開発をしているJaegerがよさそう ● まだ全体的にドキュメントが足りておらずコードを 読まないとわからないことが多い まとめ
25.
Presentation by NTT
Communications