SlideShare a Scribd company logo
Enviar búsqueda
Cargar
分散トレーシング技術について(Open tracingやjaeger)
Denunciar
NTT Communications Technology Development
NTT Communications Technology Development
Seguir
•
27 recomendaciones
•
23,246 vistas
1
de
25
分散トレーシング技術について(Open tracingやjaeger)
•
27 recomendaciones
•
23,246 vistas
Descargar ahora
Descargar para leer sin conexión
Denunciar
Tecnología
勉強会で分散トレーシング技術について調査した内容を発表した資料です。OpenTracingやJaegerなどについてのざっくりとした解説などを行っています。
Leer más
NTT Communications Technology Development
NTT Communications Technology Development
Seguir
Recomendados
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
99.4K vistas
•
107 diapositivas
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
3.8K vistas
•
68 diapositivas
Docker Compose 徹底解説
Masahito Zembutsu
61.1K vistas
•
123 diapositivas
DockerとPodmanの比較
Akihiro Suda
47.7K vistas
•
37 diapositivas
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
56.6K vistas
•
64 diapositivas
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
37K vistas
•
53 diapositivas
Más contenido relacionado
La actualidad más candente
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
2.6K vistas
•
53 diapositivas
マイクロサービス 4つの分割アプローチ
増田 亨
41.4K vistas
•
60 diapositivas
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
11.7K vistas
•
63 diapositivas
Prometheus入門から運用まで徹底解説
貴仁 大和屋
34.8K vistas
•
94 diapositivas
マイクロにしすぎた結果がこれだよ!
mosa siru
132.6K vistas
•
32 diapositivas
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
4.2K vistas
•
36 diapositivas
La actualidad más candente
(20)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
•
2.6K vistas
マイクロサービス 4つの分割アプローチ
増田 亨
•
41.4K vistas
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
•
11.7K vistas
Prometheus入門から運用まで徹底解説
貴仁 大和屋
•
34.8K vistas
マイクロにしすぎた結果がこれだよ!
mosa siru
•
132.6K vistas
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
•
4.2K vistas
Azure API Management 俺的マニュアル
貴志 上坂
•
21.3K vistas
シリコンバレーの「何が」凄いのか
Atsushi Nakada
•
183.9K vistas
KafkaとAWS Kinesisの比較
Yoshiyasu SAEKI
•
14.8K vistas
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
•
19.8K vistas
Dockerからcontainerdへの移行
Kohei Tokunaga
•
16.6K vistas
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
•
82.3K vistas
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
•
13.3K vistas
Redisの特徴と活用方法について
Yuji Otani
•
101.5K vistas
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
•
3.6K vistas
Machine configoperatorのちょっとイイかもしれない話
Toshihiro Araki
•
1.3K vistas
Githubを使って簡単に helm repoを公開してみよう
Shingo Omura
•
6.8K vistas
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
•
34.8K vistas
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
•
7.3K vistas
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
•
3.6K vistas
Similar a 分散トレーシング技術について(Open tracingやjaeger)
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
apkiban
307 vistas
•
44 diapositivas
1分で分かる SoftLayer 監視入門
Masahito Zembutsu
6.8K vistas
•
57 diapositivas
ペアワークで持続的に成長するチームになろう!
Shinya Nakajima
476 vistas
•
26 diapositivas
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
9K vistas
•
44 diapositivas
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
12K vistas
•
60 diapositivas
Cdci for asaserviceera
Takao Tetsuro
100 vistas
•
33 diapositivas
Similar a 分散トレーシング技術について(Open tracingやjaeger)
(20)
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
apkiban
•
307 vistas
1分で分かる SoftLayer 監視入門
Masahito Zembutsu
•
6.8K vistas
ペアワークで持続的に成長するチームになろう!
Shinya Nakajima
•
476 vistas
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
•
9K vistas
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
•
12K vistas
Cdci for asaserviceera
Takao Tetsuro
•
100 vistas
マイクロサービスとそれを支えるアーキテクチャー
Tsukasa Kato
•
2K vistas
Tech on meetup online#01
Kazuya Suda
•
137 vistas
コンテナは次世代サービスの主流になるか?
SAKURA Internet Inc.
•
1.7K vistas
2画面折り畳みデバイスのアプリ開発について
Shinya Nakajima
•
441 vistas
微博(ウェイボ)型社内SNSとモバイルで始める社内の可視化
Takamitsu Nakao
•
26.9K vistas
クラウドネイティブトランスフォーメーションのススメ
Hiromasa Oka
•
1.2K vistas
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
Nobuyuki Matsui
•
1.3K vistas
スマフォセキュリティセミナ(配付用) R 20110417
知礼 八子
•
777 vistas
Ipメッセージング勉強会
Katsumi Takahashi
•
574 vistas
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
Takahiro Fujii
•
983 vistas
機械学習によるマーケット健全化施策を支える技術
Hirofumi Nakagawa
•
1.9K vistas
CMC_Meetup八子プレゼン 20170412
知礼 八子
•
3K vistas
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
Takashi Kaneda
•
10.9K vistas
Kubernetes × 可用性 -- cndjp第3回勉強会
Hiroshi Hayakawa
•
3.9K vistas
Más de NTT Communications Technology Development
クラウドを最大限活用するinfrastructure as codeを考えよう
NTT Communications Technology Development
999 vistas
•
42 diapositivas
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development
1.3K vistas
•
53 diapositivas
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
2.2K vistas
•
30 diapositivas
マルチクラウドでContinuous Deliveryを実現するSpinnakerについて
NTT Communications Technology Development
368 vistas
•
41 diapositivas
Argo CDについて
NTT Communications Technology Development
311 vistas
•
20 diapositivas
SpinnakerとKayentaで 高速・安全なデプロイ!
NTT Communications Technology Development
4.6K vistas
•
48 diapositivas
Más de NTT Communications Technology Development
(20)
クラウドを最大限活用するinfrastructure as codeを考えよう
NTT Communications Technology Development
•
999 vistas
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development
•
1.3K vistas
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
NTT Communications Technology Development
•
2.2K vistas
マルチクラウドでContinuous Deliveryを実現するSpinnakerについて
NTT Communications Technology Development
•
368 vistas
Argo CDについて
NTT Communications Technology Development
•
311 vistas
SpinnakerとKayentaで 高速・安全なデプロイ!
NTT Communications Technology Development
•
4.6K vistas
100Gbps OpenStack For Providing High-Performance NFV
NTT Communications Technology Development
•
1.7K vistas
Can we boost more HPC performance? Integrate IBM POWER servers with GPUs to O...
NTT Communications Technology Development
•
971 vistas
AWS re:Invent2017で見た AWSの強さとは
NTT Communications Technology Development
•
1.3K vistas
Mexico ops meetup発表資料 20170905
NTT Communications Technology Development
•
743 vistas
NTT Tech Conference #2 - closing -
NTT Communications Technology Development
•
1K vistas
イケてない開発チームがイケてる開発を始めようとする軌跡
NTT Communications Technology Development
•
6K vistas
GPU Container as a Service を実現するための最新OSS徹底比較
NTT Communications Technology Development
•
6.1K vistas
SpinnakerとOpenStackの構築
NTT Communications Technology Development
•
2.4K vistas
Troveコミュニティ動向
NTT Communications Technology Development
•
597 vistas
Web rtc for iot, edge computing use cases
NTT Communications Technology Development
•
1.7K vistas
OpenStack Ops Mid-Cycle Meetup & Project Team Gathering出張報告
NTT Communications Technology Development
•
585 vistas
NTT Tech Conference #1 Opening Keynote
NTT Communications Technology Development
•
1.4K vistas
NTT Tech Conference #1 Closing Keynote
NTT Communications Technology Development
•
756 vistas
OpsからみたOpenStack Summit
NTT Communications Technology Development
•
706 vistas
Último
概念モデリングワークショップ 設計編
Knowledge & Experience
10 vistas
•
37 diapositivas
DLゼミ: MobileOne: An Improved One millisecond Mobile Backbone
harmonylab
41 vistas
•
30 diapositivas
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
157 vistas
•
63 diapositivas
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
6 vistas
•
34 diapositivas
概念モデリングワークショップ 基礎編
Knowledge & Experience
19 vistas
•
71 diapositivas
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
208 vistas
•
33 diapositivas
Último
(10)
概念モデリングワークショップ 設計編
Knowledge & Experience
•
10 vistas
DLゼミ: MobileOne: An Improved One millisecond Mobile Backbone
harmonylab
•
41 vistas
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
157 vistas
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
6 vistas
概念モデリングワークショップ 基礎編
Knowledge & Experience
•
19 vistas
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
208 vistas
01Booster Studio ご紹介資料
ssusere7a2172
•
209 vistas
さくらのひやおろし2023
法林浩之
•
76 vistas
テストコードってすごい.pptx
cistb220msudou
•
72 vistas
JJUG CCC.pptx
Kanta Sasaki
•
6 vistas
分散トレーシング技術について(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