Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
リプレイスを通して実現した、 より高度なサービス改善 / Service improvement process through the system replacement
Search
Kazuma Arimura
July 28, 2021
Programming
0
4.2k
リプレイスを通して実現した、 より高度なサービス改善 / Service improvement process through the system replacement
https://zozotech-inc.connpass.com/event/217488/
Kazuma Arimura
July 28, 2021
Tweet
Share
More Decks by Kazuma Arimura
See All by Kazuma Arimura
Query Rulesの現在地
pakio
0
72
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
270
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
420
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
350
Rallyで支えるバージョン追従
pakio
0
650
CUEを使ったJSONテンプレート管理
pakio
0
580
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
640
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
1.4k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
350
Other Decks in Programming
See All in Programming
20240301_cocone_EMゆるミートアップvol6_LT資料
cocone
0
250
見せ算をScalaで実装してみた / Scalaわいわい勉強会 #2
arthur1
0
1.1k
ISUCONってなんだか難しそう……!!でも、初めてのISUCONにPHPで挑戦してきました!
kotomin_m
0
260
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
2
190
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
3.1k
Next.js で SPA を構築する際の辛み
hayatow
0
220
私がエッジを使う理由
chimame
9
3.6k
decksh - a little language for decks
ajstarks
4
18k
SmartHRにおけるプロダクトエンジニア/product_engineer_in_smarthr_20240227
saitoryc
5
180
Static Analysis Automation for Hunting Vulnerable Kernel Drivers
takahiro_haruyama
1
1.4k
PHPerKaigi 2024〜10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み〜
tshinowpub
1
170
BuefyのMaintainerを引き継いだ件
kikuomax
0
410
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
6.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
How to Ace a Technical Interview
jacobian
272
22k
Writing Fast Ruby
sferik
619
59k
A designer walks into a library…
pauljervisheath
199
23k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
RailsConf 2023
tenderlove
0
500
Robots, Beer and Maslow
schacon
PRO
154
7.9k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
Transcript
リプレイスを通して実現した、 より高度なサービス改善 ZOZO Tech Meetup 〜マイクロサービス化に取り組む、16年目のZOZOTOWN〜 株式会社ZOZOテクノロジーズ EC基盤本部/検索基盤部 検索基盤チーム
有村 和真 Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ EC基盤本部/検索基盤部 検索基盤チーム 有村 和真
2019年4月 新卒入社 スパイスカレーにハマり中。プランター菜園で唐辛子栽培始 めました。 Twitter: @paki0o / GitHub: @pakio 2
© ZOZO Technologies, Inc. https://zozo.jp/ • 日本最大級のファッション通販サイト • 1,400以上のショップ、8,200以上のブランドの取り扱い(ともに2021年3月 末時点)
• 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載 • コスメ専門モール「ZOZOCOSME」や靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など 3
© ZOZO Technologies, Inc. 4 ※ 実際のリプレイス作業の話ではなく、 リプレイス前後で何が変わったのかという話がメインです
© ZOZO Technologies, Inc. • 前提 : 「サービス改善」の定義 • リプレイス/マイクロサービス化によって実現したサービス改善
• まとめ 5 目次
© ZOZO Technologies, Inc. 「サービス改善」の定義 6 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません
© ZOZO Technologies, Inc. 「サービス改善」の定義 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません 7
サービス改善 ↓ 出来なかったことができるようになる
© ZOZO Technologies, Inc. 「サービス改善」の定義 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません 8
サービス改善 ↓ 出来なかったことができるようになる 例) ユーザ 重たい処理が高速化され、ストレスなくサイトの閲覧が可能になる マネージャ 実装工数が減ることで、より多くの改善に着手できるようになる 開発 システム的制約が減ることにより、クリーンな実装や技術的な挑戦が可能になる
© ZOZO Technologies, Inc. 9 そもそもリソースが… どこが遅いのか… 機能Aやりたいけど VBじゃ難しそう リプレイス/マイクロサービス化前の課題
© ZOZO Technologies, Inc. 10 • どこが遅いのか分析できない ◦ 言語的・環境的制約でロギングやパフォーマンス計測が困難 •
言語的制約(Classic ASP)でできない ◦ JSON操作など標準的な機能が欠けている • リソースを増やすための仲間集めが難しい ◦ 対外的なアピールがしづらい リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある
© ZOZO Technologies, Inc. 11 • どこが遅いのか分析できない ◦ 言語的・環境的制約でロギングやパフォーマンス計測が困難 •
言語的制約(Classic ASP)でできない ◦ JSON操作など標準的な機能が欠けている • リソースを増やすための仲間集めが難しい ◦ 対外的なアピールがしづらい ⇒ リプレイス/マイクロサービス化により改善した リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある
© ZOZO Technologies, Inc. リプレイスによって目指すシステム像 12 1. サービスの分析ができる 2. 機能の実装、改善が素早くできる
3. 仲間集めができる
© ZOZO Technologies, Inc. 実際に改善できたのか 13
© ZOZO Technologies, Inc. 実際に改善できたのか 14 1. どこが遅いのか分析できない ↓
分析できる世界へ 事例 : 検索リクエスト集約
© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約 15 ZOZOTOWN検索機能のマイクロサービス化への取り組み -
ZOZO Technologies TECH BLOG https://techblog.zozo.com/entry/zozotown-search-microservice マイクロサービス化前
© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
マイクロサービス化後 16 ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG https://techblog.zozo.com/entry/zozotown-search-microservice
© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
17 API Gateway
© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
18 API Gatewayによるマイクロサービスへのアクセス制御 https://speakerdeck.com/takenakaj/api-gatewayniyorumaikurosabisuhefals eakusesuzhi-yu 分散トレーシングによって、 必要な情報が一意なIDで特定可 Amazon Athena
© ZOZO Technologies, Inc. リプレイスによって目指すシステム像 19 1. ✓サービスの分析ができる 2. 機能の実装、改善が素早くできる
3. 仲間集めができる
© ZOZO Technologies, Inc. 実際に改善できたのか 20 2. 言語的制約(Classic ASP)でできない
↓ 効率よく開発できる世界へ 事例 : サジェスト改善
© ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
21 ユーザーログを活用したZOZOTOWNの検索サジェスト改善 https://techblog.zozo.com/entry/zozotown-search-suggestion リプレイス前 • 数十行の文字列結合処理 • HTTPクライアントを用いた通信 リプレイス後 • Elasticsearch公式のクエリビルダ • Elasticsearch公式のクライアント
© ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
22 ユーザーログを活用したZOZOTOWNの検索サジェスト改善 https://techblog.zozo.com/entry/zozotown-search-suggestion リプレイス前 • 数十行の文字列結合処理 • HTTPクライアントを用いた通信 リプレイス後 • Elasticsearch公式のクエリビルダ • Elasticsearch公式のクライアント ⇒ 大幅な工数削減/実装の高度化
© ZOZO Technologies, Inc. リプレイスによって目指すシステム像 23 1. ✓サービスの分析ができる 2. ✓機能の実装、改善が素早くできる
3. 仲間集めができる
© ZOZO Technologies, Inc. 実際に改善できたのか 24 3. リソースを増やすための仲間集めが難しい ↓
自信を持って仲間集めに動ける世界へ 事例 : 外部発信の強化
© ZOZO Technologies, Inc. 25 Q. テックブログの執筆にあたり、何にハードルを感じますか? 自信を持って仲間集めに動ける世界へ - 外部発信の強化
社の代表として発表するので、内容を濃いものにする必要がある点。 内容的に外だしできるハードルが高そうなイメージがあります。 普段の業務からテックブログにかける内容が見つけにくい、執筆のための時間を確保しにくい とにかく多くの人目に晒されるので自分の発信能力では追いつかない感がある。 ※社内で実施したテクニカルライティング勉強会のアンケート結果
© ZOZO Technologies, Inc. 26 Q. テックブログの執筆にあたり、何にハードルを感じますか? 自信を持って仲間集めに動ける世界へ - 外部発信の強化
社の代表として発表するので、内容を濃いものにする必要がある点。 内容的に外だしできるハードルが高そうなイメージがあります。 普段の業務からテックブログにかける内容が見つけにくい、執筆のための時間を確保しにくい とにかく多くの人目に晒されるので自分の発信能力では追いつかない感がある。 ※社内で実施したテクニカルライティング勉強会のアンケート結果 ⇒ アウトプットを増やすには、ある程度チャレンジングなことが必要
© ZOZO Technologies, Inc. 自信を持って仲間集めに動ける世界へ - 外部発信の強化 27 種別 採用技術
利用箇所 開発言語 Java (Spring Boot) 検索API Python チーム内ツール全般 ミドルウェア Elasticsearch 検索エンジン 監視 Datadog 監視全般 Sentry エラー監視/管理 関連ツール SonarCloud 静的解析 … 検索APIで採用している技術 ⇒ 標準的な技術スタックをベースとしたうえで、改善に取り組める環境
© ZOZO Technologies, Inc. 自信を持って仲間集めに動ける世界へ - 外部発信の強化
28
© ZOZO Technologies, Inc. リプレイスによって目指すシステム像 29 1. ✓サービスの分析ができる 2. ✓機能の実装、改善が素早くできる
3. ✓仲間集めができる
© ZOZO Technologies, Inc. まとめ • リプレイス/マイクロサービス化によって開発者体験向上 • スピーディーな改善が可能に
• 技術的なプレゼンスの向上/仲間集めにも貢献 30
© ZOZO Technologies, Inc. We are hiring! 31 ZOZOTOWN 検索エンジニア
None