Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リプレイスを通して実現した、 より高度なサービス改善 / Service improvement process through the system replacement

リプレイスを通して実現した、 より高度なサービス改善 / Service improvement process through the system replacement

F73ac5e3ccf3d4dbfffff61b14d2335c?s=128

Kazuma Arimura

July 28, 2021
Tweet

Transcript

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


    有村 和真
 Copyright © ZOZO Technologies, Inc.
  2. © ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 EC基盤本部/検索基盤部 
 検索基盤チーム 有村 和真


    2019年4月 新卒入社
 スパイスカレーにハマり中。プランター菜園で唐辛子栽培始 めました。
 
 Twitter: @paki0o / GitHub: @pakio
 
 2
  3. © ZOZO Technologies, Inc. https://zozo.jp/
 • 日本最大級のファッション通販サイト
 • 1,400以上のショップ、8,200以上のブランドの取り扱い(ともに2021年3月 末時点)


    • 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載
 • コスメ専門モール「ZOZOCOSME」や靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 3
  4. © ZOZO Technologies, Inc. 4 ※ 実際のリプレイス作業の話ではなく、
 リプレイス前後で何が変わったのかという話がメインです


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


    • まとめ
 5 目次

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

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

    サービス改善
 ↓
 出来なかったことができるようになる

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

    サービス改善
 ↓
 出来なかったことができるようになる
 例) 
 ユーザ 重たい処理が高速化され、ストレスなくサイトの閲覧が可能になる マネージャ 実装工数が減ることで、より多くの改善に着手できるようになる 開発 システム的制約が減ることにより、クリーンな実装や技術的な挑戦が可能になる
  9. © ZOZO Technologies, Inc. 9 そもそもリソースが… どこが遅いのか… 機能Aやりたいけど
 VBじゃ難しそう リプレイス/マイクロサービス化前の課題


  10. © ZOZO Technologies, Inc. 10 • どこが遅いのか分析できない
 ◦ 言語的・環境的制約でロギングやパフォーマンス計測が困難
 •

    言語的制約(Classic ASP)でできない
 ◦ JSON操作など標準的な機能が欠けている
 • リソースを増やすための仲間集めが難しい
 ◦ 対外的なアピールがしづらい
 リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある

  11. © ZOZO Technologies, Inc. 11 • どこが遅いのか分析できない
 ◦ 言語的・環境的制約でロギングやパフォーマンス計測が困難
 •

    言語的制約(Classic ASP)でできない
 ◦ JSON操作など標準的な機能が欠けている
 • リソースを増やすための仲間集めが難しい
 ◦ 対外的なアピールがしづらい
 
 ⇒ リプレイス/マイクロサービス化により改善した
 リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある

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


    3. 仲間集めができる

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

  14. © ZOZO Technologies, Inc. 実際に改善できたのか
 
 14 1. どこが遅いのか分析できない
 ↓


    分析できる世界へ
 事例 : 検索リクエスト集約

  15. © ZOZO Technologies, Inc. 分析できる世界へ - 検索リクエスト集約
 15 ZOZOTOWN検索機能のマイクロサービス化への取り組み -

    ZOZO Technologies TECH BLOG
 https://techblog.zozo.com/entry/zozotown-search-microservice
 
 マイクロサービス化前

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


    
 マイクロサービス化後
 16 ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG
 https://techblog.zozo.com/entry/zozotown-search-microservice
 

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


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


    
 
 18 API Gatewayによるマイクロサービスへのアクセス制御 https://speakerdeck.com/takenakaj/api-gatewayniyorumaikurosabisuhefals eakusesuzhi-yu
 
 
 分散トレーシングによって、
 必要な情報が一意なIDで特定可
 Amazon Athena
  19. © ZOZO Technologies, Inc. リプレイスによって目指すシステム像
 19 1. ✓サービスの分析ができる
 2. 機能の実装、改善が素早くできる


    3. 仲間集めができる

  20. © ZOZO Technologies, Inc. 実際に改善できたのか
 
 20 2. 言語的制約(Classic ASP)でできない


    ↓
 効率よく開発できる世界へ
 事例 : サジェスト改善

  21. © ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
 
 
 


    
 
 21 ユーザーログを活用したZOZOTOWNの検索サジェスト改善 https://techblog.zozo.com/entry/zozotown-search-suggestion リプレイス前
 • 数十行の文字列結合処理
 • HTTPクライアントを用いた通信
 
 リプレイス後
 • Elasticsearch公式のクエリビルダ
 • Elasticsearch公式のクライアント

  22. © ZOZO Technologies, Inc. 効率よく開発できる世界へ - サジェスト改善
 
 
 


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

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


    3. 仲間集めができる

  24. © ZOZO Technologies, Inc. 実際に改善できたのか
 
 24 3. リソースを増やすための仲間集めが難しい
 ↓


    自信を持って仲間集めに動ける世界へ
 事例 : 外部発信の強化

  25. © ZOZO Technologies, Inc. 25 Q. テックブログの執筆にあたり、何にハードルを感じますか?
 自信を持って仲間集めに動ける世界へ - 外部発信の強化


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

  26. © ZOZO Technologies, Inc. 26 Q. テックブログの執筆にあたり、何にハードルを感じますか?
 自信を持って仲間集めに動ける世界へ - 外部発信の強化


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

  27. © ZOZO Technologies, Inc. 自信を持って仲間集めに動ける世界へ - 外部発信の強化
 27 種別 採用技術

    利用箇所 開発言語 Java (Spring Boot) 検索API Python チーム内ツール全般 ミドルウェア Elasticsearch 検索エンジン 監視 Datadog 監視全般 Sentry エラー監視/管理 関連ツール SonarCloud 静的解析 … 検索APIで採用している技術 ⇒ 標準的な技術スタックをベースとしたうえで、改善に取り組める環境

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


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


    3. ✓仲間集めができる

  30. © ZOZO Technologies, Inc. まとめ
 • リプレイス/マイクロサービス化によって開発者体験向上
 
 • スピーディーな改善が可能に


    
 • 技術的なプレゼンスの向上/仲間集めにも貢献
 30
  31. © ZOZO Technologies, Inc. We are hiring!
 31 ZOZOTOWN 検索エンジニア


  32. None