Slide 1

Slide 1 text

リプレイスを通して実現した、
 より高度なサービス改善
 ZOZO Tech Meetup
 〜マイクロサービス化に取り組む、16年目のZOZOTOWN〜
 株式会社ZOZOテクノロジーズ
 EC基盤本部/検索基盤部 
 検索基盤チーム
 有村 和真
 Copyright © ZOZO Technologies, Inc.

Slide 2

Slide 2 text

© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 EC基盤本部/検索基盤部 
 検索基盤チーム 有村 和真
 2019年4月 新卒入社
 スパイスカレーにハマり中。プランター菜園で唐辛子栽培始 めました。
 
 Twitter: @paki0o / GitHub: @pakio
 
 2

Slide 3

Slide 3 text

© ZOZO Technologies, Inc. https://zozo.jp/
 ● 日本最大級のファッション通販サイト
 ● 1,400以上のショップ、8,200以上のブランドの取り扱い(ともに2021年3月 末時点)
 ● 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載
 ● コスメ専門モール「ZOZOCOSME」や靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 ● 即日配送サービス
 ● ギフトラッピングサービス
 ● ツケ払い など
 3

Slide 4

Slide 4 text

© ZOZO Technologies, Inc. 4 ※ 実際のリプレイス作業の話ではなく、
 リプレイス前後で何が変わったのかという話がメインです


Slide 5

Slide 5 text

© ZOZO Technologies, Inc. ● 前提 : 「サービス改善」の定義
 ● リプレイス/マイクロサービス化によって実現したサービス改善
 ● まとめ
 5 目次


Slide 6

Slide 6 text

© ZOZO Technologies, Inc. 「サービス改善」の定義
 6 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません

Slide 7

Slide 7 text

© ZOZO Technologies, Inc. 「サービス改善」の定義
 
 
 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません 7 サービス改善
 ↓
 出来なかったことができるようになる


Slide 8

Slide 8 text

© ZOZO Technologies, Inc. 「サービス改善」の定義
 
 
 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません 8 サービス改善
 ↓
 出来なかったことができるようになる
 例) 
 ユーザ 重たい処理が高速化され、ストレスなくサイトの閲覧が可能になる マネージャ 実装工数が減ることで、より多くの改善に着手できるようになる 開発 システム的制約が減ることにより、クリーンな実装や技術的な挑戦が可能になる

Slide 9

Slide 9 text

© ZOZO Technologies, Inc. 9 そもそもリソースが… どこが遅いのか… 機能Aやりたいけど
 VBじゃ難しそう リプレイス/マイクロサービス化前の課題


Slide 10

Slide 10 text

© ZOZO Technologies, Inc. 10 ● どこが遅いのか分析できない
 ○ 言語的・環境的制約でロギングやパフォーマンス計測が困難
 ● 言語的制約(Classic ASP)でできない
 ○ JSON操作など標準的な機能が欠けている
 ● リソースを増やすための仲間集めが難しい
 ○ 対外的なアピールがしづらい
 リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある


Slide 11

Slide 11 text

© ZOZO Technologies, Inc. 11 ● どこが遅いのか分析できない
 ○ 言語的・環境的制約でロギングやパフォーマンス計測が困難
 ● 言語的制約(Classic ASP)でできない
 ○ JSON操作など標準的な機能が欠けている
 ● リソースを増やすための仲間集めが難しい
 ○ 対外的なアピールがしづらい
 
 ⇒ リプレイス/マイクロサービス化により改善した
 リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある


Slide 12

Slide 12 text

© ZOZO Technologies, Inc. リプレイスによって目指すシステム像
 12 1. サービスの分析ができる
 2. 機能の実装、改善が素早くできる
 3. 仲間集めができる


Slide 13

Slide 13 text

© ZOZO Technologies, Inc. 実際に改善できたのか
 
 
 13

Slide 14

Slide 14 text

© ZOZO Technologies, Inc. 実際に改善できたのか
 
 14 1. どこが遅いのか分析できない
 ↓
 分析できる世界へ
 事例 : 検索リクエスト集約


Slide 15

Slide 15 text

© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
 15 ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG
 https://techblog.zozo.com/entry/zozotown-search-microservice
 
 マイクロサービス化前


Slide 16

Slide 16 text

© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
 
 
 
 
 マイクロサービス化後
 16 ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG
 https://techblog.zozo.com/entry/zozotown-search-microservice
 


Slide 17

Slide 17 text

© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
 
 
 
 
 17 API Gateway

Slide 18

Slide 18 text

© ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
 
 
 
 
 
 18 API Gatewayによるマイクロサービスへのアクセス制御 https://speakerdeck.com/takenakaj/api-gatewayniyorumaikurosabisuhefals eakusesuzhi-yu
 
 
 分散トレーシングによって、
 必要な情報が一意なIDで特定可
 Amazon Athena

