【イベントレポート】ZOZO Tech Meetup〜Java活用事例紹介〜

タイトル画像

はじめに

こんにちは。ZOZO DevRelブロックの@wirohaです。3/23にJavaのオンラインイベント「ZOZO Tech Meetup〜Java活用事例紹介〜」を開催しました。ZOZOの開発において「Java」にフォーカスした技術選定や設計手法、設計時の考え方などを紹介するイベントです。

登壇内容まとめ

弊社から次の4名が登壇しました。

  • ZOZOTOWNの商品の閲覧を支えるJava(技術本部 ECプラットフォーム部 / 藤本 拓也)
  • ZOZOTOWNのカート決済システムのリプレイス〜歩みとこれから〜(技術本部 カート決済部 / 高橋 和太郎)
  • Spring Boot+Redis Cache 〜検索APIにキャッシュを導入、実装時の工夫や効果〜(技術本部 検索基盤部 / 佐藤 由弥)
  • ZOZOTOWNの裏側に迫る!Javaで作られたBFFの開発事例を紹介(ZOZOTOWN開発本部 ZOZOTOWNWEB部 / 小川 雄太郎)

当日の発表はYouTubeのアーカイブで視聴可能です。

www.youtube.com

ZOZOTOWNの商品の閲覧を支えるJava

藤本の発表の様子
藤本よりこれまでと今後の商品基盤を紹介

speakerdeck.com

YouTube 2:51〜
ZOZOではたくさんのリプレイスが進んでおり、Javaで動いているシステムが多数あります。VBScriptからのマイクロサービス化はダイナミックな変化です。課題を随時Issueにしていき週に1回解消する会を行っているそうです。積んだままにしない工夫をきちんと続けるのは当たり前のようで大変なことだと思います。

今後構築していく商品基盤では複数の機能を持っていたAPIを責務ごとに分割していくとのことで、メンテナンスが容易になりそうですね。ArchUnitというライブラリの紹介があり、依存関係をチェックできるのが便利そうでした。今後どうなったかもまたお伝えしたいとのことで楽しみです。

ZOZOTOWNのカート決済システムのリプレイス〜歩みとこれから〜

高橋の発表の様子
高橋よりカートという高負荷になりやすいシステムの話

speakerdeck.com

YouTube 19:27〜
カートはセールや販売開始時といった高負荷イベントへの対応が必要です。Cart Queuing Systemを入れることでキャパシティコントロールができるようになりました。現在はAPIからSQL Serverのストアドプロシージャを呼び出すための技術選定をしています。4つの検証対象ライブラリで平均レイテンシやコード量、DB接続回数を比較していました。

事業案件を進めるチームでは業務でJavaに触れる機会が少ないため、外部講師によるJava講習会をしたり、チーム内での勉強会も週に2回程度実施したりと、学習が活発であるのはとても良いと思いました。

Spring Boot+Redis Cache 〜検索APIにキャッシュを導入、実装時の工夫や効果〜

佐藤の発表の様子
佐藤よりキャッシュ導入の効果を紹介

speakerdeck.com

YouTube 36:54〜
検索システムは検索と聞いて思い浮かべる検索フォームだけではなくランキングやサジェスト、類似画像検索や商品の並び順なども担っているそうです。Amazon ElastiCache for Redisを追加することでElasticsearchを経由しなくなり高速に検索結果を返却できるようになりました。さまざまな工夫も含めると90%以上のレイテンシが改善されたそうです。

gzip圧縮でキャッシュデータを圧縮する工夫をしたところメモリ使用率が1/3に、ネットワーク通信量が1/7に減少したのは大きな効果ですね。実践した効果を具体的な数字で知れるのは参考にしやすくて助かります。実装時の工夫の詳細として紹介していたブログ記事はこちらですので合わせてご覧いただくとさらに理解が進みます。

techblog.zozo.com

ZOZOTOWNの裏側に迫る!Javaで作られたBFFの開発事例を紹介

小川の発表の様子
小川よりリプレイスの説明

speakerdeck.com

YouTube 55:50〜
私は以前までAndroidエンジニアだったのでBFF(Backends For Frontends)の話は興味深く聞いてしまいました。BFFはクライアントとバックエンドの中間に位置し、UIやユースケースに合わせてデータの加工をおこなう中間層のことです。

リプレイスについて3段階で説明され、徐々に保守性や開発効率が上がっているのがわかります。BFFの導入によりクライアント側の実装が簡素化され、通信量も削減、マイクロサービス側の変更に影響を受けずにBFF側で修正を完結でき開発効率の向上も見込めるそうです。モバイルアプリはリリースするのに審査が必要であったり過去のバージョンが残ったりとコントロールしづらい面があるので、BFFで吸収してもらえるのはありがたいと感じました。

カジュアル面談もできるそうなので、お話してみたい方はぜひこちらからご応募ください!

hrmos.co

最後に

質疑応答の時間にはメリットだけでなくデメリットはあるのかなど、さらに深く知ることができました。それぞれ書き切れなかった内容がたくさんあるので、ぜひ資料やYouTubeのアーカイブをご覧ください!

ZOZOではJavaを活用し、一緒にサービスを作り上げてくれる仲間を募集中です。ご興味のある方は以下のリンクからぜひご応募ください。

hrmos.co

カテゴリー