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 improvemen...
Search
Kazuma Arimura
July 28, 2021
Programming
0
5k
リプレイスを通して実現した、 より高度なサービス改善 / 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
160
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
960
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
640
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
970
Rallyで支えるバージョン追従
pakio
0
1.1k
CUEを使ったJSONテンプレート管理
pakio
0
930
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
970
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
2.1k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
470
Other Decks in Programming
See All in Programming
PT AI без купюр
v0lka
0
230
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
300
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
250
從零到一:搭建你的第一個 Observability 平台
blueswen
1
880
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
130
RubyKaigiで得られる10の価値 〜Ruby話を聞くことだけが RubyKaigiじゃない〜
tomohiko9090
0
140
Development of an App for Intuitive AI Learning - Blockly Summit 2025
teba_eleven
0
110
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
280
GoのGenericsによるslice操作との付き合い方
syumai
2
500
Javaに鉄道指向プログラミング (Railway Oriented Pro gramming) のエッセンスを取り入れる/Bringing the Essence of Railway-Oriented Programming to Java
cocet33000
2
540
無関心の谷
kanayannet
0
160
Benchmark
sysong
0
140
Featured
See All Featured
Docker and Python
trallard
44
3.4k
How to Ace a Technical Interview
jacobian
276
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
A designer walks into a library…
pauljervisheath
206
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Invisible Side of Design
smashingmag
299
51k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
900
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