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

Kazuma Arimura

July 28, 2021
Tweet

More Decks by Kazuma Arimura

Other Decks in Programming

Transcript

  1. リプレイスを通して実現した、

    より高度なサービス改善

    ZOZO Tech Meetup

    〜マイクロサービス化に取り組む、16年目のZOZOTOWN〜

    株式会社ZOZOテクノロジーズ

    EC基盤本部/検索基盤部 

    検索基盤チーム

    有村 和真

    Copyright © ZOZO Technologies, Inc.

    View Slide

  2. © ZOZO Technologies, Inc.
    株式会社ZOZOテクノロジーズ

    EC基盤本部/検索基盤部 

    検索基盤チーム
    有村 和真

    2019年4月 新卒入社

    スパイスカレーにハマり中。プランター菜園で唐辛子栽培始
    めました。


    Twitter: @paki0o / GitHub: @pakio


    2

    View Slide

  3. © ZOZO Technologies, Inc.
    https://zozo.jp/

    ● 日本最大級のファッション通販サイト

    ● 1,400以上のショップ、8,200以上のブランドの取り扱い(ともに2021年3月
    末時点)

    ● 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品
    を掲載

    ● コスメ専門モール「ZOZOCOSME」や靴の専門モール

    「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン

    「ZOZOVILLA」を展開

    ● 即日配送サービス

    ● ギフトラッピングサービス

    ● ツケ払い など

    3

    View Slide

  4. © ZOZO Technologies, Inc.
    4
    ※ 実際のリプレイス作業の話ではなく、

    リプレイス前後で何が変わったのかという話がメインです


    View Slide

  5. © ZOZO Technologies, Inc.
    ● 前提 : 「サービス改善」の定義

    ● リプレイス/マイクロサービス化によって実現したサービス改善

    ● まとめ

    5
    目次


    View Slide

  6. © ZOZO Technologies, Inc.
    「サービス改善」の定義

    6
    ※ 今回の発表のため定義したものであり、組織やチームでこう定義している、というものではありません

    View Slide

  7. © ZOZO Technologies, Inc.
    「サービス改善」の定義



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

    ↓

    出来なかったことができるようになる


    View Slide

  8. © ZOZO Technologies, Inc.
    「サービス改善」の定義



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

    ↓

    出来なかったことができるようになる

    例) 

    ユーザ 重たい処理が高速化され、ストレスなくサイトの閲覧が可能になる
    マネージャ 実装工数が減ることで、より多くの改善に着手できるようになる
    開発 システム的制約が減ることにより、クリーンな実装や技術的な挑戦が可能になる

    View Slide

  9. © ZOZO Technologies, Inc.
    9
    そもそもリソースが…
    どこが遅いのか…
    機能Aやりたいけど

    VBじゃ難しそう
    リプレイス/マイクロサービス化前の課題


    View Slide

  10. © ZOZO Technologies, Inc.
    10
    ● どこが遅いのか分析できない

    ○ 言語的・環境的制約でロギングやパフォーマンス計測が困難

    ● 言語的制約(Classic ASP)でできない

    ○ JSON操作など標準的な機能が欠けている

    ● リソースを増やすための仲間集めが難しい

    ○ 対外的なアピールがしづらい

    リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある


    View Slide

  11. © ZOZO Technologies, Inc.
    11
    ● どこが遅いのか分析できない

    ○ 言語的・環境的制約でロギングやパフォーマンス計測が困難

    ● 言語的制約(Classic ASP)でできない

    ○ JSON操作など標準的な機能が欠けている

    ● リソースを増やすための仲間集めが難しい

    ○ 対外的なアピールがしづらい


    ⇒ リプレイス/マイクロサービス化により改善した

    リプレイス/マイクロサービス化前の課題 - やりたいけどできないことが割とある


    View Slide

  12. © ZOZO Technologies, Inc.
    リプレイスによって目指すシステム像

    12
    1. サービスの分析ができる

    2. 機能の実装、改善が素早くできる

    3. 仲間集めができる


    View Slide

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



    13

    View Slide

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


    14
    1. どこが遅いのか分析できない

    ↓

    分析できる世界へ

    事例 : 検索リクエスト集約


    View Slide

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

    15
    ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG

    https://techblog.zozo.com/entry/zozotown-search-microservice


    マイクロサービス化前


    View Slide

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





    マイクロサービス化後

    16
    ZOZOTOWN検索機能のマイクロサービス化への取り組み - ZOZO Technologies TECH BLOG

    https://techblog.zozo.com/entry/zozotown-search-microservice


    View Slide

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





    17
    API Gateway

    View Slide

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






    18
    API Gatewayによるマイクロサービスへのアクセス制御
    https://speakerdeck.com/takenakaj/api-gatewayniyorumaikurosabisuhefals
    eakusesuzhi-yu



    分散トレーシングによって、

    必要な情報が一意なIDで特定可

    Amazon
    Athena

    View Slide

  19. © ZOZO Technologies, Inc.
    リプレイスによって目指すシステム像

    19
    1. ✓サービスの分析ができる

    2. 機能の実装、改善が素早くできる

    3. 仲間集めができる


    View Slide

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


    20
    2. 言語的制約(Classic ASP)でできない

    ↓

    効率よく開発できる世界へ

    事例 : サジェスト改善


    View Slide

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






    21
    ユーザーログを活用したZOZOTOWNの検索サジェスト改善
    https://techblog.zozo.com/entry/zozotown-search-suggestion
    リプレイス前

    ● 数十行の文字列結合処理

    ● HTTPクライアントを用いた通信


    リプレイス後

    ● Elasticsearch公式のクエリビルダ

    ● Elasticsearch公式のクライアント


    View Slide

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






    22
    ユーザーログを活用したZOZOTOWNの検索サジェスト改善
    https://techblog.zozo.com/entry/zozotown-search-suggestion
    リプレイス前

    ● 数十行の文字列結合処理

    ● HTTPクライアントを用いた通信


    リプレイス後

    ● Elasticsearch公式のクエリビルダ

    ● Elasticsearch公式のクライアント


    ⇒ 大幅な工数削減/実装の高度化


    View Slide

  23. © ZOZO Technologies, Inc.
    リプレイスによって目指すシステム像

    23
    1. ✓サービスの分析ができる

    2. ✓機能の実装、改善が素早くできる

    3. 仲間集めができる


    View Slide

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


    24
    3. リソースを増やすための仲間集めが難しい

    ↓

    自信を持って仲間集めに動ける世界へ

    事例 : 外部発信の強化


    View Slide

  25. © ZOZO Technologies, Inc.
    25
    Q. テックブログの執筆にあたり、何にハードルを感じますか?

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

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


    View Slide

  26. © ZOZO Technologies, Inc.
    26
    Q. テックブログの執筆にあたり、何にハードルを感じますか?

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

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

    ⇒ アウトプットを増やすには、ある程度チャレンジングなことが必要


    View Slide

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

    27
    種別 採用技術 利用箇所
    開発言語 Java (Spring Boot) 検索API
    Python チーム内ツール全般
    ミドルウェア Elasticsearch 検索エンジン
    監視 Datadog 監視全般
    Sentry エラー監視/管理
    関連ツール SonarCloud 静的解析

    検索APIで採用している技術
    ⇒ 標準的な技術スタックをベースとしたうえで、改善に取り組める環境


    View Slide

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




    28

    View Slide

  29. © ZOZO Technologies, Inc.
    リプレイスによって目指すシステム像

    29
    1. ✓サービスの分析ができる

    2. ✓機能の実装、改善が素早くできる

    3. ✓仲間集めができる


    View Slide

  30. © ZOZO Technologies, Inc.
    まとめ

    ● リプレイス/マイクロサービス化によって開発者体験向上


    ● スピーディーな改善が可能に


    ● 技術的なプレゼンスの向上/仲間集めにも貢献

    30

    View Slide

  31. © ZOZO Technologies, Inc.
    We are hiring!

    31
    ZOZOTOWN 検索エンジニア


    View Slide

  32. View Slide