SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Elastic Stack で Daprのオブザーバビリティ
(観測可能性)を実現
鈴⽊ 章太郎
Elastic テクニカルプロダクトマーケティングマネージャー/エバンジェリスト
内閣官房 IT 総合戦略室 政府 CIO 補佐官
⾃⼰紹介
鈴⽊ 章太郎
Elastic テクニカルプロダクトマーケティングマネージャー/
エバンジェリスト
内閣官房 IT 総合戦略室 政府 CIO 補佐官
2003年マイクロソフト⼊社。公共営業部⾨の担当アーキテクトとして .NET
の技術啓発活動に従事。
2006年開発者向けマーケティング部⾨に異動、テクニカルエバンジェリストと
して Windows/iOS/Android や Microsoft Azure の開発者向け
技術啓発活動を10年にわたり担当。
⽇本マイクロソフト退社後は、Dell、Accenture 等を経て、2020年6⽉
からは Elastic で開発者向け技術啓発活動に携わる。
2019年4⽉〜 内閣官房 IT 総合戦略室 政府 CIO 補佐官。
1. Elastic 概要
2. Observability(可観測性)とは
3. Dapr の Observability コンポーネント群と
Elastic による Dapr Observability 実現
4. まとめ
アジェンダ
Elastic 概要
3 億 5,000 万以上のダウンロード、
12,000 以上の企業での採⽤
40 カ国以上で 2,000 ⼈の従業員
IPO 2018, NYSE: “ESTC”
2012 年設⽴
Elastic 会社概要
Distributed by design
About Elastic
世界の #1 データベース検索エンジン
(DB-Engines)
3 Solutions, 1 Stack, Deploy Anywhere
Elastic スタックで実現
Kibana
Elasticsearch
Beats Logstash
Elastic エンタープライズサーチ Elastic セキュリティ
Elastic オブザーバビリティ
3 つのソリューション
SaaS
(AWS/Azure/GCP)
IaaS
(クラウド & オンプレ)
Elastic Cloud
on Kubernetes
Elastic Cloud Elastic Cloud
Enterprise
豊富なデプロイ選択肢
Kubernetes
(クラウド & オンプレ)
蓄積、検索、分析
可視化 & 管理
収集
アナリストが利⽤する資産運⽤での⾼速情報検索に向け Elasticsearch を導⼊。
35 種類のデータソースを Elasticsearch に集約し、圧倒的な検索パフォーマンスで業務を⽀援
https://www.elastic.co/jp/customers/smd-am
事例︓三井住友 DS アセット マネジメント株式会社
膨⼤なデータ処理とリアルタイム性を要求
される配⾞マッチング検索で Elastic を活⽤
1 秒あたりのデータ投⼊件数︓ 85 万から 130 万メッセージ
1 ⽇あたりのデータ投⼊量︓ 12 TB
1 秒あたりのドキュメント スキャン︓1 億から 40 億のドキュメント数
データサイズ︓ 1 PB
クラスター サイズ︓ 700 台の Elasticsearch
インジェスション パイプライン︓100 + Data パイプライン ジョブ
2018 年 4 ⽉の Qcon での Uber 様 講演より
https://www.infoq.com/presentations/uber-elasticsearch-clusters/
なぜ Elasticsearch なのか︖
• 企業では主にリレーショナル データベースを使⽤して
データを格納
• テーブルを簡単に結合し必要なデータベースからこのデータを取得できる
• しかし、時間の経過とともに、データベースとテーブルが肥⼤化して、数百万のデータセットを
含む⼤規模なデータベースになると、操作を実⾏できなくなる
• ⼀⽅、Elasticsearch は、数百万のドキュメントを数秒で簡単に検索できる
• Elasticsearch は柔軟で強⼒、オープンでフリーな
分散型リアルタイム検索及び分析エンジン
• Elasticsearch はドキュメントベースのデータベースでデータを JSON 形式で保存(⾮正
規化)
• Elasticsearch は、アプリケーションの強⼒な検索ツールとして使⽤できる
• インデックス、ドキュメント、フィールド等を作成し、データを Elasticsearch にプッシュで、検
索の準備が整う
• Elasticsearch の 2 つのユニークで重要な機能
• ⽔平スケール
• ⾼可⽤性
Elasticsearch
Elasticsearch の概念
インデックス・ドキュメント・フィールド
• Elasticsearch は分散ドキュメント
ストア
• 保存されるデータの最⼩単位が
ドキュメント
• ドキュメントは、フィールドと呼ばれる
複数の属性を持つ
• インデックスはドキュメントの集合
Elasticsearch
の概念
具体例
SQL Server,
MySQL,
postgreSQL
等
インデックス
書籍データが格納
される場所
テーブル
ドキュメント 書籍データ レコード
フィールド
書籍タイトル、著者、
ISBN、出版⽇、等
カラム
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
• RESTful Web サービスの設計原則に従って設計
• HTTP メソッドを使って CRUD による⼀通りのドキュメント操作が可能
CQRS(コマンドクエリー責任分離)との関係
• 「コマンド クエリ責務分離 (CQRS)パターンは、データ ストアの読み取り操作と更新操作を分離します。 アプリケーション内に
CQRS を実装すると、そのパフォーマンス、スケーラビリティ、セキュリティが最⼤化される場合があります。 CQRS への移⾏によって⽣
まれる柔軟性により、システムは時間の経過と共にさらに進化し、更新コマンドでドメインレベルのマージ競合が発⽣することを防ぐこと
ができます。」
• Elasticsearch はこのアーキテクチャに極めて整合性⾼い
https://docs.microsoft.com/ja-jp/azure/architecture/patterns/cqrs
⽇本語のサジェスト機能を実装する際の課題と
Elasticsearch を使⽤してこれらの課題を克服する⽅法
https://www.elastic.co/jp/blog/implementing-japanese-autocomplete-suggestions-in-elasticsearch
…
⽇本語のサジェストの例
詳細な説明に⼊る前に、⽇本語のサジェスト機能の実装例を⾒
てみましょう。
主な要件
•ユーザーが検索キーワードを⼊⼒すると、関連する候
補が表⽰される。例︓「⽇本」と⼊⼒すると、「⽇本」、
「⽇本 地図」、「⽇本 ⼈⼝」などが提案される。
•不完全な検索キーワードを⼊⼒した場合でも、関連
する候補が表⽰される。例︓「にほn」と⼊⼒すると、
「⽇本」、「⽇本 地図」、「⽇本の⼈⼝」などが提案さ
れる。
•タイプミスした場合でも、意味の通る候補が提案され
る。例︓「にhん」、「にっほん」、「⽇本ん」と⼊⼒すると、
「⽇本」、「⽇本 地図」、「⽇本の⼈⼝」などが表⽰さ
れる。
•候補となる単語が、キーワードが検索された回数が多
い順に⼀覧表⽰される。
...
無料かつオープンな
アプリケーションパフォーマンス監視
https://www.elastic.co/jp/apm
https://www.elastic.co/guide/en/apm/agent/rum-js/5.x/react-integration.html
データを収集、投⼊する
Logstash による Elasticsearch へのデータ⼀括挿⼊
保存、インデックス、分析
• 弾⼒性のある、スケールアウトを
考慮した設計
• ⾼可⽤性、マルチテナンシー
• 構造化/⾮構造化データ対応
分散型かつ
スケーラブル
開発者にとって
親しみやすい
検索と分析
• スキーマレス
• ネイティブな JSON
• クライアントライブラリ
• Apache Lucene
• リアルタイム
• 全⽂検索
• 集計
• 地理空間データ
• 多⾔語データ
可視化 → 気付き(洞察)を得る
• データ内に存在するパターン
の探索と分析: 任意のレベ
ルへのドリルダウンが可能
• Elasticsearch の強⼒
な 分析機能を活⽤
洞察の発⾒ カスタマイズと共有
• 棒グラフ、折れ線グラフ や散
布図、マップ、ヒストグラムの
作成
• ダッシュボードを共有し、
運⽤ワークフローに組み込み
• 組込み可能なアーキテク チャ:
• ダッシュボードや可視化をアプリとして作成
• セッション管理、ユーザー ロール、
セキュリティ統合
アプリ構築向け
UX プラットフォーム
Observability (可観測性) とは
マイクロ
サービス
コンテナ
CI / CD
オーケストレーション
サーバレス クラウド
ソフトウェアの開発⽅法とデリバリーは常に進化
Kubernetes の課題
Infrastructure
Dev
Ops
Kubernetes の課題
Container
Runtime
開発チーム
運⽤:
ログ監視
可動性
応答時間
アップタイム
ツール
運⽤︓
インフラ監視
ウェブログ
アプリログ
データベース ログ
コンテナログ
ログツール
リアルユーザー監視
トランザクション
パフォーマンス監視
分散トレーシング
APM ツール
運⽤︓
サービス監視
コンテナ指標
ホスト指標
データベース指標
ネットワーク指標
ストレージ指標
メトリック
ツール
ビジネス KPI
ビジネスツール
ビジネス
チーム
現状 ー 典型的なオブザーバビリティのツール群
開発、運⽤、ビジネスチーム
Elastic のオブザーバビリティへのアプローチ
APM データ
アップタイム
データ
指標データ
ログデータ ビジネス データ
全ての運⽤にまつわるデータを、
⼀つの強⼒なデータストアに集約 - Elasticsearch
Elastic の Observability へのアプローチ
ログ、指標、トレースを1つのチャートで⾒る
Elastic オブザーバビリティ
単⼀のオープンプラットフォームによる完全な可視性を
⼿頃な価格で提供し、
MTTR (データ・分析結果を得るまでの平均時間) をゼロに近づける
Dapr の Observability コンポーネント群と
Elastic による Dapr Observability 実現
Dapr の Observability とは
• Dapr API をすべてのサービス間コールと pub/sub メッセージングに使⽤することで、アプリケーションを意識した
⾃動観測が実現できる
• Daprの Sidecar が設定ファイルに基づいてトレースを⾏うため、観測のための追加のコードは必要ない
https://github.com/dapr
#CNDT2020
• Dapr は W3C trace context や
OpenTelemetry のような標準に準拠
• Zipkin プロトコルを使⽤してトレースを出⼒。
これをサポートするあらゆるツールと統合可能
• OpenTelemetry Collector を使⽤して、他
のモニタリングツールと統合することもできる
• W3C trace context との互換性により、
Dapr は trace context 管理に柔軟性を付
与。これにより、アプリケーションの外部で⽣成さ
れた trace context を受け⼊れたり、送信処
理を追加することで trace context を外部に
伝播したりできる
Tracing exporters コンポーネント
マイクロサービス全体で⼀貫したトレースを構成可能
W3Cトレースコンテキスト標準に準拠し、コンテキスト情報は Dapr が⾃動⽣成
異なるチームで作成され、異なる⾔語で作成されるサービス間でも⼀貫性が保たれる
application
Dapr
Sidecar OpenCensus
・・・
forwarding
Kafka
https://github.com/dapr/docs/blob/master/concepts/observability/traces.md
#CNDT2020
Dapr の Observability
Dapr Sidecar からサービスのメトリクス、ログ、トレースを収集
コントロールプレーンのサービス(Dapr Placement, etc.)は現状メトリクスとログのみを提供
Application Dapr Sidecar
Metrics
Tracing
Logging
Dashboard
は テンプレートが
提供されている
#CNDT2020
https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/observability
代表的な構成例
トレースのために Dapr を設定する
#CNDT2020
• Dapr の設定では YAML 形式の設定ファイルにトレースのサンプルレート(Dapr は確率的サンプリングを使⽤)
とトレース収集のためのエンドポイント URL を設定
• Dapr アプリケーションをデプロイすると、上記の設定が使⽤される
• 例えば Kubernetes のデプロイでは、Dapr アノテーションの dapr.io/config がアプリケーションに関連付けられ
る設定を定義 (Dapr アプリケーションの Kubernetes へのデプロイについての詳細はこちら)
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: myconfig
namespace: default
spec:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: "http://..."
分散トレーシング、OpenTracing と Elastic APM -1
#CNDT2020
マイクロサービスの世界
• 多様なサービストポロジーの健全性とパフォーマンスに対する可視性は、
問題の根本原因を迅速に判断し、全体的な信頼性と効率性を向上
させるためにきわめて重要
• そのために役⽴つのが分散トレーシング
• トレーシングは可観測性の3本の柱の1つに
過ぎない
• 3本の柱とは、ロギング、メトリック、トレーシング
• Elastic Stack は可観測性の3つの柱すべて
に対応する統合プラットフォーム
分散トレーシング、OpenTracing と Elastic APM -2
#CNDT2020
Elastic APM での分散トレーシング
• Zipkin や Jaeger など、他にも⼈気のあるオープンソーストレーサーがある
• マイクロサービスの世界では、ポリグロット(多⾔語)プログラミングやポリグロットパーシステンスのような概念が普及しており、今後
は「ポリグロットトレーシング」がより⼀般的になっていく
• 独⽴、分離といったマイクロサービスの性質により、異なるサービスの責任者は異なるトレーシングシステムを使⽤する可能性あり
• Elastic APM は、Elastic Stack 上に構築された
アプリケーションパフォーマンス監視システム
• Elastic APM は分散トレーシングをサポート
分散トレーシング、OpenTracing と Elastic APM -3
#CNDT2020
開発者にとっての課題
• さまざまなトレーシングシステムが利⽤できるため、開発者はまさに課題に直⾯
• 結局のところ、トレーサーはアプリケーションコード内に存在
• ⼀般的な課題には次のようなものがある︓
• どのトレーシングシステムを使うか︖
• トレーサーを変更したい場合はどうなるか︖ソースコード全体を変更したくはない
• 異なるトレーサーを使⽤している可能性のある共有ライブラリについてはどうすればよいか︖
• サードパーティのサービスが異なるトレーサーを使⽤している場合はどうなるか︖
• 当然のことながら、これらの懸念事項に対処するには標準化が必要
• アーキテクチャ⾯から包括的に分散トレーシングについて検討し、
• そして、分散トレーシングの「最⾼の状態」を達成するために何が必要かについて理解する必
要がある
分散トレーシング、OpenTracing と Elastic APM -4
#CNDT2020 33 https://bit.ly/32uqZKc
分散トレーシングのアーキテクチャコンポーネント
• 最新のソフトウェアシステムは、いくつかの⾼レベルのコンポーネントに分解される
• それらは通常、異なる組織によって設計および開発され、次のような異なるランタイム環境で実⾏される。
• 独⾃のアプリケーションコードとサービス
• 共有されたライブラリとサービス
• 外部サービス
• そのようなシステムを分散トレーシングで包括的かつ統合的に監視するためには、4つのアーキテクチャコンポーネントが必要
• 標準化された分散トレーシング API
• トレーシングコンテキストの標準化された
定義と伝達
• トレーシングデータの標準化された定義
• 相互運⽤可能なトレーサー
分散トレーシング、OpenTracing と Elastic APM -5
#CNDT2020
OpenTracing の仕様
現在の状態
1. OpenTracing APIはAPIの標準セットを提供する
2. トレーシングコンテキストの標準化された定義はまだない
3. トレーシングデータの標準化された定義はまだない
4. トレーサーはランタイム互換性がない
Jaeger︓
uber-trace-id︓118c6c15301b9b3b3:56e66177e6e55a91:18c6c15301b9b3b3:1
Elastic APM︓
elastic-apm-traceparent:00-f109f092a7d869fb4615784bacefcfd7-5bf936f4fcde3af0-01
OpenTracing データモデル それらの全体像
分散トレーシング、OpenTracing と Elastic APM -6
#CNDT2020
Elastic APM による現在の他のトレーサーとの連携⽅法
• さまざまなトレーシングシステムが利⽤できるため、開発者はまさに課題に直⾯
• 結局のところ、トレーサーはアプリケーションコード内に存在
• ⼀般的な課題には次のようなものがある︓
• どのトレーシングシステムを使うか︖
• トレーサーを変更したい場合はどうなるか︖ソースコード全体を変更したくはない
• 異なるトレーサーを使⽤している可能性のある共有ライブラリについてはどうすればよいか︖
• サードパーティのサービスが異なるトレーサーを使⽤している場合はどうなるか︖
• 当然のことながら、これらの懸念事項に対処するには標準化が必要
• アーキテクチャ⾯から包括的に分散トレーシングについて検討し、
• そして、分散トレーシングの「最⾼の状態」を達成するために何が必要かについて理解する必
要がある
分散トレーシング、OpenTracing と Elastic APM -7
#CNDT2020
Elastic APM による現在の他のトレーサーとの連携⽅法
1. Elasticsearch を他のトレーサー向けのスケーラブルなバックエンドデータストアとして使⽤
2. Elastic OpenTracing ブリッジ
2-2 Jaeger を Elastic OpenTracing ブリッジに置き換え︓
2-1 Jaeger による最初の実装︓
import io.opentracing.Scope;
import io.opentracing.Tracer;
import io.jaegertracing.Configuration;
import io.jaegertracing.internal.JaegerTracer;
...
private void sayHello(String helloTo) {
Configuration config = ...
Tracer tracer = config.getTracer();
try (Scope scope = tracer.buildSpan("say-
hello").startActive(true)) {
scope.span().setTag("hello-to", helloTo);
}
...
}
import io.opentracing.Scope;
import io.opentracing.Tracer;
import co.elastic.apm.opentracing.ElasticApmTracer;
...
private void sayHello(String helloTo) {
Tracer tracer = new ElasticApmTracer();
try (Scope scope = tracer.buildSpan("say-
hello").startActive(true)) {
scope.span().setTag("hello-to", helloTo);
}
...
}
• このシンプルな変更によって、その他のトレーシングコードを変更することなく、トレーシングデータを正常に Elastic APM に送信
• これこそが OpenTracing の⼒
分散トレーシング、OpenTracing と Elastic APM -8
#CNDT2020
Elastic APM リアルユーザー監視
• ユーザーがブラウザで何かをクリックした瞬間にトレース情報を得ることができる
• このトレース情報はパフォーマンスの側⾯からアプリケーションのリアルユーザーエクスペリエンスを表す
• Elastic APMリアルユーザー監視(RUM)はその情報を転送する⽅法(W3Cの標準化を待たず)
• RUM JS Agent はフレームワークに依存しない
• JavaScript ベースの任意のフロントエンドアプリケーション (React、Vue.js、Angular 等) で使⽤可能
Dapr の Observability
Dapr Sidecar からサービスのメトリクス、ログ、トレースを収集
コントロールプレーンのサービス(Dapr Placement, etc.)は現状メトリクスとログのみを提供
完全に Elastic Observability で置換する
#CNDT2020 33 https://bit.ly/32uqZKc
https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/observability
application Dapr Sidecar
Metrics
Tracing
Logging
Dashboard は
テンプレートが提供
されている
33
Elastic と Google Cloud を⽤いた
オブザーバビリティ(可観測性)
参考アーキテクチャ
Serverless
Cloud
Function
Operations
Cloud
Pub/Sub
Logstash
App
Engine
Compute
Engine
Kubernetes
Engine
Others
Filebeat
Cloud
Storage VPC Flow
Logs
Custom
Logs
Elastic Cloud
Filebeat or
Functionbeat
Filebeat or
Functionbeat
Elastic による検索、展開、管理が簡単
• Azure ポータル内での Elasticsearch の
デプロイの表⽰と管理が可能
• ログの取り込みプロセスを⾃動化し、数回
のクリックで環境を迅速に監視可能
• 既に使⽤されている Microsoft Azure
サービスに検索機能と可視化機能を簡単
に追加
• Azure コンソールと Elastic コンソール間
のシングルサインオン (SSO) による認証の
合理化
• 展開を管理するのではなくインサイトに集中
仕組み
● マイクロソフトはミドルウェアを使⽤して、マーケットプレースの
オファーとクラウド API と統合された Azure の API を提供
● Azure のお客様は、Elastic Cloud (アカウント、デプロイ)
で必要なオブジェクトを作成するネイティブの
Elasticsearch リソースを作成
● Azure ユーザーは、⾃分の Azure アカウントを使⽤して、
Kibana とクラウド コンソールに SSO を使⽤できる
● 請求は、「従来の」マーケットプレイスと同様で、マーケットプ
レイスサブスクリプションを介して発⽣
●
Azure にネイティブに統合
された Elastic
Elastic Cloud
Choice &
Simplicity
統合
● サブスクリプションおよびリソース イベントの Azure プラット
フォームログを簡単に収集するネイティブ統合
● Elastic VM 拡張機能を使⽤して仮想マシンのログとメト
リックを簡単に収集できるように統合
○ お客様は VM 拡張機能を有効にする
○ Elastic は Agent と Beats を設定し、システムログ
とメトリックのストリーミングを開始する
○ 顧客は Fleet 経由で Agent を管理できる
● Azure Private Link をサポート (クローズド ベータ)
● 更に追加予定︕︕
Azure にネイティブに統合
された Elastic
Elastic Cloud
Choice &
Simplicity
Elastic と Microsoft Azure を⽤いた
オブザーバビリティ(可観測性)
参考アーキテクチャ
Serverless
Azure
Functions
Azure
Monitor
Event Grid
Filebeat
or
Functionbeat
Logstash
App
Service
Azure VM Kubernetes
Service
Others
Filebeat
Blob
Storage
Filebeat
Or
Functionbeat
VM Flow
Logs
Custom
Logs
Azure
DevOps
eShop on Dapr アーキテクチャー
https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/reference-application
Twitter-Sentiment-Processor
Azure Cognitive Services と連携してツイートの感情分析を⾏うデモ
• ローカル開発 → クラウドサービス連携 → Kubernetes デプロイ、で実際の開発をイメージした段階的なデモ
• Go, C#, Node.js のそれぞれで作成されたサービスが協調してアプリケーションを構成
https://github.com/dapr/samples/tree/master/twitter-sentiment-processor
#CNDT2020
https://www.youtube.com/watch?v=qejiWzy5etA
まとめ
まとめ
• Dapr アーキテクチャを理解するところから始めよう
• Observability に関しては OSS スタックと相互接続性が鍵
• Elastic は Open Telemetry 経由、直接連携、いずれも可能
• サンプルアプリケーションのデプロイを試してみよう
• 次回︖Demo メインで︕
リソース
#CNDT2020 50 https://bit.ly/32uqZKc
Community Call
https://www.youtube.com/channel/UCtpSQ9BLB_3EXdWAUQYwnRA/
Gitter
https://gitter.im/Dapr/community/
Microsoft Open Source Blog
https://cloudblogs.microsoft.com/opensource/
リソース
公式ドキュメント
https://www.elastic.co/guide/index.html
Elastic APM Agent
https://www.elastic.co/guide/en/apm/agent/index.html
分散トレーシング、OpenTracing と Elastic APM
https://www.elastic.co/jp/blog/distributed-tracing-opentracing-and-elastic-apm
Elastic + Grafana Labsのパートナーシップに基づき、Grafana Elasticsearchオフィシャルプラグインが登場
https://www.elastic.co/jp/blog/elastic-and-grafana-labs-partner-on-the-official-grafana-elasticsearch-plugin
サンプルソリューション GitHub レポジトリ
https://github.com/michaelhyatt/k8s-o11y-workshop
関連ブログ
https://www.elastic.co/jp/blog/kubernetes-observability-tutorial-k8s-cluster-setup-demo-app-deployment
https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-log-monitoring-and-analysis-elastic-stack
https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-metrics-collection-and-analysis
https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-monitoring-application-performance-with-elastic-apm
ElasticON Solution Series Japan (7⽉毎週)
https://www.elastic.co/elasticon/solution-series/asia-pacific-jp
Elastic on Microsoft Azure:
インテグレーション強化による価値の創出
https://www.elastic.co/jp/webinars/elastic-on-microsoft-azure-accelerate-time-to-value-with-enhanced-integration
Elastic 7.13 Update ダイジェスト版(6/24)
https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/278466633/
今回のWebinarの詳細は以下の通りです。
==========================
=====================
■開催⽇時
6/24(⽊)19:30〜21:00
■内容
登壇
1. ⽇本マイクロソフト 惣道 哲也さん
2. Elastic 鈴⽊章太郎さん
3. 募集中
==========================
=====================
以上
アプリケーション開発 オンデマンド ウェビナー特集
https://www.microsoft.com/ja-jp/events/top/apps-innovation-webinars.aspx
• Elastic の Search API を Visual Studio
Code でコーディングする (1) - (3)
• Elastic Cloud で Azure Kubernetes
Serviecs の様々な Log/Metrics/APM を
可視化する
• ASP.NET Core 3.x Web アプリのログを
Elastic Cloud で収集・分析してみよう︕
Thank you for your attention!

Contenu connexe

Tendances

Tendances (20)

Elastic 7.13-new-features-20210624
Elastic 7.13-new-features-20210624Elastic 7.13-new-features-20210624
Elastic 7.13-new-features-20210624
 
一元的なオブザーバビリティプラットフォームを構築する
一元的なオブザーバビリティプラットフォームを構築する一元的なオブザーバビリティプラットフォームを構築する
一元的なオブザーバビリティプラットフォームを構築する
 
Migrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapmMigrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
 
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetectionElastichelps fintechenablesdx usingaibasedautomationand anomalydetection
Elastichelps fintechenablesdx usingaibasedautomationand anomalydetection
 
Elastic stack_&_cloud_7.11_updates-summary
Elastic stack_&_cloud_7.11_updates-summaryElastic stack_&_cloud_7.11_updates-summary
Elastic stack_&_cloud_7.11_updates-summary
 
Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...Learn, build, and scale with elastic - realizing great programming experience...
Learn, build, and scale with elastic - realizing great programming experience...
 
Utilizing elasticcloudforallusecases
Utilizing elasticcloudforallusecasesUtilizing elasticcloudforallusecases
Utilizing elasticcloudforallusecases
 
Apm enables python app observability
Apm enables python app observabilityApm enables python app observability
Apm enables python app observability
 
Logs are better with elastic apm 20210623
Logs are better with elastic apm 20210623Logs are better with elastic apm 20210623
Logs are better with elastic apm 20210623
 
DevRel2020-TransformingDeveloperMarketingStrategy
DevRel2020-TransformingDeveloperMarketingStrategyDevRel2020-TransformingDeveloperMarketingStrategy
DevRel2020-TransformingDeveloperMarketingStrategy
 
[CTC Forum 2019/10/25] 事例から学ぶ!AWS 移行でデータベースの管理・コストを削減する方法
[CTC Forum 2019/10/25] 事例から学ぶ!AWS 移行でデータベースの管理・コストを削減する方法[CTC Forum 2019/10/25] 事例から学ぶ!AWS 移行でデータベースの管理・コストを削減する方法
[CTC Forum 2019/10/25] 事例から学ぶ!AWS 移行でデータベースの管理・コストを削減する方法
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
Lt tech feedsummit-0618-rev
Lt tech feedsummit-0618-revLt tech feedsummit-0618-rev
Lt tech feedsummit-0618-rev
 
Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...Monitoring the health and performance of your aws environment using the Elast...
Monitoring the health and performance of your aws environment using the Elast...
 
whats-new-in-elastic-7-14
whats-new-in-elastic-7-14whats-new-in-elastic-7-14
whats-new-in-elastic-7-14
 
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Building andobservingcloudnativeappliactionusingazure elastic-terraformBuilding andobservingcloudnativeappliactionusingazure elastic-terraform
Building andobservingcloudnativeappliactionusingazure elastic-terraform
 
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn08277.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
7.9 elasticstackandcloudtechnicalenablement excitingnewfeatures-jpn0827
 
Elastic Aquia Joint webinar-20211006
Elastic Aquia Joint webinar-20211006Elastic Aquia Joint webinar-20211006
Elastic Aquia Joint webinar-20211006
 
Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5Renewed using elasticsearchonaspnet-core5
Renewed using elasticsearchonaspnet-core5
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
 

Similaire à Realizling Dapr Observability Using Elastic Stack

株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
Naoyuki Yamada
 

Similaire à Realizling Dapr Observability Using Elastic Stack (20)

Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
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
 
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Basho meetsup tokyo #4
Basho meetsup tokyo #4Basho meetsup tokyo #4
Basho meetsup tokyo #4
 
Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
 
Istio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud FoundryIstio, Kubernetes and Cloud Foundry
Istio, Kubernetes and Cloud Foundry
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
 
株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発株式会社サイバーエージェント アドテクスタジオの技術と開発
株式会社サイバーエージェント アドテクスタジオの技術と開発
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
リクルートにおけるFirefox OSアプリへの取り組み ~0.8人月でできるアプリ!?~
 
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
 
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
 
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
 

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
 
Centralized Observability for the Azure Ecosystem
Centralized Observability for the Azure EcosystemCentralized Observability for the Azure Ecosystem
Centralized Observability for the Azure Ecosystem
 
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 Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdfBuilding Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdf
 
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...
 

Dernier

Dernier (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: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
 
論文紹介: 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
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Realizling Dapr Observability Using Elastic Stack

  • 1. Elastic Stack で Daprのオブザーバビリティ (観測可能性)を実現 鈴⽊ 章太郎 Elastic テクニカルプロダクトマーケティングマネージャー/エバンジェリスト 内閣官房 IT 総合戦略室 政府 CIO 補佐官
  • 2. ⾃⼰紹介 鈴⽊ 章太郎 Elastic テクニカルプロダクトマーケティングマネージャー/ エバンジェリスト 内閣官房 IT 総合戦略室 政府 CIO 補佐官 2003年マイクロソフト⼊社。公共営業部⾨の担当アーキテクトとして .NET の技術啓発活動に従事。 2006年開発者向けマーケティング部⾨に異動、テクニカルエバンジェリストと して Windows/iOS/Android や Microsoft Azure の開発者向け 技術啓発活動を10年にわたり担当。 ⽇本マイクロソフト退社後は、Dell、Accenture 等を経て、2020年6⽉ からは Elastic で開発者向け技術啓発活動に携わる。 2019年4⽉〜 内閣官房 IT 総合戦略室 政府 CIO 補佐官。
  • 3. 1. Elastic 概要 2. Observability(可観測性)とは 3. Dapr の Observability コンポーネント群と Elastic による Dapr Observability 実現 4. まとめ アジェンダ
  • 5. 3 億 5,000 万以上のダウンロード、 12,000 以上の企業での採⽤ 40 カ国以上で 2,000 ⼈の従業員 IPO 2018, NYSE: “ESTC” 2012 年設⽴ Elastic 会社概要 Distributed by design About Elastic 世界の #1 データベース検索エンジン (DB-Engines)
  • 6. 3 Solutions, 1 Stack, Deploy Anywhere Elastic スタックで実現 Kibana Elasticsearch Beats Logstash Elastic エンタープライズサーチ Elastic セキュリティ Elastic オブザーバビリティ 3 つのソリューション SaaS (AWS/Azure/GCP) IaaS (クラウド & オンプレ) Elastic Cloud on Kubernetes Elastic Cloud Elastic Cloud Enterprise 豊富なデプロイ選択肢 Kubernetes (クラウド & オンプレ) 蓄積、検索、分析 可視化 & 管理 収集
  • 7. アナリストが利⽤する資産運⽤での⾼速情報検索に向け Elasticsearch を導⼊。 35 種類のデータソースを Elasticsearch に集約し、圧倒的な検索パフォーマンスで業務を⽀援 https://www.elastic.co/jp/customers/smd-am 事例︓三井住友 DS アセット マネジメント株式会社
  • 8. 膨⼤なデータ処理とリアルタイム性を要求 される配⾞マッチング検索で Elastic を活⽤ 1 秒あたりのデータ投⼊件数︓ 85 万から 130 万メッセージ 1 ⽇あたりのデータ投⼊量︓ 12 TB 1 秒あたりのドキュメント スキャン︓1 億から 40 億のドキュメント数 データサイズ︓ 1 PB クラスター サイズ︓ 700 台の Elasticsearch インジェスション パイプライン︓100 + Data パイプライン ジョブ 2018 年 4 ⽉の Qcon での Uber 様 講演より https://www.infoq.com/presentations/uber-elasticsearch-clusters/
  • 9. なぜ Elasticsearch なのか︖ • 企業では主にリレーショナル データベースを使⽤して データを格納 • テーブルを簡単に結合し必要なデータベースからこのデータを取得できる • しかし、時間の経過とともに、データベースとテーブルが肥⼤化して、数百万のデータセットを 含む⼤規模なデータベースになると、操作を実⾏できなくなる • ⼀⽅、Elasticsearch は、数百万のドキュメントを数秒で簡単に検索できる • Elasticsearch は柔軟で強⼒、オープンでフリーな 分散型リアルタイム検索及び分析エンジン • Elasticsearch はドキュメントベースのデータベースでデータを JSON 形式で保存(⾮正 規化) • Elasticsearch は、アプリケーションの強⼒な検索ツールとして使⽤できる • インデックス、ドキュメント、フィールド等を作成し、データを Elasticsearch にプッシュで、検 索の準備が整う • Elasticsearch の 2 つのユニークで重要な機能 • ⽔平スケール • ⾼可⽤性 Elasticsearch
  • 10. Elasticsearch の概念 インデックス・ドキュメント・フィールド • Elasticsearch は分散ドキュメント ストア • 保存されるデータの最⼩単位が ドキュメント • ドキュメントは、フィールドと呼ばれる 複数の属性を持つ • インデックスはドキュメントの集合 Elasticsearch の概念 具体例 SQL Server, MySQL, postgreSQL 等 インデックス 書籍データが格納 される場所 テーブル ドキュメント 書籍データ レコード フィールド 書籍タイトル、著者、 ISBN、出版⽇、等 カラム https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html • RESTful Web サービスの設計原則に従って設計 • HTTP メソッドを使って CRUD による⼀通りのドキュメント操作が可能
  • 11. CQRS(コマンドクエリー責任分離)との関係 • 「コマンド クエリ責務分離 (CQRS)パターンは、データ ストアの読み取り操作と更新操作を分離します。 アプリケーション内に CQRS を実装すると、そのパフォーマンス、スケーラビリティ、セキュリティが最⼤化される場合があります。 CQRS への移⾏によって⽣ まれる柔軟性により、システムは時間の経過と共にさらに進化し、更新コマンドでドメインレベルのマージ競合が発⽣することを防ぐこと ができます。」 • Elasticsearch はこのアーキテクチャに極めて整合性⾼い https://docs.microsoft.com/ja-jp/azure/architecture/patterns/cqrs
  • 12. ⽇本語のサジェスト機能を実装する際の課題と Elasticsearch を使⽤してこれらの課題を克服する⽅法 https://www.elastic.co/jp/blog/implementing-japanese-autocomplete-suggestions-in-elasticsearch … ⽇本語のサジェストの例 詳細な説明に⼊る前に、⽇本語のサジェスト機能の実装例を⾒ てみましょう。 主な要件 •ユーザーが検索キーワードを⼊⼒すると、関連する候 補が表⽰される。例︓「⽇本」と⼊⼒すると、「⽇本」、 「⽇本 地図」、「⽇本 ⼈⼝」などが提案される。 •不完全な検索キーワードを⼊⼒した場合でも、関連 する候補が表⽰される。例︓「にほn」と⼊⼒すると、 「⽇本」、「⽇本 地図」、「⽇本の⼈⼝」などが提案さ れる。 •タイプミスした場合でも、意味の通る候補が提案され る。例︓「にhん」、「にっほん」、「⽇本ん」と⼊⼒すると、 「⽇本」、「⽇本 地図」、「⽇本の⼈⼝」などが表⽰さ れる。 •候補となる単語が、キーワードが検索された回数が多 い順に⼀覧表⽰される。 ...
  • 15. Logstash による Elasticsearch へのデータ⼀括挿⼊
  • 16. 保存、インデックス、分析 • 弾⼒性のある、スケールアウトを 考慮した設計 • ⾼可⽤性、マルチテナンシー • 構造化/⾮構造化データ対応 分散型かつ スケーラブル 開発者にとって 親しみやすい 検索と分析 • スキーマレス • ネイティブな JSON • クライアントライブラリ • Apache Lucene • リアルタイム • 全⽂検索 • 集計 • 地理空間データ • 多⾔語データ
  • 17. 可視化 → 気付き(洞察)を得る • データ内に存在するパターン の探索と分析: 任意のレベ ルへのドリルダウンが可能 • Elasticsearch の強⼒ な 分析機能を活⽤ 洞察の発⾒ カスタマイズと共有 • 棒グラフ、折れ線グラフ や散 布図、マップ、ヒストグラムの 作成 • ダッシュボードを共有し、 運⽤ワークフローに組み込み • 組込み可能なアーキテク チャ: • ダッシュボードや可視化をアプリとして作成 • セッション管理、ユーザー ロール、 セキュリティ統合 アプリ構築向け UX プラットフォーム
  • 19. マイクロ サービス コンテナ CI / CD オーケストレーション サーバレス クラウド ソフトウェアの開発⽅法とデリバリーは常に進化
  • 20.
  • 24. 開発、運⽤、ビジネスチーム Elastic のオブザーバビリティへのアプローチ APM データ アップタイム データ 指標データ ログデータ ビジネス データ 全ての運⽤にまつわるデータを、 ⼀つの強⼒なデータストアに集約 - Elasticsearch
  • 25. Elastic の Observability へのアプローチ ログ、指標、トレースを1つのチャートで⾒る
  • 27. Dapr の Observability コンポーネント群と Elastic による Dapr Observability 実現
  • 28. Dapr の Observability とは • Dapr API をすべてのサービス間コールと pub/sub メッセージングに使⽤することで、アプリケーションを意識した ⾃動観測が実現できる • Daprの Sidecar が設定ファイルに基づいてトレースを⾏うため、観測のための追加のコードは必要ない https://github.com/dapr #CNDT2020 • Dapr は W3C trace context や OpenTelemetry のような標準に準拠 • Zipkin プロトコルを使⽤してトレースを出⼒。 これをサポートするあらゆるツールと統合可能 • OpenTelemetry Collector を使⽤して、他 のモニタリングツールと統合することもできる • W3C trace context との互換性により、 Dapr は trace context 管理に柔軟性を付 与。これにより、アプリケーションの外部で⽣成さ れた trace context を受け⼊れたり、送信処 理を追加することで trace context を外部に 伝播したりできる
  • 29. Tracing exporters コンポーネント マイクロサービス全体で⼀貫したトレースを構成可能 W3Cトレースコンテキスト標準に準拠し、コンテキスト情報は Dapr が⾃動⽣成 異なるチームで作成され、異なる⾔語で作成されるサービス間でも⼀貫性が保たれる application Dapr Sidecar OpenCensus ・・・ forwarding Kafka https://github.com/dapr/docs/blob/master/concepts/observability/traces.md #CNDT2020
  • 30. Dapr の Observability Dapr Sidecar からサービスのメトリクス、ログ、トレースを収集 コントロールプレーンのサービス(Dapr Placement, etc.)は現状メトリクスとログのみを提供 Application Dapr Sidecar Metrics Tracing Logging Dashboard は テンプレートが 提供されている #CNDT2020 https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/observability 代表的な構成例
  • 31. トレースのために Dapr を設定する #CNDT2020 • Dapr の設定では YAML 形式の設定ファイルにトレースのサンプルレート(Dapr は確率的サンプリングを使⽤) とトレース収集のためのエンドポイント URL を設定 • Dapr アプリケーションをデプロイすると、上記の設定が使⽤される • 例えば Kubernetes のデプロイでは、Dapr アノテーションの dapr.io/config がアプリケーションに関連付けられ る設定を定義 (Dapr アプリケーションの Kubernetes へのデプロイについての詳細はこちら) apiVersion: dapr.io/v1alpha1 kind: Configuration metadata: name: myconfig namespace: default spec: tracing: samplingRate: "1" zipkin: endpointAddress: "http://..."
  • 32. 分散トレーシング、OpenTracing と Elastic APM -1 #CNDT2020 マイクロサービスの世界 • 多様なサービストポロジーの健全性とパフォーマンスに対する可視性は、 問題の根本原因を迅速に判断し、全体的な信頼性と効率性を向上 させるためにきわめて重要 • そのために役⽴つのが分散トレーシング • トレーシングは可観測性の3本の柱の1つに 過ぎない • 3本の柱とは、ロギング、メトリック、トレーシング • Elastic Stack は可観測性の3つの柱すべて に対応する統合プラットフォーム
  • 33. 分散トレーシング、OpenTracing と Elastic APM -2 #CNDT2020 Elastic APM での分散トレーシング • Zipkin や Jaeger など、他にも⼈気のあるオープンソーストレーサーがある • マイクロサービスの世界では、ポリグロット(多⾔語)プログラミングやポリグロットパーシステンスのような概念が普及しており、今後 は「ポリグロットトレーシング」がより⼀般的になっていく • 独⽴、分離といったマイクロサービスの性質により、異なるサービスの責任者は異なるトレーシングシステムを使⽤する可能性あり • Elastic APM は、Elastic Stack 上に構築された アプリケーションパフォーマンス監視システム • Elastic APM は分散トレーシングをサポート
  • 34. 分散トレーシング、OpenTracing と Elastic APM -3 #CNDT2020 開発者にとっての課題 • さまざまなトレーシングシステムが利⽤できるため、開発者はまさに課題に直⾯ • 結局のところ、トレーサーはアプリケーションコード内に存在 • ⼀般的な課題には次のようなものがある︓ • どのトレーシングシステムを使うか︖ • トレーサーを変更したい場合はどうなるか︖ソースコード全体を変更したくはない • 異なるトレーサーを使⽤している可能性のある共有ライブラリについてはどうすればよいか︖ • サードパーティのサービスが異なるトレーサーを使⽤している場合はどうなるか︖ • 当然のことながら、これらの懸念事項に対処するには標準化が必要 • アーキテクチャ⾯から包括的に分散トレーシングについて検討し、 • そして、分散トレーシングの「最⾼の状態」を達成するために何が必要かについて理解する必 要がある
  • 35. 分散トレーシング、OpenTracing と Elastic APM -4 #CNDT2020 33 https://bit.ly/32uqZKc 分散トレーシングのアーキテクチャコンポーネント • 最新のソフトウェアシステムは、いくつかの⾼レベルのコンポーネントに分解される • それらは通常、異なる組織によって設計および開発され、次のような異なるランタイム環境で実⾏される。 • 独⾃のアプリケーションコードとサービス • 共有されたライブラリとサービス • 外部サービス • そのようなシステムを分散トレーシングで包括的かつ統合的に監視するためには、4つのアーキテクチャコンポーネントが必要 • 標準化された分散トレーシング API • トレーシングコンテキストの標準化された 定義と伝達 • トレーシングデータの標準化された定義 • 相互運⽤可能なトレーサー
  • 36. 分散トレーシング、OpenTracing と Elastic APM -5 #CNDT2020 OpenTracing の仕様 現在の状態 1. OpenTracing APIはAPIの標準セットを提供する 2. トレーシングコンテキストの標準化された定義はまだない 3. トレーシングデータの標準化された定義はまだない 4. トレーサーはランタイム互換性がない Jaeger︓ uber-trace-id︓118c6c15301b9b3b3:56e66177e6e55a91:18c6c15301b9b3b3:1 Elastic APM︓ elastic-apm-traceparent:00-f109f092a7d869fb4615784bacefcfd7-5bf936f4fcde3af0-01 OpenTracing データモデル それらの全体像
  • 37. 分散トレーシング、OpenTracing と Elastic APM -6 #CNDT2020 Elastic APM による現在の他のトレーサーとの連携⽅法 • さまざまなトレーシングシステムが利⽤できるため、開発者はまさに課題に直⾯ • 結局のところ、トレーサーはアプリケーションコード内に存在 • ⼀般的な課題には次のようなものがある︓ • どのトレーシングシステムを使うか︖ • トレーサーを変更したい場合はどうなるか︖ソースコード全体を変更したくはない • 異なるトレーサーを使⽤している可能性のある共有ライブラリについてはどうすればよいか︖ • サードパーティのサービスが異なるトレーサーを使⽤している場合はどうなるか︖ • 当然のことながら、これらの懸念事項に対処するには標準化が必要 • アーキテクチャ⾯から包括的に分散トレーシングについて検討し、 • そして、分散トレーシングの「最⾼の状態」を達成するために何が必要かについて理解する必 要がある
  • 38. 分散トレーシング、OpenTracing と Elastic APM -7 #CNDT2020 Elastic APM による現在の他のトレーサーとの連携⽅法 1. Elasticsearch を他のトレーサー向けのスケーラブルなバックエンドデータストアとして使⽤ 2. Elastic OpenTracing ブリッジ 2-2 Jaeger を Elastic OpenTracing ブリッジに置き換え︓ 2-1 Jaeger による最初の実装︓ import io.opentracing.Scope; import io.opentracing.Tracer; import io.jaegertracing.Configuration; import io.jaegertracing.internal.JaegerTracer; ... private void sayHello(String helloTo) { Configuration config = ... Tracer tracer = config.getTracer(); try (Scope scope = tracer.buildSpan("say- hello").startActive(true)) { scope.span().setTag("hello-to", helloTo); } ... } import io.opentracing.Scope; import io.opentracing.Tracer; import co.elastic.apm.opentracing.ElasticApmTracer; ... private void sayHello(String helloTo) { Tracer tracer = new ElasticApmTracer(); try (Scope scope = tracer.buildSpan("say- hello").startActive(true)) { scope.span().setTag("hello-to", helloTo); } ... } • このシンプルな変更によって、その他のトレーシングコードを変更することなく、トレーシングデータを正常に Elastic APM に送信 • これこそが OpenTracing の⼒
  • 39. 分散トレーシング、OpenTracing と Elastic APM -8 #CNDT2020 Elastic APM リアルユーザー監視 • ユーザーがブラウザで何かをクリックした瞬間にトレース情報を得ることができる • このトレース情報はパフォーマンスの側⾯からアプリケーションのリアルユーザーエクスペリエンスを表す • Elastic APMリアルユーザー監視(RUM)はその情報を転送する⽅法(W3Cの標準化を待たず) • RUM JS Agent はフレームワークに依存しない • JavaScript ベースの任意のフロントエンドアプリケーション (React、Vue.js、Angular 等) で使⽤可能
  • 40. Dapr の Observability Dapr Sidecar からサービスのメトリクス、ログ、トレースを収集 コントロールプレーンのサービス(Dapr Placement, etc.)は現状メトリクスとログのみを提供 完全に Elastic Observability で置換する #CNDT2020 33 https://bit.ly/32uqZKc https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/observability application Dapr Sidecar Metrics Tracing Logging Dashboard は テンプレートが提供 されている 33
  • 41. Elastic と Google Cloud を⽤いた オブザーバビリティ(可観測性) 参考アーキテクチャ Serverless Cloud Function Operations Cloud Pub/Sub Logstash App Engine Compute Engine Kubernetes Engine Others Filebeat Cloud Storage VPC Flow Logs Custom Logs Elastic Cloud Filebeat or Functionbeat Filebeat or Functionbeat
  • 42. Elastic による検索、展開、管理が簡単 • Azure ポータル内での Elasticsearch の デプロイの表⽰と管理が可能 • ログの取り込みプロセスを⾃動化し、数回 のクリックで環境を迅速に監視可能 • 既に使⽤されている Microsoft Azure サービスに検索機能と可視化機能を簡単 に追加 • Azure コンソールと Elastic コンソール間 のシングルサインオン (SSO) による認証の 合理化 • 展開を管理するのではなくインサイトに集中
  • 43. 仕組み ● マイクロソフトはミドルウェアを使⽤して、マーケットプレースの オファーとクラウド API と統合された Azure の API を提供 ● Azure のお客様は、Elastic Cloud (アカウント、デプロイ) で必要なオブジェクトを作成するネイティブの Elasticsearch リソースを作成 ● Azure ユーザーは、⾃分の Azure アカウントを使⽤して、 Kibana とクラウド コンソールに SSO を使⽤できる ● 請求は、「従来の」マーケットプレイスと同様で、マーケットプ レイスサブスクリプションを介して発⽣ ● Azure にネイティブに統合 された Elastic Elastic Cloud Choice & Simplicity
  • 44. 統合 ● サブスクリプションおよびリソース イベントの Azure プラット フォームログを簡単に収集するネイティブ統合 ● Elastic VM 拡張機能を使⽤して仮想マシンのログとメト リックを簡単に収集できるように統合 ○ お客様は VM 拡張機能を有効にする ○ Elastic は Agent と Beats を設定し、システムログ とメトリックのストリーミングを開始する ○ 顧客は Fleet 経由で Agent を管理できる ● Azure Private Link をサポート (クローズド ベータ) ● 更に追加予定︕︕ Azure にネイティブに統合 された Elastic Elastic Cloud Choice & Simplicity
  • 45. Elastic と Microsoft Azure を⽤いた オブザーバビリティ(可観測性) 参考アーキテクチャ Serverless Azure Functions Azure Monitor Event Grid Filebeat or Functionbeat Logstash App Service Azure VM Kubernetes Service Others Filebeat Blob Storage Filebeat Or Functionbeat VM Flow Logs Custom Logs Azure DevOps
  • 46. eShop on Dapr アーキテクチャー https://docs.microsoft.com/ja-jp/dotnet/architecture/dapr-for-net-developers/reference-application
  • 47. Twitter-Sentiment-Processor Azure Cognitive Services と連携してツイートの感情分析を⾏うデモ • ローカル開発 → クラウドサービス連携 → Kubernetes デプロイ、で実際の開発をイメージした段階的なデモ • Go, C#, Node.js のそれぞれで作成されたサービスが協調してアプリケーションを構成 https://github.com/dapr/samples/tree/master/twitter-sentiment-processor #CNDT2020 https://www.youtube.com/watch?v=qejiWzy5etA
  • 49. まとめ • Dapr アーキテクチャを理解するところから始めよう • Observability に関しては OSS スタックと相互接続性が鍵 • Elastic は Open Telemetry 経由、直接連携、いずれも可能 • サンプルアプリケーションのデプロイを試してみよう • 次回︖Demo メインで︕
  • 50. リソース #CNDT2020 50 https://bit.ly/32uqZKc Community Call https://www.youtube.com/channel/UCtpSQ9BLB_3EXdWAUQYwnRA/ Gitter https://gitter.im/Dapr/community/ Microsoft Open Source Blog https://cloudblogs.microsoft.com/opensource/
  • 51. リソース 公式ドキュメント https://www.elastic.co/guide/index.html Elastic APM Agent https://www.elastic.co/guide/en/apm/agent/index.html 分散トレーシング、OpenTracing と Elastic APM https://www.elastic.co/jp/blog/distributed-tracing-opentracing-and-elastic-apm Elastic + Grafana Labsのパートナーシップに基づき、Grafana Elasticsearchオフィシャルプラグインが登場 https://www.elastic.co/jp/blog/elastic-and-grafana-labs-partner-on-the-official-grafana-elasticsearch-plugin サンプルソリューション GitHub レポジトリ https://github.com/michaelhyatt/k8s-o11y-workshop 関連ブログ https://www.elastic.co/jp/blog/kubernetes-observability-tutorial-k8s-cluster-setup-demo-app-deployment https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-log-monitoring-and-analysis-elastic-stack https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-metrics-collection-and-analysis https://www.elastic.co/blog/kubernetes-observability-tutorial-k8s-monitoring-application-performance-with-elastic-apm
  • 52. ElasticON Solution Series Japan (7⽉毎週) https://www.elastic.co/elasticon/solution-series/asia-pacific-jp
  • 53. Elastic on Microsoft Azure: インテグレーション強化による価値の創出 https://www.elastic.co/jp/webinars/elastic-on-microsoft-azure-accelerate-time-to-value-with-enhanced-integration
  • 54. Elastic 7.13 Update ダイジェスト版(6/24) https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/278466633/ 今回のWebinarの詳細は以下の通りです。 ========================== ===================== ■開催⽇時 6/24(⽊)19:30〜21:00 ■内容 登壇 1. ⽇本マイクロソフト 惣道 哲也さん 2. Elastic 鈴⽊章太郎さん 3. 募集中 ========================== ===================== 以上
  • 55. アプリケーション開発 オンデマンド ウェビナー特集 https://www.microsoft.com/ja-jp/events/top/apps-innovation-webinars.aspx • Elastic の Search API を Visual Studio Code でコーディングする (1) - (3) • Elastic Cloud で Azure Kubernetes Serviecs の様々な Log/Metrics/APM を 可視化する • ASP.NET Core 3.x Web アプリのログを Elastic Cloud で収集・分析してみよう︕
  • 56. Thank you for your attention!