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
5.1k
リプレイスを通して実現した、 より高度なサービス改善 / 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
170
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
1k
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
650
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
1k
Rallyで支えるバージョン追従
pakio
0
1.1k
CUEを使ったJSONテンプレート管理
pakio
0
950
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
990
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
2.2k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
490
Other Decks in Programming
See All in Programming
The State of Fluid (2025)
s2b
0
120
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.4k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
340
iOS開発スターターキットの作り方
akidon0000
0
240
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
200
構文解析器入門
ydah
7
2.1k
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
240
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
360
自作OSでDOOMを動かしてみた
zakki0925224
1
1.3k
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
250
PHPカンファレンス関西2025 基調講演
sugimotokei
6
1.1k
Vibe coding コードレビュー
kinopeee
0
430
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
How GitHub (no longer) Works
holman
314
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Gamification - CAS2011
davidbonilla
81
5.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Building an army of robots
kneath
306
45k
Designing for Performance
lara
610
69k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Facilitating Awesome Meetings
lara
54
6.5k
Code Review Best Practice
trishagee
69
19k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
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