Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218

Shotaro Suzuki
Shotaro SuzukiLead Enterprise Architect at VMware. Solutions Architect at Digital Agency, Government of Japan.
デジタルカスタマーエクスペリエンスの向上
- Enterprise Search と Observability
鈴⽊ 章太郎
Elastic テクニカルプロダクトマーケティングマネージャー/エバンジェリスト
デジタル庁 省庁業務グループ ソリューションアーキテクト
Elastic
Technical Product Marketing
Manager/Evangelist
デジタル庁
省庁業務グループ
ソリューションアーキテクト
元 Microsoft Technical Evangelist
Twitter : @shosuz
Shotaro Suzuki
l なぜデジタルカスタマーエクスペリエンスが重要なのか
l Elastic アーキテクチャ、基本的な概念、クエリ
l Enterprise Search と Observability による
カスタマーエクスペリエンス向上
l まとめ
アジェンダ
なぜカスタマーエクスペリエンスが重要なのか
なぜカスタマーエクスペリエンスが重要なのか
新しい顧客を獲得する
お客様を逃さない
お客様をサポートする
新規顧客の開拓、ロイヤルティと信頼の構築、そして⽣涯顧客の維持に不可⽋
パフォーマンスの⾼い Web サイトやモバイルアプリを作る
遅い Web サイト、使い勝⼿の悪いモバイルアプリは、アクセス放棄、収益の損失、⼆度と戻ってこない訪問者につながる
Web サイトにたどり着いた後、
60%のユーザーは、求めている
情報が⾒つかるかどうかで、サイト
に留まるか、バウンスするかを判断
15秒ルール
Web サイトのパフォーマンスを維持する
ためには、リアルタイムで観測可能な
ツールが不可⽋
測定、監視、最適化
Web サイトやアプリ検索がビジネスの成⻑に貢献する3つの⽅法
顧客からの問い合わせと、それに対応した結果を結びつけることで、最適な Web サイト・モバイルアプリ体験を実現
閲覧⾏動をアドバンテージに
顧客維持率の向上
コスト削減、カスタマーサクセスとセルフサービスに投資し、顧客が望むものを提供する
Web サイトやモバイルアプリ検索の改善で考慮すべきこと
⽴ち上げに苦労せず、管理も簡単なものに細⼼の注意を払う
柔軟性のある既成のソリューションを利⽤する
コンテンツの取り込みを効率化
直感的な UI で絞り込み検索が可能
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.
Elastic App Search
• Elastic App Search は Elastic のエンタープライズサーチソリューションの⼀部
• お客様の Web サイトやアプリケーションにパワフルでスケーラブルな検索体験を追加するのに
必要なすべてのツールを提供
Elastic Observability
• Web サイト、インフラ、アプリケーションのエコシステムを完全に理解するために、⼀元化されたツールセットによる
スケーラブルで包括的な監視システムを提供
• エコシステム全体の統⼀された可視性により、環境のあらゆる場所で発⽣するイベントを監視して対応し、
Web サイトのユーザーエクスペリエンスを向上
セキュリティを確保する
ためのプラットフォーム
Elastic Security は、エンドポイント
セキュリティと SIEM を統合して、
インフラ ストラクチャ全体での保護を
⼀元化するための予防、収集、検出、
および応答機能を提供します。
ELASTIC SECURITY
Endpoint SIEM
Elastic Security
Elastic アーキテクチャ、基本的な概念、クエリ
Elasticsearch の概念
- インデックス・ドキュメント・フィールド
• Elasticsearch は分散ドキュメント
ストア
• 保存されるデータの最⼩単位が
ドキュメント
• ドキュメントは、フィールドと呼ばれる
複数の属性を持つ
• インデックスはドキュメントの集合
Elasticsearch
の概念
具体例
SQL Server,
MySQL,
postgreSQL 等
インデックス
書籍データが格納
される場所
テーブル
ドキュメント 書籍データ レコード
フィールド
書籍タイトル、著者、
ISBN、出版⽇、等
カラム
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
• RESTful Web サービスの設計原則に従って設計
• HTTP メソッドを使って CRUD による⼀通りのドキュメント操作が可能
Elasticsearch for VSCode
https://marketplace.visualstudio.com/items?itemName=ria.elastic
http://user:pass@host:9200
https://elastic:RHGj80iJUO6CF7WBUMiwyu
1x@8009bf958b6w5923b3c56983d4048df
824.japaneast.azure.elastic-
cloud.com:9243
Books API からの書籍検索
Azure Static
Web Apps
Reactive
Search
検索専⽤ UI
ASP.NET 5
Web App,
(Blazor App)
Azure
Web Apps
Azure
SQL Database
Elastic Cloud
Azure サブスクリプション
Logstash
Azure
VM
(Linux)
検索・更新 UI
※ 今回は⼿動。同期⽅法例︓https://www.elastic.co/jp/blog/how-to-keep-elasticsearch-synchronized-with-a-relational-database-using-logstash
VSCode ※
東⽇本リージョン
マスターノード x 1
データノード x 2
ML ノード x 1
https://booksindex.azurewebsites.net/
https://f79...c67.japaneast.azure.elastic-cloud.com:9243/
APM SPA Agent
APM .NET Agent
https://brave-ocean-06f61b600.azurestaticapps.net/
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
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
APIs
検索のない世界から App Search がある世界へ
Great
Search
コアテクノロジー コンテンツの格納 UI/UX
検索結果の
コントロール
No
Search
Elasticsearch
Search UI
検索結果
オートコンプリート
フィルター
ファセット機能
分析
関連性チューニング
検索の再現・テスト
Dashboard
Web Crawler
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
マイクロサービスアーキテクチャの採⽤はメリットも多いが、
同時に問題発⽣時の根本的な原因を⾒つけるのが難しくなる
Observability で解決できる主なビジネス課題
開発者、DevOps、
SRE の⽣産性
⾼い信頼性
コストパフォーマンスの
最適化
デジタルトランスフォーメーションの達成には新たなアプローチが不可⽋
クラウドネイティブアプリと
モノリシックなアプリの
⼀元管理
迅速な復旧
リリースや運⽤に関する
コストの最⼩化
顧客やビジネスに悪影響を及ぼす前に、異常をプロアクティブに検出、
特定できるソリューション – Observability の必要性
37%
変更
16%
移⾏
31%
コードのバグ
11%
セキュリティ
5%
アップグレード
出典 : EMA
アプリケーションのダウンタイムとパフォーマンス低下の原因トップ5
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
• Google クラウドコンソールで数回クリックす
るだけで、摩擦のないログの取り込み
• エージェントをインストールせずデータを
取り込む
エージェントベース(Beats、Elastic Agent)
とエージェントレスオプションの両⽅で柔軟性を
持たせる
• エージェントレス統合 :
- FireStore x App Search
- Pub/Sub
- Big Query
- Cloud Storage
Google Cloud
ネイティブデータ統合
https://qiita.com/shosuz/items/9e375fea6f5016e4fc8f
Firebase/Firestore ⽤ Elastic App Search 統合
https://www.elastic.co/jp/blog/accelerate-search-experiences-with-elastic-app-search-and-google-firebase
Google Firebase 拡張機能ディレクトリ
の Elastic App Search 拡張機能
Elastic App Search エンジン作成と
Firebase からのドキュメント受信の設定
https://firebase.google.com/products/extensions/firestore-elastic-app-search/
• アプリケーション内で効果的な検索
エクスペリエンスを構築することは困難
• ユーザーはストアで商品を検索する場合も、
サポートサイトの記事を検索する場合も、
会社のブログに投稿する場合も、迅速な
結果を期待
• 拡張機能を使⽤して⾼速でスケーラブルで
関連性の⾼い検索エクスペリエンスを
Firebase モバイルおよび Web ベースの
アプリケーションに簡単に組み込める
• アプリケーションに検索を追加するのに、
数回クリックするだけで開始できる
Kotlin x Firebase サンプルアプリ構成 (CQRS)
Cloud
Function
Firebase
Firestore
Elastic Cloud
プロジェクト
northeast1-b リージョン
マスターノード x 1
データノード x 2
ML ノード x 1
https://google-cloud-day-
digital-2021.es.asia-
northeast1.gcp.cloud.es.io
:9243
検索結果
全⽂検索クエリ
データ保存
Cloud Function で同期
VSCode
Android
Mobile App
Kotlin
Elastic
APM
Agent
Elastic
Search UI
React Web App
Elastic APM Agent
Firebase/Firestore ⽤ Elastic App Search 統合拡張機能
でノンコーディングで実現︕
App Search 内蔵の Reference UI で
Web 版 React アプリの雛形⾃動⽣成
Elastic エンタープライズサーチ
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
Azure x Elastic Deep Integration
Extend
Customer
Engagement
Grow Support
Build
Together
Evaluate
Requirements
運⽤を簡素化し、お客様の Azure 環境を最⼤限
に視覚化
• Azure 上のお客様のインフラストラクチャ、アプリ、
データの正常性、パフォーマンス、セキュリティを
監視する⽅法を効率化
• Azure portal 内で Elasticsearch の検索、
デプロイ、管理を簡単に⾏えるため、お客様が
必要なスピード、スケール、関連性を得られ、
お客様はビジネスに集中が可能
• Elastic on Azure でお客様のアプリや IT の検
索、分析、セキュリティを実現するには、こちらのソ
リューション ガイドをお読みください
Elastic
https://azure.microsoft.com/ja-jp/overview/linux-on-azure/elastic/#overview
• Spring Boot は Java アプリケーションで
最も使⽤されているフレームワーク
• Azure Spring Cloud という完全な
マネージドサービスが Marketplace で提供
• Elastic ユーザーは Azure Spring Cloud
から Elastic Cloud にシステム、コンソール、
およびアプリケーションログを取り込める
• Spring Boot アプリで発⽣する問題を継続
的に監視およびデバッグできる
Azure Spring Cloud
ログとの統合
https://docs.microsoft.com/ja-jp/azure/spring-
cloud/how-to-elastic-diagnostic-settings
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
• AWS サーバーレスアプリケーションリポジトリ (SAR) で公開
された新しい AWS Lambda アプリケーション (ベータ版)
を使⽤すると、ユーザーは仮想マシンのプロビジョニングやデータ
シッパーのインストールのオーバーヘッドなしに、アーキテクチャを
簡素化し、データの取り込みを合理化できます。
• ユーザーは AWS コンソール内から数回クリックするだけで
Amazon S3 から Elastic Cloud デプロイメントにログを
取り込むことができるようになりました。
AWS Serverless Application Repository (SAR)
エージェントレスログ発送⽤の FireLens
https://aws.amazon.com/jp/serverless/serverlessrepo/
https://www.elastic.co/jp/blog/elastic-and-aws-serverless-application-repository-speed-time-to-actionable-insights-with-frictionless-log-ingestion-from-amazon-s3
新しい Elastic と Amazon S3 Storage Lens の統合
管理を簡素化し、コストを管理し、リスクを軽減
https://www.elastic.co/jp/blog/new-elastic-and-amazon-s3-storage-lens-integration-simplify-management-control-costs-and-reduce-risk
• 新しい Elastic と Amazon Simple Storage Service(Amazon S3)ストレージレンズの統合により、お客様は、他の AWS
およびオンプレミスのデータセットとともに、Amazon S3 の使⽤状況とアクティビティの指標を組織全体で完全に把握できます。
• SRE と DevOps のエンジニアは、Elastic Search プラットフォームの強⼒な検索および分析機能(ダッシュボード機能、組み込みの
機械学習分析、しきい値ベースのアラートなど)を使⽤して、Amazon S3 Storage Lens のデータと環境全体の他のパフォーマンス
指標との関連付けやトレンドの特定を⾏うことができるようになりました。また、これらの知⾒は、アクセス頻度の低いオブジェクトを特定し、
より安価なストレージに移⾏することで、ストレージコストを最適化するために活⽤することができます。
まとめ
まとめ
l なぜデジタルカスタマーエクスペリエンスが重要なのか
l Elastic 概要
l Enterprise Search と Observability によるカスタマーエクスペリエンス
向上
Elastic 8.0 リリースのご紹介︓
スピード、スケール、関連性、シンプルさの新時代 (2/24)
https://www.elastic.co/jp/virtual-events/whats-new-in-elastic-8-0
Elastic 8.0 ベクトル検索機能の強化、最新の⾃然⾔語処理モデルのネイティブサポート、
簡素化されたデータオンボーディング、合理化されたセキュリティエクスペリエンスなど、
Elastic 8.0の新機能とアップデートについてご紹介します︕ 是⾮ご参加ください。
Elastic はオープンでフリーな超⾼速検索エンジンとデータの出⼊⼒インターフェースから構成され、あらゆるパブリッククラウドにデプロイできる、業界をリードする検索・分析プラットフォームです。
Elastic により企業や個⼈は魅⼒的な顧客 Web サイト体験やモバイルアプリ体験を提供できます。このセッションでは、Elastic による実装をサンプルアプリのデモを交えながらご紹介してい
きます。
デジタルイノベーション2022 オンライン (3/10)
https://ers.nikkeibp.co.jp/user/contents/2022w0307dionl/index.html#A_A-441B
Elastic Enterprise Search と Observability によるデジタルカスタマーエクスペリエンスの向上
Observability Conference 2022 Co-located Events Hands-on
https://event.cloudnativedays.jp/o11y2022/hands-on
Elastic ソリューションアーキテクト
による本イベント連携ハンズオン
ワークショップ開催 (前⽇)︕
(3/10 14:00-18:00)
URL:
https://event.cloudnativedays.jp/o11y
2022/hands-on
Elastic リソース
• 公式ドキュメント
https://www.elastic.co/guide/index.html
• デジタルカスタマーエクスペリエンスの向上
• DevOps ライフサイクルの進化
• 制限のないセキュリティ
• クラウドネイティブ アプリでの Elasticsearch
https://docs.microsoft.com/ja-jp/dotnet/architecture/cloud-
native/elastic-search-in-azure
• Elastic APM Agent
https://www.elastic.co/guide/en/apm/agent/index.html
• Azure での検索データ ストアの選択
https://docs.microsoft.com/ja-jp/azure/architecture/data-
guide/technology-choices/search-options
• Elastic APM
https://www.elastic.co/jp/apm/
• Configuration on .NET Core
https://www.elastic.co/guide/en/apm/agent/dotnet/current/co
nfiguration-on-asp-net-core.html
• ASP.NET Core Quick Start
https://www.elastic.co/guide/en/apm/agent/dotnet/current/set
up-asp-net-core.html
Elastic リソース
公式ドキュメント
https://www.elastic.co/guide/index.html
Elastic APM Agent
https://www.elastic.co/guide/en/apm/agent/index.html
Reactivesearch
https://opensource.appbase.io/reactivesearch/
優れた React 検索エクスペリエンスを迅速に構築する⽅法
https://www.elastic.co/jp/blog/how-to-build-great-react-search-experiences-quickly
GKE サンプルソリューション 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
Thank you for your attention!
Appendix
(参考)
Logstash による
Elasticsearch へのドキュメント⼀括挿⼊
Logstash による Elasticsearch へのドキュメント⼀括挿⼊
https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-2017
sqlazuredb.conf という名前で作る
Logstash インストール(macOS の場合)
// brew の更新
brew update
// Elasticsearch インストール
brew install elasticsearch
// サービスを⼀覧表⽰したり、サービス(Elastic など)起動もできる
brew services list
brew services start elasticsearch
//Elastic が正常にインストールされたら、Logstash をインストール
//このタスクを達成するために必要なのは、別の brew コマンドだけ
brew install logstash
//インストールが終わったら同じくサービス起動
brew services start logstash
Azure SQL Database ⽤設定ファイル(logstash.conf)のコード例 (1)
"jdbc:sqlserver://hostname.database.windows.net:1433;
database=AdventureWorksLT;encrypt=true; hostNameInCertificate=*.database.windows.net"
”<username>@hostname"
”<password>"
/Users/(username)/Documents/sqljdbc_8.4/jpn/mssql-jdbc-8.4.1.jre8.jar"
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
"Select * from [SalesLT].[Customer]"
sqlazuredb.conf
com.microsoft.sqlserver.jdbc.SQLServerDriver
Azure SQL Database ⽤設定ファイル(logstash.confB)のコード例 (2)
sqlazuredb.conf
filter{}
output
{
stdout{
codec=>json_lines
}
elasticsearch{
cloud_id
=>":bynGyXZ6lYXN0LmF6dXJlLmVs8w867943534egGKh6GBZXQITdk34XN0aWMtY2xvdWQuY29tOjkyN…DMkNzA==="
cloud_auth => "elastic:pHkMI91iGYZ4DG9KCVNjxn2y”
index=>"customer1"
}
}
Logstash によるデータ取得と
Kibana によるインデックスパターン作成・データの表⽰
Elasticsearch CRUD 処理
新しいドキュメントの作成 -1
PUT booksbasic/_doc/1
{
"id": "1",
"title": ”Elastic ⼊⾨",
"date":"Oct 1, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author":{
"first_name": ”Shotaro",
"last_name": ”Suzuki"
}
}
•
•
•
•
•
新しいドキュメントの作成 -2
“title”: ”Elastic ⼊⾨ - Elasticsearch/Kibana/Logstash/Beats”
“title”: ”Elastic & ASP.NET Core 3.x プログラミング”
“title”: ”Elastic による AKS Log/Metric/APM 管理”
“title”: ”Visual Studio Code による Elasticsearch プログラミング”
“title”: ”Elastic Logstash/Beats 開発と管理 徹底解説”
•
•
ドキュメントの取得 - 1
•
•
(結果)
{
"_index": "books",
"_type": "_doc",
"_id": "1",
"_version": 2,
"_seq_no": 5,
"_primary_term": 1,
"found": true,
"_source": {
"title": "Elastic ⼊⾨",
"date": "Oct 21, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author": {
"first_name": ”Shotaro",
"last_name": "Suzuki"
}
}
}
GET booksbasic/_doc/1/
ドキュメントの取得 – 2 _source のみ
•
•
(結果)
{
"title": "Elastic ⼊⾨",
"date": "Oct 21, 2020",
"isbn": "ISBN123-4-56789-101-1",
"author": {
"first_name": "Shotaro",
"last_name": "Suzuki"
}
}
GET booksbasic/_doc/1/_source
ドキュメントの検索 – 1 全てのデータを検索
•
•
•
took – Elasticsearchが検索を実⾏するのにミリ秒単位の時間
timed_out –検索がタイムアウトしたかどうかを⽰します
_shards –検索されたシャードの数と、検索されたシャードの成功/失敗の数を⽰す
hits –検索結果
hits.total –検索条件に⼀致するドキュメントの総数
hits.hits –検索結果の実際の配列(デフォルトは最初の10ドキュメント)
hits.sort -結果のソートキー(スコアでソートする場合は⽋落)
POST booksbasic/_doc/_search
{
”query": {
“match_all” : {}
}
}
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
ドキュメントの検索 – 2 シャードとは
•
•
•
•
• コンテンツボリュームを⽔平に分割/スケーリングすることが可能
• シャード間(場合によっては複数のノード上)で操作を分散および並列化できるため パフォーマン
ス/スループットが向上
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
ドキュメントの特定のデータの検索 – クエリ DSL とは︖
•
•
POST booksbasic/_doc/_search
{
"query": {
"match" : {
"title" : ”Elastic"
}
}
}
Elasticsearch データをクエリする⽅法はたくさんあります。詳細についてはこちら。
https://www.elastic.co/guide/en/elasticsearch/guide/current/_most_important_queries.html
ドキュメントの更新 - 1(データの変更)
•
POST booksbasic/_doc/1/_update
{
"doc": {
"title": "Elastic ⼊⾨ -
Elasticsearch/Kibana/Logstash/Beats"
}
}
GET booksbasic/_doc/1
{
"title": "Elastic ⼊⾨ –
Elasticsearch/Kibana/Logstash/Beats",
"date": "Oct 21, 2020",
"author": {
"first_name": "Taro",
"last_name": "Sato"
}
}
ドキュメントの削除(データの削除)
•
•
DELETE booksbasic
DELETE booksbasic/_doc/3
ASP.NET Core x NEST
新しい ASP.NET Core Web アプリ作成
dotnet new mvc
Model の作成
• Elasticsearch のデータ
から JSON にシリアライズ
のため必要
• Book という名のクラスを
追加
public class Book
{
public string Title { get; set; }
public string Isbn { get; set; }
public int PageCount { get; set; }
public string ThumbnailUrl { get; set; }
public string ShortDescription { get; set; }
public string LongDescription { get; set; }
public string Status { get; set; }
public string Authors { get; set; }
public string Categories { get; set; }
}
Elasticsearch への接続を作成
• NEST ライブラリ追加
• Program.cs への追加
dotnet add package NEST
using Elasticsearch.Net;
using Nest;
using Elastic.Apm.NetCoreAll;
===
var pool = new SingleNodeConnectionPool
//ローカル実⾏の場合
(new Uri(“http://localhost:9200”));
var settings = new ConnectionSettings(pool)
.DefaultIndex("books");
var client = new ElasticClient(settings);
services.AddSingleton(client);
---
//Elastic APM 追加
app.UseAllElasticApm(builder.Configuration);
app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
---
Elasticsearch への接続を作成 - Elastic Cloud ⽤
•
var pool = new SingleNodeConnectionPool
(new Uri(http://localhost:9200/));
// Elastic Cloud デプロイ時に取得した値3つ (例)
https://elastic:oRHGj80iJUO6CF7WBUMiwyu1x@8009bf958
b6w5923b3c56983d4048df824.japaneast.azure.elastic-
cloud.com:9243
Search ⽤の HTML を作成 (index.cshtml 編集)
@model Nest.ISearchResponse<Book>
<form asp-controller="Home" asp-action="Index"
method="post">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
@if (Model.Documents.Any())
{
<h3>検索結果</h3>
<ul>
@foreach (var book in Model.Documents)
{
<li>Title: @book.Title (ISBN:
@book.Isbn)</li>
}
</ul>
}
• @model を
[ISearchResponse]<Book>
に設定
• これは Elasticsearch 呼び出し
からの応答のタイプ
• 検索クエリをサーバーにポストバック
できる HTML フォームを追加
• Elasticsearch に渡して結果をレ
ンダリング
• ⼀致するドキュメントのタイトルと
ISBN をレンダリングする単純な
ループを追加
Elasticsearch クエリー ① MatchAll
•
•
private readonly ElasticClient _client;
public HomeController(ILogger<HomeController> logger, ElasticClient client)
{
_logger = logger;
_client = client;
}
public IActionResult Index()
{
var results = _client.Search<Book>(s => s
.Query(q => q
.MatchAll()
)
);
return View(results);
}
インデックス内の全てのドキュメントを返す
クエリ
≒ RDBMS の "SELECT *" クエリ
Elasticsearch クエリー ② Term
•
public IActionResult Index()
{
ISearchResponse<Book> results;
if (!string.IsNullOrWhiteSpace(query))
{
var results = _client.Search<Book>(s => s
.Query(q => q
.Term(t => t)
.Field(f => f.Isbn)
.Value(query)
)
)
);
}
else
{
.Query(q => q
.MatchAll()
)
);
…
⽤語クエリ
正確なクエリに⼀致するドキュメントを
⾒つける
Elasticsearch クエリー ③ Match
•
public IActionResult Index(string query)
{
ISearchResponse<Book> results;
if (!string.IsNullOrWhiteSpace(query))
{
results = _client.Search<Book>(s => s
.Query(q => q
.Match(t => t
.Field(f => f.Title)
.Query(query)
)
)
);
}
else
{
…
ユーザーにテキストを⼊⼒し、そのテキス
トをドキュメント内のコンテンツの任意の
部分と⼀致させる
[重要な点]
• 複数のドキュメントを照合
• すべての⼀致する⽂書には、タイトル
に、当該テキストが含まれる
• ⼩⽂字で指定したのにマッチする
• この動作はカスタムアナライザーで 上
書き可能
• これは別の⾼度なトピック
• Elasticsearch でサポートされる
クエリは他にも多数
• Term クエリと Match クエリは 基
本的ユースケース
Elasticsearch Aggregations ー 集計
Elasticsearch Aggregations ー 範囲集計
•
…
results = _client.Search<Book>(s => s
.Query(q => q
.MatchAll()
)
.Aggregations(a => a
.Range("pageCounts", r => r
.Field(f => f.PageCount)
.Ranges(r => r.From(0),
r => r.From(200).To(400),
r => r.From(400).To(600),
r => r.From(600)
)
)
…
[重要な点]
• MatchAll クエリに加えて、集計メソッ
ドを使⽤
• "範囲" 集計を指定
• Index.cshtml も編集必要
Elasticsearch Aggregations ー 条件集計
•
…
)
.Aggregations(a => a
.Range("pageCounts", r => r
.Field(f => f.PageCount)
.Ranges(r => r.From(0),
r => r.From(200).To(400),
r => r.From(400).To(600),
r => r.From(600)
)
)
.Terms("categories", t => t
.Field("categories.keyword")
)
)
…
• タグバブルやファセットUIシステム
のユースケース
• ⽤語集計
• ≒ RDBMS の“GROUP BY”句
• ドキュメント間でさまざまな単語(ま
たは「⽤語」)に関する統計を取
得可能
• Index.cshtml も編集必要
フィールド値が⽂字列 “categories.keyword” に
設定されているのは、⽤語の集計は負荷の⾼い操
作であり、通常は "text" フィールドでは実⾏されな
いため
Search ⽤の HTML を修正 (index.cshtml 編集)
@model Nest.ISearchResponse<Book>
<form asp-controller="Home" asp-action="Index" method="post">
<input type="text" name="query" />
<input type="submit" value="検索" />
</form>
@if (Model.Documents.Any())
{
<h3>検索結果</h3>
<ul>
@foreach (var book in Model.Documents)
{
<li>Title: @book.Title (ISBN:
@book.Isbn)</li>
}
</ul>
}
@if (Model.Aggregations != null)
{
<h3>集計</h3>
@if (Model.Aggregations.ContainsKey("pageCounts"))
{
<h4>ページ数 (範囲)</h4>
<ul>
@foreach (var bucket in
Model.Aggregations.Range("pageCounts").Buckets)
{
<li>@bucket.Key: @bucket.DocCount</li>
}
</ul>
}
@if (Model.Aggregations.ContainsKey("categories"))
{
<h4>カテゴリ (Terms)</h4>
<ul>
@foreach (var bucket in
Model.Aggregations.Terms("categories").Buckets)
{
<li>@bucket.Key: @bucket.DocCount</li>
}
</ul>
}
}
便利な機能のご紹介
- ReactiveSearch
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218
ブートストラッププロジェクト
プロジェクトをスキャフォールディング
するために必要なステップ
● Elasticsearch クラスター作成
● データセットの取得
● データセットを Elasticsearch
にインポートする
● React プロジェクトの作成
● Reactive search インストール
● <ReactiveBase /> での
Elasticsearch への接続
<ReactiveBase
app="yelp"
url="YOUR_ELASTICSEARCH_CLUSTER_URL"
// 他のコンポーネントがこの中に配置される
<div>
Hello ReactiveSearch!
</div>
</ReactiveBase>
<DataSearch
componentId="SearchSensor"
dataField={["name", "name.search",
"name.autosuggest"]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
fieldWeights={[3, 1, 1, 2, 1, 1]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<MultiList
componentId="CategorySensor"
dataField="categories.keyword"
/>
<ReactiveList
componentId="SearchResult"
react={{
and: ['CategorySensor’,
'SearchSensor'],
}}
renderItem={res =>
<div>{res.name}</div>}
/>
import { ReactiveOpenStreetMap } from
'@appbaseio/reactivemaps';
<ReactiveOpenStreetMap
componentId="SearchResult"
react={{
and: ['CategorySensor',
'SearchSensor'],
}}
dataField="location"
/>
<link rel="stylesheet”
href="https://cdnjs.cloudflare.com/ajax/libs
/leaflet/1.3.4/leaflet.css"/>
Elasticsearch への接続
<DataSearch /> サンプルコード
検索フィールドの追加
フィールド内の重み付け
<MultiList />サンプルコード
<ReactiveList /> サンプルコード
<ReactiveMap /> サンプルコード
Add Map Styles の追加
ReactiveSearch
実装例
ReactiveSearch インストール
yarn add @appbaseio/reactivesearch
https://docs.appbase.io/docs/reactivesearch/v3/overview/quickstart/
Elasticsearch への接続
<ReactiveBase
app="yelp"
url="YOUR_ELASTICSEARCH_CLUSTER_URL"
// 他のコンポーネントがこの中に配置される
<div>
Hello ReactiveSearch!
</div>
</ReactiveBase>
https://docs.appbase.io/docs/reactivesearch/v3/overview/quickstart/
Restaurant Search
<DataSearch
componentId="SearchSensor"
dataField={["name", "name.search",
"name.autosuggest"]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
<DataSearch /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
検索フィールドの追加
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
フィールド内の重み付け
https://docs.appbase.io/docs/reactivesearch/v3/search/datasearch/
<DataSearch
componentId="SearchSensor"
dataField={[
"name",
"name.search",
"name.autosuggest",
"city",
"city.search",
"city.autosuggest"
]}
fieldWeights={[3, 1, 1, 2, 1, 1]}
onValueSelected={(value, cause, source) => {
console.log("value", value);
console.log("source", source);
}}
/>
Restaurant Category Filter
<MultiList
componentId="CategorySensor"
dataField="categories.keyword"
/>
<MultiList />サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/multilist/
Restaurants Search Result
<ReactiveList /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/search/reactivelist/
<ReactiveList
componentId="SearchResult"
react={{
and: ['CategorySensor', 'SearchSensor'],
}}
renderItem={res => <div>{res.name}</div>}
/>
Restaurant Locations
ReactiveMap インストール
yarn add @appbaseio/reactivemaps
参考︓ renderalldata
https://docs.appbase.io/docs/reactivesearch/v3/map/reactiveopenstreetmap/
<ReactiveMap /> サンプルコード
https://docs.appbase.io/docs/reactivesearch/v3/map/reactiveopenstreetmap/
import { ReactiveOpenStreetMap } from
'@appbaseio/reactivemaps';
<ReactiveOpenStreetMap
componentId="SearchResult"
react={{
and: ['CategorySensor', 'SearchSensor'],
}}
dataField="location"
/>
Add Map Styles の追加
• OpenStreetMap / GoogleMaps を使⽤するには、インデックスにスタイルを
追加
• index.html またはコードベースにインポート可能
<link rel="stylesheet”
href="https://cdnjs.cloudflare.com/ajax/libs/
leaflet/1.3.4/leaflet.css"/>
他の事例
オンライン決済サービスの監視を⽀える Elastic Stack
ECサイト向けに様々な決済⼿段を提供 / 加盟店に決済画⾯は決済APIを提供するシステム(年間取引額2兆円、2億件以上のトランザクション)
https://www.elastic.co/jp/customers/softbank-payment-service
事例︓ソフトバンク・ペイメント・サービス株式会社
オンライン決済サービスの状況をほぼリアルタイムで可視化
• ダッシュボードで、成功した決済はグリーン、失敗したものはレッド、決済⼿段ごと
に OK/NG の⽐率の推移を俯瞰。「1. グリーンが急激に少なくなったら要注意。2.
レッドが急激に多くなったら要注意。」
• 誰でも、いつでも、どこでも、簡単に、サービスの状況を把握
• 障害以外でも、爆売れ、不正利⽤といった、加盟店の変化に気がつく
• エンジニアの決済トランザクションへの関⼼が⾼まる
Machine Learning で決済トランザクションの異常を検知
• 決済トランザクションの合計の⽇次の増減を3周期で学習し、それが予測した範囲
から⼤きく外れれば、異常として検出
• 可視化だけでは埋蔵してしまう変化を ML にて新たに発⾒
可視化をビジネスデータにまで広げる
• 2年分の売上推移を部署別・案件別に表現。ヒートマップで営業部⾨や個⼈の⽬標
達成率を表現。年間の加盟店契約の獲得状況を都道府県マップに表⽰
• サービスサイト閲覧状況を、アクセス元の IP アドレスから企業名を推定し、契約
済み企業からのアクセス、未契約企業からのアクセスランキングを作成
• ⾮エンジニアでもデータ投⼊からダッシュボードの作成までできる
事例︓株式会社リコー
すべてのログを Elastic Stack 上に集約。35 ノードで1 ⽇2TB のログを監視
「リコーグループ全システムの IT デバイスで発⽣する1 ⽇2 テラバイトにおよぶログが、すべて Elastic Stack に送り込まれます。これを35ノード、約400テラバ
イトのクラスターで処理します。インデックス数は約10,000 でサイズは約250 テラバイト。ドキュメント数は3,450 億にも及びますが、これは昨年12 ⽉の話で、
現在はさらに増えている状況です」と話す。Elastic Stack の製品については、Elasticsearch、Logstash、Kibana、Filebeat、Packetbeat、
Winlogbeat、Monitoring、Alerting 等が使⽤されており、特に⾒える化でキーとなる Kibana については、セキュリティ統括部のオフィス室内で、⼤型
モニターに常時チャートが表⽰され、担当者がシステムの状況をリアルタイムかつ直感的に把握できるようになっている。
https://www.elastic.co/jp/customers/ricoh
事例︓ブローダービズ株式会社
機械学習を駆使して時系列の映像データを解析。⾷品製造⼯場での作業を"⾒守り"、
異常⾏動発⽣をリアルタイムに検知してトラブルを回避
https://www.elastic.co/jp/customers/broaderbiz
⾷品偽装防⽌と働き⽅改⾰
課題
•⻑時間にわたる⼯場作業を、管理者の⽬のみによって監視し続
けることは容易ではない
•担当者は、制服、帽⼦、マスクを着⽤しているため、⾒た⽬だけ
では個⼈の特定が困難
•定量化された数値などによって状況を把握・記録することができ
ず、過去と照らし合わせることも困難
•録画されたビデオ映像は、問題が発⽣した後の証跡として利⽤
できるが、瞬時の対応には不向き
Solution
⼈⼿による作業を、AI を駆使したシステムによって“⾒守り”、担
当者の姿勢やある時間内での⾏動を、数値化された統計値との
⽐較し、通常の⾏動を逸脱した異常事態の発⽣を瞬時に判断
することで、トラブルの拡⼤を未然に防ぐという仕組みの実現。
NEDO(国⽴研究開発法⼈新エネルギー・産業技術総合開
発機構)の共同開発⽀援事業として認められた。
事例︓⽇本経済新聞社
⽇経電⼦版の記事検索およびログ解析の両⽅を1つの仕組みで実現
利⽤範囲の広さで Elasticsearch を採⽤
Elasticsearch を選定したのは、記事検索とログの可視化の両⽅に
使える利⽤範囲の広さが最⼤の理由
15台のクラスタ構成で、1秒あたり9000リクエスト以上という⾼い
性能を発揮
記事検索とログ解析に Elasticsearch を活⽤
⽇経電⼦版の記事は、5年分で約200万件、データサイズは5GB。記事の更新は、1⽇あたり数千回、ピーク時には1分間に300件程度の記事が更
新。検索における利⽤者からのアクセスは、1秒あたり100回程度だが、1秒あたり数千回のアクセスも想定
ログ解析で Elasticsearch を利⽤した最⼤のメリットは、専⾨的な深い知識がなくてもログ解析が可能になること。Elasticsearch と Kibana を利⽤
したログ解析により、たとえば、記事検索のレスポンスにどれくらいの時間がかかっているかを容易に解析でき、アプリケーションのどこにボトルネックがあるのか、
改善するべき機能はどこなのかを迅速に把握できる
https://www.elastic.co/jp/customers/nikkei
“Elasticsearch と Kibana を活⽤することで、エンジニア秘伝の“タレ( shell 芸)”を使って可視化していたログ解析を URL や、画
像で即座に社内共有できるようになりました。これまではログ解析ができるエンジニアが2⼈しかいなかったのですが、Elasticsearch と
Kibana を利⽤することで、秘伝のタレが不要になり、ログ解析ができるエンジニアを6⼈以上に増やすことができましたようになりました。"
– 日本経済新聞社 デジタル編成局 編成部 梅崎裕利氏
事例︓スイス・ライフ
Elasticsearch が⽣み出す360°の顧客管理
Elasticsearch で1000万⼈の顧客データのインデックス作成から分析、パブリッシュまでリアルタイムに実⾏
スイス・ライフにおける課題
スイス・ライフは保険や資産管理サービスを⼿掛ける⼤⼿企業で、フランスでは個⼈向け保険商品を主⼒に⾼いシェアを持つ
スイス・ライフ・フランスの1000万⼈の顧客情報に対し、さまざまなフォーマットや、さまざまなタイプのユーザアクセスにより、データへの均質なアクセスを
維持することが難しくなり、情報が「サイロ化」していた
Elasticsearchによる解決
スムーズな運⽤と、情報への均質なアクセスを実現させるため、スイス・ライフ・フランスは Elasticsearch で顧客データのインデックスとパブリッシュを⾏った
あらゆる顧客の窓⼝となる Web サイトとモバイルアプリケーションにデータを提供するため、まず Elasticsearch ですべての顧客データを1か所に集約
顧客記録、契約データ、マーケット分類データ、年⾦と保険スコアのすべての情報を横断してリアルタイムにクエリ。
すべての顧客がポータルサイトにアクセスでき、顧客情報と契約情報をすばやく取得できる機能を提供。また、情報が更新された場合、ソースシステムで
10秒以内にインデックスを作成。
https://www.elastic.co/jp/customers/swiss-life
“スピードと信頼性は不可⽋です。Elasticsearch がデータをリアルタイムにインデックスするようになり、すべてが進
化しました。"
– クリスチャン・ファン・チョン, スイス・ライフ・フランス、チーフエンタープライズアーキテクト
事例︓PSCU(⽶国有数の信⽤組合サービス組織)
Elastic は信⽤組合に対する数百万ドル相当の不正⾏為被害を防⽌することでリスク回避を実現
Elastic 製システムをデプロイしてからわずか18か⽉間で、3,500万ドルもの不正⾏為を阻⽌
PSCU における課題
PSCUは、⽶国有数の信⽤組合サービス組織で1,500の信⽤組合にサービスを提供し、年間38億件もの取引を扱う。
会員に対して⽀払い処理、リスク管理、データ分析、オンラインバンキング、モバイルプラットフォームなどさまざまな⾦融サービスを提供
年⽉が経つにつれデータベースが巨⼤化しデータ⼊⼒が困難になり、前⽇のデータを読み込むのに丸1⽇かかる状態で適切なタイミングで不正検知
ができていなかった。
Elasticsearch による解決
会員のオンラインログイン、IP アドレス、住所、サポートセンターへの問い合わせ履歴など、数多くのデータソースを Elasticsearch に集約しログを可視化
当初は内部の不正⾏為検知が⽬的であったが問題なく稼働したため、さらに全⽶1500の信⽤組合の外部からの不正⾏為を阻⽌できるよう、幅広い⾦
融関連データソースからのログを追加
機械学習を使⽤した不正検知を導⼊し導⼊後18ヶ⽉で3,500万ドルもの不正⾏為を阻⽌
単なる不正検知にとどまらず、災害発⽣時の地域で検知された平時と異なる⾏動(⾼価な発電機、⼤量の⽸詰などを突然購⼊するなど)をブロックしな
い機能なども追加
https://www.elastic.co/jp/customers/pscu
"Elastic Stackを構築したことで、不正⾏為を従来よりもはるかに簡単に検知できるようになりました。Elasticプラットフォームに⼊⼒
するデータベースを⼤幅に増やしたことで、従来は決して気付かなかったデータの特徴をとらえられるようになりました。現在では、発⽣中
の不正⾏為を検知できるだけでなく、発⽣前にそれを検知できるようになりました。"
– ジョナソン・ロビンソン氏, PSCU、不正インテリジェンス部門マネージャー
事例︓古野電気株式会社
船舶運航の安全・安⼼・効率化を⽀えるサービスを提供
データ・分析結果を得るまでの平均時間(MTTR)の短縮率 94%
差別化されたカスタマーエクスペリエンス
古野電気は、同社の Elastic オブザーバビリティソリューショ
ンの⼀部として Kibana と Elastic Maps を採⽤したこと
で、船上でのデータ使⽤に関するデータ・分析結果をより多
く得られるようになっています。それらのデータ・分析結果は、
お客様の船舶と陸上の接続コストとパフォーマンスの改善に
役⽴ちます。
コストパフォーマンスに優れたプロアクティブなサービスを提
供
今後発⽣しそうな機器の障害、予兆を検知し、予防保守
を⾏う必要があれば、修理内容を特定し、部品を迅速に⼿
配することで費⽤を抑えながら効果的な対応をご⽀援しま
す。
安全で効率的な航⾏を実現
古野電気は、Elastic Cloud の Elasticsearch
Service を活⽤することで、ライフサイクルソリューションを効
果的に多くのお客様へ展開することができます。また、お客
様のニーズにより最適なサービスプランをパッケージ化し販売
することで、安全で効率的な航⾏へ貢献します。
https://www.elastic.co/jp/customers/furuno
1 of 102

Recommended

オーバーエンジニアリングって何? #devsumi #devsumiA by
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAOre Product
5K views69 slides
マイクロサービスにおける 非同期アーキテクチャ by
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャota42y
49K views105 slides
開発速度が速い #とは(LayerX社内資料) by
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
61.5K views18 slides
大企業アジャイルの勘所 #devlovex #devlovexd by
大企業アジャイルの勘所 #devlovex #devlovexd大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexdItsuki Kuroda
46.8K views109 slides
フロー効率性とリソース効率性について #xpjug by
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
106.2K views62 slides
心理的安全性を 0から80ぐらいに上げた話 by
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話Yusuke Hisatsu
102.1K views26 slides

More Related Content

What's hot

DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント by
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントTakeshi Kakeda
2.7K views74 slides
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
70.7K views89 slides
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善 by
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
528 views20 slides
それはYAGNIか? それとも思考停止か? by
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
29.3K views41 slides
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」 by
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」Developers Summit
1.5K views68 slides
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ by
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
17.1K views78 slides

What's hot(20)

DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント by Takeshi Kakeda
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメントDX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
DX時代のITエンジニアに送る、アジャイル式「いきいき」ヘルスマネジメント
Takeshi Kakeda2.7K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) by Takuto Wada
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada70.7K views
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善 by Ito Takayuki
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki528 views
それはYAGNIか? それとも思考停止か? by Yoshitaka Kawashima
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima29.3K views
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」 by Developers Summit
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
【18-A-2】ゲーミフィケーション・エバンジェリストが見る「あなたの技術力が“ワクワクするサービス”に変わる未来」
Developers Summit1.5K views
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ by Y Watanabe
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe17.1K views
マイクロサービスにおける 結果整合性との戦い by ota42y
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y12.3K views
ソフトウェアにおける 複雑さとは何なのか? by Yoshitaka Kawashima
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima1.1K views
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 by Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada148.7K views
アジャイルチームの成果指標設計、進め方と注意点 -開発チームの事業貢献を見える化するには by Graat(グラーツ)
アジャイルチームの成果指標設計、進め方と注意点 -開発チームの事業貢献を見える化するにはアジャイルチームの成果指標設計、進め方と注意点 -開発チームの事業貢献を見える化するには
アジャイルチームの成果指標設計、進め方と注意点 -開発チームの事業貢献を見える化するには
組織にテストを書く文化を根付かせる戦略と戦術 by Takuto Wada
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada76.4K views
「速」を落とさないコードレビュー by Takafumi ONAKA
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA55.5K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani101.5K views
マイクロにしすぎた結果がこれだよ! by mosa siru
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru132.6K views
メタプログラミングって何だろう by Kota Mizushima
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima28.7K views
イミュータブルデータモデルの極意 by Yoshitaka Kawashima
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima23.8K views
インフラエンジニアってなんでしたっけ(仮) by Akihiro Kuwano
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
Akihiro Kuwano102.6K views
フロー効率性とリソース効率性、再入門 #devlove #devkan by Itsuki Kuroda
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda48.2K views
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割 by Recruit Lifestyle Co., Ltd.
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割

Similar to Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218

Building modernapplicationwithelasiccloud by
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudShotaro Suzuki
588 views107 slides
Centralized Observability for the Azure Ecosystem by
Centralized Observability for the Azure EcosystemCentralized Observability for the Azure Ecosystem
Centralized Observability for the Azure EcosystemShotaro Suzuki
340 views40 slides
Cloud Native and Agile Approach by
Cloud Native and Agile ApproachCloud Native and Agile Approach
Cloud Native and Agile ApproachShinya Yanagihara
167 views65 slides
elastic-mabl-co-webinar-20220729 by
elastic-mabl-co-webinar-20220729elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729Shotaro Suzuki
48 views26 slides
Learn, build, and scale with elastic - realizing great programming experience... by
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...Shotaro Suzuki
2.8K views99 slides
Migrating tocloudnativeapplicationwithusingelasticapm by
Migrating tocloudnativeapplicationwithusingelasticapmMigrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapmShotaro Suzuki
420 views42 slides

Similar to Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218(20)

Building modernapplicationwithelasiccloud by Shotaro Suzuki
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
Shotaro Suzuki588 views
Centralized Observability for the Azure Ecosystem by Shotaro Suzuki
Centralized Observability for the Azure EcosystemCentralized Observability for the Azure Ecosystem
Centralized Observability for the Azure Ecosystem
Shotaro Suzuki340 views
elastic-mabl-co-webinar-20220729 by Shotaro Suzuki
elastic-mabl-co-webinar-20220729elastic-mabl-co-webinar-20220729
elastic-mabl-co-webinar-20220729
Shotaro Suzuki48 views
Learn, build, and scale with elastic - realizing great programming experience... by Shotaro Suzuki
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...
Shotaro Suzuki2.8K views
Migrating tocloudnativeapplicationwithusingelasticapm by Shotaro Suzuki
Migrating tocloudnativeapplicationwithusingelasticapmMigrating tocloudnativeapplicationwithusingelasticapm
Migrating tocloudnativeapplicationwithusingelasticapm
Shotaro Suzuki420 views
Big query and elasticsearch insight at scale by Shotaro Suzuki
Big query and elasticsearch insight at scaleBig query and elasticsearch insight at scale
Big query and elasticsearch insight at scale
Shotaro Suzuki223 views
Microsoft Azure で実現するAIとIoT最新情報 by Yasuhiro Kobayashi
Microsoft Azure で実現するAIとIoT最新情報Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報
Yasuhiro Kobayashi330 views
[teratail Study ~機械学習編#2~] Microsoft AzureのAI関連サービス by Naoki (Neo) SATO
[teratail Study ~機械学習編#2~] Microsoft AzureのAI関連サービス[teratail Study ~機械学習編#2~] Microsoft AzureのAI関連サービス
[teratail Study ~機械学習編#2~] Microsoft AzureのAI関連サービス
Naoki (Neo) SATO7.2K views
Evolution of Observability and APM with using Elastic and Microsoft Azure by Shotaro Suzuki
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
Shotaro Suzuki194 views
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会) by Takeshi Fukuhara
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Part 4: Power Platform 概説 (製造リファレンス・アーキテクチャ勉強会)
Takeshi Fukuhara971 views
Data x AI x API で考えるビジネスインフラ by Daiyu Hatakeyama
Data x AI x API で考えるビジネスインフラData x AI x API で考えるビジネスインフラ
Data x AI x API で考えるビジネスインフラ
Daiyu Hatakeyama679 views
ERPのデータをフロントシステムでどう活かすか by Ryuji Enoki
ERPのデータをフロントシステムでどう活かすかERPのデータをフロントシステムでどう活かすか
ERPのデータをフロントシステムでどう活かすか
Ryuji Enoki1.9K views
Dyna traceによるuxマネジメント by 伸夫 森本
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
伸夫 森本854 views
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap by Ayako Omori
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recapマイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
マイクロソフトの AI プラットフォーム & Cognitive Services 概要 ~ Ignite 2020 Recap
Ayako Omori299 views
JPC2017 [A1] ダイレクトCSPが語る!コンサンプションを最大化するMicrosoft Azureビジネスの極意 by MPN Japan
JPC2017 [A1] ダイレクトCSPが語る!コンサンプションを最大化するMicrosoft Azureビジネスの極意JPC2017 [A1] ダイレクトCSPが語る!コンサンプションを最大化するMicrosoft Azureビジネスの極意
JPC2017 [A1] ダイレクトCSPが語る!コンサンプションを最大化するMicrosoft Azureビジネスの極意
MPN Japan1.1K views
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方 by Microsoft Azure Japan
ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方ドミノピザおよびJet.comの事例から学ぶストレスフリーな顧客体験の作り方
ドミノピザおよびJet.comの事例 から学ぶストレスフリーな 顧客体験の作り方
Moving from on prem to managed services with elastic on azure-final by Shotaro Suzuki
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
Shotaro Suzuki391 views

More from Shotaro Suzuki

This is how our first offline technical event in three years was able to succ... by
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...Shotaro Suzuki
477 views47 slides
Introducing the new features of the Elastic 8.6 release.pdf by
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.pdfShotaro Suzuki
73 views150 slides
NET MAUI for .NET 7 for iOS, Android app development by
 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 Shotaro Suzuki
358 views72 slides
What's New in the Elastic 8.5 Release by
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 ReleaseShotaro Suzuki
93 views156 slides
What's New in the Elastic 8.4 Release by
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 ReleaseShotaro Suzuki
115 views157 slides
devreljapan2022evaadvoc-final.pdf by
devreljapan2022evaadvoc-final.pdfdevreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdfShotaro Suzuki
186 views33 slides

More from Shotaro Suzuki(20)

This is how our first offline technical event in three years was able to succ... by Shotaro Suzuki
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...
Shotaro Suzuki477 views
Introducing the new features of the Elastic 8.6 release.pdf by Shotaro Suzuki
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
Shotaro Suzuki73 views
NET MAUI for .NET 7 for iOS, Android app development by Shotaro Suzuki
 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
Shotaro Suzuki358 views
What's New in the Elastic 8.5 Release by Shotaro Suzuki
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
Shotaro Suzuki93 views
What's New in the Elastic 8.4 Release by Shotaro Suzuki
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
Shotaro Suzuki115 views
devreljapan2022evaadvoc-final.pdf by Shotaro Suzuki
devreljapan2022evaadvoc-final.pdfdevreljapan2022evaadvoc-final.pdf
devreljapan2022evaadvoc-final.pdf
Shotaro Suzuki186 views
Application development with c#, .net 6, blazor web assembly, asp.net web api... by Shotaro Suzuki
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...
Shotaro Suzuki223 views
Discover what's new in the Elastic 8.3 release - Find, monitor, and protect e... by Shotaro Suzuki
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...
Shotaro Suzuki59 views
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library... by Shotaro Suzuki
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...
Shotaro Suzuki448 views
Elastic x Microsoft Azure Integration Evolution - Integrated Monitoring for S... by Shotaro Suzuki
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...
Shotaro Suzuki172 views
Building 3D mobile apps using Power Apps Mixed Reality controls, Azure SQL Da... by Shotaro Suzuki
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...
Shotaro Suzuki447 views
What's New in the Elastic 8.2 Release - Seamless User Experience with Search - by Shotaro Suzuki
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 -
Shotaro Suzuki212 views
Application development with c#, .net 6, blazor web assembly, asp.net web api... by Shotaro Suzuki
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...
Shotaro Suzuki355 views
Building Software Reliability through Distributed Tracing.pdf by Shotaro Suzuki
Building Software Reliability through Distributed Tracing.pdfBuilding Software Reliability through Distributed Tracing.pdf
Building Software Reliability through Distributed Tracing.pdf
Shotaro Suzuki159 views
Building a Flutter Development Environment with VSCode and Useful Extensions by Shotaro Suzuki
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
Shotaro Suzuki419 views
Application development with c#, .net 6, blazor web assembly, asp.net web api... by Shotaro Suzuki
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...
Shotaro Suzuki413 views
Introducing Elastic 8.1 Release - More Integration, Faster Indexing Speed, Lo... by Shotaro Suzuki
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...
Shotaro Suzuki228 views
Application development with c#, .net 6, blazor web assembly, asp.net web api... by Shotaro Suzuki
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...
Shotaro Suzuki316 views
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and... by Shotaro Suzuki
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Shotaro Suzuki378 views
Let's build a simple app with .net 6 asp.net core web api, react, and elasti... by Shotaro Suzuki
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki368 views

Recently uploaded

JJUG CCC.pptx by
JJUG CCC.pptxJJUG CCC.pptx
JJUG CCC.pptxKanta Sasaki
6 views14 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
376 views15 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
18 views17 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
71 views29 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
23 views38 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
121 views64 slides

Recently uploaded(11)

SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda376 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga18 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.71 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4353 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka88 views

Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_SearchAndObservability-20220218