株式会社ZOZO の技術ブログ

Amazon Kinesis Data Streamsの事例紹介とAWS SDKのバージョンアップについて

はじめに こんにちは。ECプラットフォーム部カート決済ブロックの曽根です。 ZOZOTOWNでは、リプレイスの一環として、2021年4月からカート決済機能のマイクロサービス化を開始しました。 ZOZOTOWN カート決済機能リプレイス Phase1 〜 キャパシティコントロールの実現 - ZOZ

ZOZOTOWN iOSチーム、Apple silicon導入しました

はじめに こんにちは、ZOZOアプリ部でZOZOTOWN iOSアプリを開発している小松です( @tosh_3 )。ZOZOTOWN iOSチームでは、M1 Pro / M1 Max発売のタイミングでチーム内の開発環境をApple siliconへと移行しました。スムーズに移行するためにどのようなことを実践したのかと実際に移行することでどのような恩恵を受けることができたのかを紹介します。 Apple siliconについて WWDC 2020にてApple

OpenAPI Generatorのコード生成とSpring Frameworkのカスタムデータバインディングを共存させる

はじめに こんにちは。マイグレーションブロックの藤本です。 ZOZOのマイクロサービスの開発では、以前の「 OpenAPI3を使ってみよう!Go言語でクライアントとスタブの自動生成まで! 」や「 Go言語におけるOpenAPIを使ったレスポンス検証 」の記事にもあるように、OpenAPI(Swagger)を使ってAPIの仕様を管理しています。そして私たちのチームでは、OpenAPIのYAMLからControllerのInterfac

Unityを組み込んだiOSアプリにおける、UXも考慮した開発

こんにちは、ZOZO NEXTで新規プロダクトの開発を担当している木下です。先日、3Dバーチャル試着に関する実証実験の取り組みが発表されました。3Dバーチャル試着ではユーザーが入力した体型データを基に3Dアバターが作成され、好みのアイテムを選んで着丈やサイズ感を確認できます。 zozonext.com この実証実験のために開発したアプリは、 Unity as a Library (UaaL)という技術

SQL Serverのバージョンアップ時に必要なクエリ互換性に関する検証精度を向上させた話

こんにちは。技術戦略部の廣瀬です。 弊社ではサービスの一部にSQL Serverを使用しています。SQL Serverの各バージョンにはMicrosoftのサポート期間が設定されています。直近ではSQL Server 2012のサポートが、2022年7月12日に終了します。サポートが切れる前にSQL Serverのバージョンを上げる必要がありますが、既存環境で実行中のSQLがバージョンアップ後も正常に動作するか事前検

ZOZOMATのマルチテナントEKSクラスタへの移行

はじめに こんにちは。計測プラットフォーム開発本部SREブロックの西郷です。普段はZOZOSUITやZOZOMAT、ZOZOGLASSなどの計測技術に関わるシステムの開発、運用に携わっています。先日私達のチームでは、シングルクラスタ・マルチテナントを前提として構築したEKSクラスタにZOZOMATシステムを移行しました。本記事では移行ステップや作業時に工夫した点について紹介したいと

楽々スケール Digdag on GKE Autopilot の紹介とその運用Tips

こんにちは、MA基盤チームの田島です。私達のチームでは複数のワークフローエンジンを利用し、メールやLINEなどへの配信を含むバッチ処理を行っていました。今回それらのワークフローエンジンをすべてDigdagに統一しました。そして実行環境としてGKEのAutopilot環境を選択したことにより、柔軟にスケールするバッチ処理基盤を実現しましたのでそれについて紹介します

オンプレのreadonlyデータベースをクラウド化した話

はじめに こんにちは、技術本部SRE部ZOZOSREチームの堀口/柳田です。普段はZOZOTOWNのオンプレミスとクラウドの構築・運用に携わっています。 ZOZOTOWNではSQL Serverを中心とした各種DBMSが稼働しています。 その中で検索処理における参照に特化された役割を持つデータベース群をReadOnlyデータベース(以下、RODB)と呼んでいます。これらは日々増加するZOZOTOWNのトラフィック

DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み

こんにちは。ブランドソリューション開発部プロダクト開発ブロックの岡元です。普段は Fulfillment by ZOZO とZOZOMOのブランド実店舗の在庫確認・在庫取り置きサービスの開発、保守をしています。 本記事では、ブランド実店舗の在庫確認・在庫取り置きサービスで実装したCQRSアーキテクチャについて紹介させていただきます。 CQRSの実装においては、データベース(以下、D

Cloud Composer 2上でApache Airflow 2のワークフローを実装する

はじめに こんにちはZOZOデータサイエンス部MLOpsブロック松岡です。 本記事では先日リリースされたGCP( Google Cloud Platform ) Cloud Composer の最新バージョンCloud Composer 2について紹介します。 ZOZOTOWNでは、多種多様な商品が毎日新たに出品されています。現在MLOpsブロックでは、機械学習で商品情報の登録を補佐するシステムを開発しています。 このシステムでは商品情報を

ZOZOTOWN検索マイクロサービスにおけるキャッシュの導入とその効果

はじめに こんにちは。検索基盤部 検索基盤チームの佐藤( @satto_sann )です。検索基盤チームでは、 ZOZOTOWNの検索周りのシステム開発に日々取り組んでいます。 本記事では、ZOZOTOWNの検索マイクロサービスにおけるキャッシュ導入で得られた知見や工夫点について紹介します。検索に限らずマイクロサービスへキャッシュの導入を検討されている方の参考になれば幸いで

Storybook × MSW × Chromaticを使ったUIの影響範囲を自動検知するための取り組み

こんにちは、FAANS部の田中です。普段は、WebのフロントエンドエンジニアとしてFAANSの開発を行なっています。 FAANSの由来は「Fashion Advisors are Neighbors」で、「ショップスタッフの効率的な販売をサポートするショップスタッフ専用ツール」です。現在正式リリースに向けて、 WEAR と連携したコーディネート投稿機能やその成果を確認できる機能など開発中です。プラットフ

JAXによるスケーラブルな機械学習

はじめに こんにちは、 ZOZO NEXT ZOZO Research のSai Htaung Khamです。ZOZO NEXTは、ファッション領域におけるユーザーの課題を想像しテクノロジーの力で解決すること、より多くの人がファッションを楽しめる世界の創造を目指す企業です。 ZOZO NEXTでは多くのアルゴリズムを研究開発しており、その中で JAX というライブラリを使用しています。JAXは高性能な機械学習のために設計

Gatlingによる分散負荷試験を自動化するKubernetesオペレーターGatling Operatorの紹介

こんにちは。SRE部の川崎( @yokawasa )、巣立( @tmrekk_ )です。私たちは、ZOZOTOWNのサイト信頼性を高めるべく日々さまざまな施策に取り組んでおり、その中の1つに負荷試験やその効率化・自動化があります。本記事では、私たちが負荷試験で抱えていた課題解決のために開発、公開したOSSツール、Gatling Operatorを紹介します。 github.com はじめに ZOZOTOWNは非常にピーク性のあ

Elasticsearch LTRプラグインと特徴量キャッシュ機能の基本

はじめに こんにちは、検索基盤部 検索研究ブロックの真鍋です。ヤフー株式会社から一部出向していて、主にZOZOTOWNの検索機能へのランキングモデルの導入に従事しています。 本記事では、Elasticsearch上でランキングモデルを扱うための有名なプラグインの仕組みと、同プラグインにZOZOが実装した機能を紹介します。 まず、本記事の背景を説明します。ZOZOTOWNでキーワー