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

リプレイスを通して実現した、 より高度なサービス改善 / Service improvemen...

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

Kazuma Arimura

July 28, 2021
Tweet

More Decks by Kazuma Arimura

Other Decks in Programming

Transcript

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


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


    • 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載
 • コスメ専門モール「ZOZOCOSME」や靴の専門モール
 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン
 「ZOZOVILLA」を展開
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 3
  3. © ZOZO Technologies, Inc. 「サービス改善」の定義
 
 
 ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません 8

    サービス改善
 ↓
 出来なかったことができるようになる
 例) 
 ユーザ 重たい処理が高速化され、ストレスなくサイトの閲覧が可能になる マネージャ 実装工数が減ることで、より多くの改善に着手できるようになる 開発 システム的制約が減ることにより、クリーンな実装や技術的な挑戦が可能になる
  4. © ZOZO Technologies, Inc. 10 • どこが遅いのか分析できない
 ◦ 言語的・環境的制約でロギングやパフォーマンス計測が困難
 •

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

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

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

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

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

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


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

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


    
 
 18 API Gatewayによるマイクロサービスへのアクセス制御 https://speakerdeck.com/takenakaj/api-gatewayniyorumaikurosabisuhefals eakusesuzhi-yu
 
 
 分散トレーシングによって、
 必要な情報が一意なIDで特定可
 Amazon Athena
  9. © ZOZO Technologies, Inc. 実際に改善できたのか
 
 20 2. 言語的制約(Classic ASP)でできない


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

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


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

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


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

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


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

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


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

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

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