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
4.6k
リプレイスを通して実現した、 より高度なサービス改善 / 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
110
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
700
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
560
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
730
Rallyで支えるバージョン追従
pakio
0
900
CUEを使ったJSONテンプレート管理
pakio
0
830
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
880
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
1.8k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
400
Other Decks in Programming
See All in Programming
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Amazon Qを使ってIaCを触ろう!
maruto
0
400
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
CSC509 Lecture 11
javiergs
PRO
0
180
最新TCAキャッチアップ
0si43
0
140
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
280
CSC509 Lecture 09
javiergs
PRO
0
140
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
250
距離関数を極める! / SESSIONS 2024
gam0022
0
280
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
Featured
See All Featured
Writing Fast Ruby
sferik
627
61k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Optimizing for Happiness
mojombo
376
70k
A Philosophy of Restraint
colly
203
16k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Agile that works and the tools we love
rasmusluckow
327
21k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
RailsConf 2023
tenderlove
29
900
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
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