Slide 19

Slide 19 text

© ZOZO Technologies, Inc. リプレイスによって目指すシステム像
 19 1. ✓サービスの分析ができる
 2. 機能の実装、改善が素早くできる
 3. 仲間集めができる


Slide 20

Slide 20 text

© ZOZO Technologies, Inc. 実際に改善できたのか
 
 20 2. 言語的制約(Classic ASP)でできない
 ↓
 効率よく開発できる世界へ
 事例 : サジェスト改善


Slide 21

Slide 21 text

© ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
 
 
 
 
 
 21 ユーザーログを活用したZOZOTOWNの検索サジェスト改善 https://techblog.zozo.com/entry/zozotown-search-suggestion リプレイス前
 ● 数十行の文字列結合処理
 ● HTTPクライアントを用いた通信
 
 リプレイス後
 ● Elasticsearch公式のクエリビルダ
 ● Elasticsearch公式のクライアント


Slide 22

Slide 22 text

© ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
 
 
 
 
 
 22 ユーザーログを活用したZOZOTOWNの検索サジェスト改善 https://techblog.zozo.com/entry/zozotown-search-suggestion リプレイス前
 ● 数十行の文字列結合処理
 ● HTTPクライアントを用いた通信
 
 リプレイス後
 ● Elasticsearch公式のクエリビルダ
 ● Elasticsearch公式のクライアント
 
 ⇒ 大幅な工数削減/実装の高度化


Slide 23

Slide 23 text

© ZOZO Technologies, Inc. リプレイスによって目指すシステム像
 23 1. ✓サービスの分析ができる
 2. ✓機能の実装、改善が素早くできる
 3. 仲間集めができる


Slide 24

Slide 24 text

© ZOZO Technologies, Inc. 実際に改善できたのか
 
 24 3. リソースを増やすための仲間集めが難しい
 ↓
 自信を持って仲間集めに動ける世界へ
 事例 : 外部発信の強化


Slide 25

Slide 25 text

© ZOZO Technologies, Inc. 25 Q. テックブログの執筆にあたり、何にハードルを感じますか?
 自信を持って仲間集めに動ける世界へ - 外部発信の強化
 社の代表として発表するので、内容を濃いものにする必要がある点。 内容的に外だしできるハードルが高そうなイメージがあります。 普段の業務からテックブログにかける内容が見つけにくい、執筆のための時間を確保しにくい とにかく多くの人目に晒されるので自分の発信能力では追いつかない感がある。 ※社内で実施したテクニカルライティング勉強会のアンケート結果


Slide 26

Slide 26 text

© ZOZO Technologies, Inc. 26 Q. テックブログの執筆にあたり、何にハードルを感じますか?
 自信を持って仲間集めに動ける世界へ - 外部発信の強化
 社の代表として発表するので、内容を濃いものにする必要がある点。 内容的に外だしできるハードルが高そうなイメージがあります。 普段の業務からテックブログにかける内容が見つけにくい、執筆のための時間を確保しにくい とにかく多くの人目に晒されるので自分の発信能力では追いつかない感がある。 ※社内で実施したテクニカルライティング勉強会のアンケート結果
 ⇒ アウトプットを増やすには、ある程度チャレンジングなことが必要


Slide 27

Slide 27 text

© ZOZO Technologies, Inc. 自信を持って仲間集めに動ける世界へ - 外部発信の強化
 27 種別 採用技術 利用箇所 開発言語 Java (Spring Boot) 検索API Python チーム内ツール全般 ミドルウェア Elasticsearch 検索エンジン 監視 Datadog 監視全般 Sentry エラー監視/管理 関連ツール SonarCloud 静的解析 … 検索APIで採用している技術 ⇒ 標準的な技術スタックをベースとしたうえで、改善に取り組める環境


Slide 28

Slide 28 text

© ZOZO Technologies, Inc. 自信を持って仲間集めに動ける世界へ - 外部発信の強化
 
 
 
 28

Slide 29

Slide 29 text

© ZOZO Technologies, Inc. リプレイスによって目指すシステム像
 29 1. ✓サービスの分析ができる
 2. ✓機能の実装、改善が素早くできる
 3. ✓仲間集めができる


Slide 30

Slide 30 text

© ZOZO Technologies, Inc. まとめ
 ● リプレイス/マイクロサービス化によって開発者体験向上
 
 ● スピーディーな改善が可能に
 
 ● 技術的なプレゼンスの向上/仲間集めにも貢献
 30

Slide 31

Slide 31 text

© ZOZO Technologies, Inc. We are hiring!
 31 ZOZOTOWN 検索エンジニア


Slide 32

Slide 32 text

No content