ブックマーク / techblog.zozo.com (178)

  • ZOZOTOWNのURLを生成するツールを作った話 - ZOZO TECH BLOG

    はじめに こんにちは、ZOZOTOWN企画開発部・企画フロントエンド1ブロックのゾイです。 ZOZOTOWNトップでは、セール訴求や新作アイテム訴求、未出店ブランドの期間限定ポップアップ、著名人コラボなどの企画イベントが毎日何かしら打ち出されています。私はそのプラットフォームとなる企画LPをメインに実装するチームに在籍しています。 今まで実装した企画LPをアーカイブするプロジェクトにも参加しているので、チームの特性や企画LPの詳細は下記の記事をご覧いただければと思います! techblog.zozo.com 目次 はじめに 目次 背景・課題 仕様・技術選定 1. 型の定義と入力データのバリデーション 2. 入力フォームの実装 3. URLの生成 ユーザーの反応 終わりに 背景・課題 ZOZOTOWNではカルセールバナーなど、アプリとWeb共通で表示させるコンテンツにはURLを分ける必要があ

    ZOZOTOWNのURLを生成するツールを作った話 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/10/07
  • Software Design 2024年9月号 連載「レガシーシステム攻略のプロセス」第5回 キャパシティコントロール可能なカートシステム - ZOZO TECH BLOG

    はじめに 技術評論社様より発刊されているSoftware Designの2024年5月号より「レガシーシステム攻略のプロセス」と題した全8回の連載が始まりました。 ZOZOTOWNリプレイスが順調に進む中始まった「カート決済機能」のリプレイス。第5回では、始動の経緯と、システムの安定稼働につながる大きな改善をもたらしたキューイングシステムの導入について解説します。 目次 はじめに 目次 ZOZOTOWNカート決済リプレイスの始動 体制変更 カート決済サービスの将来像 ジレンマと優先順位 スケールアップ戦略だけでは防ぎきれなくなった障害 キューイングシステムの導入 Kinesis Data Streamsの採用理由 First In First Outでのキャパシティ Kinesis Client Libraryを利用した開発工数の削減 システムのポイント 過熱商品専用のKDSを作成 既存

    Software Design 2024年9月号 連載「レガシーシステム攻略のプロセス」第5回 キャパシティコントロール可能なカートシステム - ZOZO TECH BLOG
    yug1224
    yug1224 2024/10/02
  • Four Keysを活用してチームの開発生産性を改善した時のふりかえりの考え方と手法を紹介します - ZOZO TECH BLOG

    はじめに こんにちは、データシステム部MLOpsブロックの薄田(@udus122)です。 この記事ではFour Keysなどの指標を活用して、定量的な根拠に基づきチームの開発生産性を改善する考え方とふりかえり手法を紹介します。 Four Keysとはデプロイ頻度、変更のリードタイム、変更障害率、平均修復時間の4つの指標からなるソフトウェアデリバリーや開発生産性の指標です。 Four Keysなど開発生産性の指標を計測し、定期的にふりかえっているけれど、なかなか具体的な改善につながらない。 そんな悩みはないでしょうか? 実際に私たちのチームで抱えていた開発生産性の改善に関する課題と解決策を紹介します。皆さんのチームで開発生産性を改善する際のご参考になれば幸いです。 目次 はじめに 目次 開発生産性の改善に取り組んだ背景 チームの改善に取り組む上での課題 Four Keysの考え方に対する理解

    Four Keysを活用してチームの開発生産性を改善した時のふりかえりの考え方と手法を紹介します - ZOZO TECH BLOG
    yug1224
    yug1224 2024/10/01
  • WEARアプリリニューアルにおける負荷試験事例(実施編) - ZOZO TECH BLOG

    はじめに こんにちは! WEARバックエンド部バックエンドブロックの小島(@KojimaNaoyuki)です。普段は弊社サービスであるWEARのバックエンド開発・保守を担当しています。 10周年を迎えたWEARは2024年5月9日に大規模なアプリリニューアルを行いました。アプリリニューアルに伴い負荷試験を行ったので、記事ではどのように負荷試験を実施したか事例をご紹介します。 記事は計画編と実施編の2部構成で、記事は後編の実施編です。前編の計画編は「WEARアプリリニューアルにおける負荷試験事例(計画編)」で公開していますので、まだ閲覧していない方はぜひご覧ください。 techblog.zozo.com 目次 はじめに 目次 背景 負荷試験の要件 使用した負荷試験ツール 負荷試験シナリオ作成 コード例 解説 ファイル構成について 仮想ユーザー(VU)について executorについて c

    WEARアプリリニューアルにおける負荷試験事例(実施編) - ZOZO TECH BLOG
    yug1224
    yug1224 2024/09/28
  • Findy Team+を活用した開発生産性向上の取り組み - ZOZO TECH BLOG

    はじめに こんにちは。会員基盤ブロックの小原田です。弊社では、ZOZOTOWNという大規模なモノリシックシステムをマイクロサービスへリプレイスする取り組みを進めています。私が所属する会員基盤ブロックでは、ZOZOTOWNの会員情報を扱うマイクロサービスの開発と運用を担当しています。 会員基盤ブロックでは、開発生産性の向上を目指し、約半年間にわたり様々な取り組みを行ってきました。記事では、会員基盤ブロックが開発生産性の向上のために実施してきた施策と、その成果について紹介します。 目次 はじめに 目次 開発生産性の向上に関する取り組みの背景 Findy Team+を用いた調査 会員基盤ブロックが抱える開発生産性の課題 サイクルタイム短縮の取り組み PRの変更行数を100行以下にする レビューを優先する仕組みの整備 ブレスト会の実施 品質向上についての取り組み Goガイドラインの策定 テストカ

    Findy Team+を活用した開発生産性向上の取り組み - ZOZO TECH BLOG
    yug1224
    yug1224 2024/09/27
  • KPIのモニタリング自動化と運用体制の整備 - ZOZO TECH BLOG

    はじめに こんにちは。データシステム部/推薦基盤ブロックの佐藤 (@rayuron) です。私たちはZOZOTOWNのパーソナライズを実現する推薦システムを開発・運用しています。推薦システムごとにKPIを策定していますが、データの欠損やリリース時の不具合によってKPIが意図しない値を取ることがあるため定常的に確認する必要があり、これをKPIのモニタリングと呼んでいます。 先日、推薦システムの実績をLookerでモニタリングするというテックブログで推薦システムのKPIをモニタリングする方法を紹介しましたが、運用していく中でいくつかの課題が見えてきました。記事では、より効率的かつ効果的なKPIのモニタリングを実現するための取り組みについて詳しくご紹介します。 はじめに 改善の背景と課題 背景 課題 トレンドを考慮した異常検知が不可能 モニタリングの設定が面倒 アラート対応フローが不明確 サマ

    KPIのモニタリング自動化と運用体制の整備 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/09/27
  • GoでKubernetesクラスター上にモックリソースをサクッと構築するOSSを開発しました - ZOZO TECH BLOG

    はじめに こんにちは。株式会社ZOZOのSRE部プラットフォームSREチームに所属しているはっちーと申します。 記事では、Kubernetesクラスター上にモックリソースをサクッと構築する「モック構築ツール」を紹介します。ZOZOの事例をもとにした説明となりますが、Kubernetesクラスター上での負荷試験やフロントエンド開発などの効率化において広く一般的に活用できるツールのため、OSSとして公開しています。GitHubリポジトリは以下です。 github.com ツールは、私個人のOSSとして管理しています。ZOZOでは、社員がOSS活動しやすいように、「業務時間中に指示があって書いたソフトウェアでも著作権譲渡の許諾によって個人のものにできる」というOSSポリシーがあります。ありがたいです。 techblog.zozo.com 目次 はじめに 目次 モック構築ツールとは 開発のきっ

    GoでKubernetesクラスター上にモックリソースをサクッと構築するOSSを開発しました - ZOZO TECH BLOG
    yug1224
    yug1224 2024/09/25
  • Software Design 2024年8月号 連載「レガシーシステム攻略のプロセス」第4回 ZOZOTOWNリプレイスにおけるマスタDBの移行 - ZOZO TECH BLOG

    はじめに 技術評論社様より発刊されているSoftware Designの2024年5月号より「レガシーシステム攻略のプロセス」と題した全8回の連載が始まりました。 ZOZOTOWNリプレイスプロジェクトで採用したマイクロサービス化のアプローチでは、安全かつ整合性のとれたデータ移行が必須となりました。第4回では、このマスタDBの移行について紹介します。 目次 はじめに 目次 はじめに マスタDB移行 マスタDB移行について 要件と課題 テーブル構成を再設計したうえでデータ移行を実施する ダウンタイムなしでデータ移行を実施する 方針 異なるDBおよびデータスキーマ間で移行を実施するためEmbulkを使用する ダブルライトをリリースし、データ移行中に発生するDBへの書き込みを両DBにアトミックに実施する データを一時DBに格納し、一時DBから移行先DBにデータを移行する BulkloadとBac

    Software Design 2024年8月号 連載「レガシーシステム攻略のプロセス」第4回 ZOZOTOWNリプレイスにおけるマスタDBの移行 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/30
  • 本番環境における等価比較を活用した言語リプレイス - ZOZO TECH BLOG

    はじめに こんにちは。基幹システム部・物流開発部の上原です。昨年度に中途入社しまして、現在はZOZO基幹システムのリプレイスを担当しています。前職では、SESエンジニアとしてリプレイスプロジェクトに上流工程から参画し、大規模なシステムの言語リプレイスを経験してきました。さて私の紹介はこの辺りにして題に入ります。 基幹システムリプレイスは既に進行しており、年度には発送領域の機能を発送マイクロサービスとして切り出してリリースしました。それに続いて、入荷領域の機能をマイクロサービス化ではなくモジュラーモノリスに移行するリプレイスも進んでおり、こちらは細かく区切った単位でリリースをしています。 記事では、自動テストによる「等価比較」を番環境で実施しながら言語リプレイスを進めた事例を紹介します。この事例では、「言語間での処理の等価性を保証し、安心・安全にリプレイスをする」ということを目的と

    本番環境における等価比較を活用した言語リプレイス - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/30
  • ZOZOMO部OMOブロックの振り返りの文化を大公開!継続的なカイゼンを通してチームを成長させていく - ZOZO TECH BLOG

    はじめに こんにちは、ZOZOMO店舗在庫取り置きというサービスの開発を担当している、ZOZOMO部OMOブロックの木目沢です。 皆様のチームでは定期的に振り返りをしていますか? 弊ブロックではZOZOMO店舗在庫取り置きサービスをスクラムで開発しています。スプリント期間は1週間で、スプリントの終わりには毎週振り返り(スクラムの用語では「スプリントレトロスペクティブ」)をしています。 今回はなぜ振り返りが欠かせないか、毎週振り返りを行ってきた成果や数々のプラクティスやワークと共に紹介します。 目次 はじめに 目次 なぜスクラムでは振り返りが必要なのか? 振り返りが続かない・活かされない理由 チームとしての振り返りになっていない チームとしての場ができていない 振り返りのプラクティスやチームのワークを紹介 KPT as ART チームコンピテンシーマトリックス デリゲーションポーカー おわり

    ZOZOMO部OMOブロックの振り返りの文化を大公開!継続的なカイゼンを通してチームを成長させていく - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/29
  • Lighthouse CIでデータを蓄積し、Looker Studioで日々のスコアを可視化した話 - ZOZO TECH BLOG

    はじめに こんにちは、WEARフロントエンド部Webブロックの新です。普段はWEARのWebサイトのリプレイス開発を担当しています。リプレイスを進める中で、不具合やリプレイス前後での変化にいち早く気づくため、Lighthouse CIによる日々の記録を可視化し定期的に通知する仕組みを作りました。記事ではその取り組みについて詳しくご紹介します。 目次 はじめに 目次 背景・課題 Lighthouse CI とは やったこと 1. GitHub Actionsでページ毎にLighthouse CIを実行し、結果をGoogleスプレッドシートに保存 2. GoogleスプレッドシートをデータソースとしてLooker Studioでグラフ化 3. Looker StudioからGoogle Apps Scriptを使用するアカウントへメール配信 4. Google Apps ScriptでLoo

    Lighthouse CIでデータを蓄積し、Looker Studioで日々のスコアを可視化した話 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/28
  • WEARアプリリニューアルにおける負荷試験事例(計画編) - ZOZO TECH BLOG

    はじめに こんにちは! WEARバックエンド部バックエンドブロックの高久です。普段は弊社サービスであるWEARのバックエンド開発・保守を担当しています。 10周年を迎えたWEARは2024年5月9日に大規模なアプリリニューアルを行いました。アプリリニューアルに伴い負荷試験を行ったので、記事ではどのように負荷試験を計画したか事例をご紹介します。 記事は計画編と実施編の2部構成で、記事は前編の計画編となります。後編の実施編は近日、公開予定です。 目次 はじめに 目次 背景 計画の重要性 計画の策定 目的の整理 目標値の設定 スループット レイテンシ 試験方針 試験環境・データ 対象範囲 取得情報・確認観点の整理 負荷シナリオ 実施方法 リスク リリースしてみたらユーザ数が予想を超えてしまい性能問題が発生する 試験対象外とした箇所に性能問題が発生する 番環境での試験時に性能問題が発生しユー

    WEARアプリリニューアルにおける負荷試験事例(計画編) - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/23
  • 大規模なAndroidアプリの実装を紐解いていくアプローチ - ZOZO TECH BLOG

    はじめに こんにちは、ZOZOTOWN開発2部Androidブロックの小林(@kako_351)です。普段はZOZOTOWN Androidアプリの開発を担当しています。今年の3月に入社して機能改修や既存機能の調査などの業務に携わってきました。その中でZOZOTOWN Androidアプリについて知見を持っていないため、調査や開発の際に学習コストがかかるといった課題が見えてきました。記事ではAndroidアプリの実装を把握するアプローチをご紹介します。 目次 はじめに 目次 背景 実装を把握するアプローチの全体像 ドキュメントの把握 目的 アプローチ モジュール構成や画面遷移などの全体構造の把握 目的 モジュール構成 画面遷移 アーキテクチャの把握 目的 アプローチ ライブラリや使用技術の把握 目的 アプローチ ビルドやデプロイなどCI/CD環境の把握 目的 アプローチ テストの把握 目

    大規模なAndroidアプリの実装を紐解いていくアプローチ - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/16
  • 障害への不安をぶっ壊す!カオスエンジニアリングを運用しシステムとチームの耐障害性を高める - ZOZO TECH BLOG

    はじめに こんにちは、計測プラットフォーム開発部SREブロックの山です。普段はZOZOMATやZOZOGLASSなどの計測技術に関わるシステムの開発、運用に携わっています。 我々のチームは、複数サービスを運用する中で障害対応の経験不足や知見共有の難しさといった課題に直面していました。そこで、半年ほど前にカオスエンジニアリングの導入を開始しました。 記事では、カオスエンジニアリングを一過性のものではなくチームの文化として根付かせ、継続的な改善サイクルを生み出すための導入から運用まで、我々のチームでの実践から得られた具体的な方法をお伝えします。 これからカオスエンジニアリングを始めようとしている方はもちろん、すでに導入しているものの効果的な運用に悩んでいる方の参考になれば幸いです。 目次 はじめに 目次 背景・課題 カオスエンジニアリング導入の流れ 1. 目標とKPIの設定 1.1 目標

    障害への不安をぶっ壊す!カオスエンジニアリングを運用しシステムとチームの耐障害性を高める - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/08
  • ZOZOTOWNのフロントエンド開発にCSS in JSを導入して2年後の状況 - ZOZO TECH BLOG

    はじめに こんにちは。ZOZOTOWN開発フロントエンドの菊地(@hiro0218)です。 現在、ZOZOTOWNではWebフロントエンド技術のリプレイスプロジェクトが進行しています。以前の記事ではCSS in JSの技術選定をした際の背景や課題について紹介しました。 techblog.zozo.com その後、「ZOZO Tech Meetup - Web フロントエンド」でおよそ1年後の状況を簡単に共有させて頂きました。 speakerdeck.com 今回はZOZO Tech Meetupでお話した内容に加えて、CSS in JS導入から2年後の現状を改めて紹介したいと思います。 CSS in JS導入後の運用状況 ZOZOTOWNの開発体制は、Webフロントエンドだけでも5つのチームが存在し、さらに外部の業務委託メンバーも加えると、開発に携わるメンバーは執筆時点でのべ50名を超

    ZOZOTOWNのフロントエンド開発にCSS in JSを導入して2年後の状況 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/08/06
  • ZOZOTOWNホーム画面のパーソナライズ - Two-Towerモデルで実現するモジュールの並び順最適化 - ZOZO TECH BLOG

    はじめに こんにちは、データシステム部推薦基盤ブロックの寺崎(@f6wbl6)です。 私たちのチームではZOZOTOWNにおけるパーソナライズ機能と推薦システムを開発しており、2022年6月のテックブログではZOZOTOWNのホーム画面をパーソナライズした事例の1つを紹介しました。 techblog.zozo.com 今回は上記記事の続編として、ホーム画面での商品訴求の単位である「モジュール」の並び順をパーソナライズした取り組みをご紹介します。記事がパーソナライズ機能や推薦システムを開発している方の参考になれば幸いです。 目次 はじめに 目次 ZOZOTOWNのホーム画面における「モジュール」について パーソナライズ施策の比較 パーソナライズの方針 モジュール並び順パーソナライズの要件 パーソナライズ方法 概要 モデル構成 モジュールのスコア算出方法 システム構成 1.Two-Tower

    ZOZOTOWNホーム画面のパーソナライズ - Two-Towerモデルで実現するモジュールの並び順最適化 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/07/31
  • NATゲートウェイの通信内容を調査して対策し、コストを約60%削減した話 - ZOZO TECH BLOG

    はじめに こんにちは。WEARバックエンド部SREブロックの春日です。普段はWEARというサービスのSREとして開発・運用に携わっています。記事では、約60%のコスト削減に成功したNATゲートウェイの通信内容の調査方法と通信量の削減方法についてご紹介します。 目次 はじめに 目次 背景 コストの把握 NATゲートウェイの通信内容の把握 CloudWatchメトリクスでの確認 VPCフローログでの確認 リゾルバーでのクエリログでの確認 調査結果をもとにNATゲートウェイ経由での通信量を削減する AWSサービスとの通信 Datadogとの通信 WEARのAPIとの通信 ECRパブリックリポジトリとの通信 結果 まとめ 背景 ZOZOではより効果的な成長を目指してコストの最適化を進めています。コストの増大はサービスの拡大を鈍化させる原因となるため、常に最適な状態に保つことが必要です。WEARで

    NATゲートウェイの通信内容を調査して対策し、コストを約60%削減した話 - ZOZO TECH BLOG
    yug1224
    yug1224 2024/07/27
  • ZOZOの新卒1年目MLエンジニアが行くCVPR 2024 参加レポート - ZOZO TECH BLOG

    はじめに こんにちは、推薦基盤ブロック、新卒1年目の住安宏介です。普段は推薦システムの開発・運用を担当しています。 2024年6月に開催されたコンピュータビジョン・パターン認識分野において世界最高峰の国際会議の1つであるCVPR(Conference on Computer Vision and Pattern Recognition)2024に参加しました。参加レポートとして発表内容や参加した感想を紹介いたします。また、最後にZOZO NEXTが行っているワークショップのスポンサー活動についてZOZO Researchの清水から紹介いたします。 目次 はじめに 目次 CVPR とは 開催地のシアトルについて 学会のスケジュール 企業展示ブースの様子 ポスターセッションの雰囲気 採択数増加に伴うポスターセッションの懸念とその実際 特に、印象に残った研究発表 SLICE: Stabilize

    ZOZOの新卒1年目MLエンジニアが行くCVPR 2024 参加レポート - ZOZO TECH BLOG
    yug1224
    yug1224 2024/07/11
  • DefenderでもMacを守りたい - ZOZO TECH BLOG

    はじめに こんにちは、CISO部の兵藤です。日々ZOZOの安全を守るためSOC業務に取り組んでいます。 記事ではMicrosoftのDefender for Endpointを用いてApplemacOSに対してセキュリティ対策するTipsについて紹介します。 また、CISO部ではその他にもZOZOを守るための取り組みを行っています。詳細については以下の「OpenCTIをSentinelにわせてみた」をご覧いただければと思います。 techblog.zozo.com 目次 はじめに 目次 背景と概要 前提知識 Microsoft Defender for Endpoint導入方法 macOSWindowsでのDefender for Endpointの機能差分 macOSへのLive Response機能 Live ResponseのBashスクリプトの登録と実行 スクリプトのTip

    DefenderでもMacを守りたい - ZOZO TECH BLOG
    yug1224
    yug1224 2024/07/09
  • 【イベントレポート】「ZOZO物流システムリプレイスの旅〜序章〜これまでとこれから」を開催しました! - ZOZO TECH BLOG

    はじめに こんにちは。DevRelブロックの@wirohaです。6月25日に「ZOZO物流システムリプレイスの旅〜序章〜これまでとこれから」を開催しました。ZOZOのエンジニアが物流システムリプレイス開発事例を紹介するイベントです。 登壇内容まとめ 弊社から次の3名が登壇しました。各発表はYouTubeにアップロードしてありますので、見逃した方やもう一度見たい方はぜひご覧ください。 コンテンツ 登壇者 分散メッセージングシステムを用いた新発送サービスのアーキテクチャ 作田 航平 ここがつらいよ 物流マイクロサービス 真田 洋輝 リプレイスを安心安全に 〜段階的リプレイスと等価比較〜 上原 駿 分散メッセージングシステムを用いた新発送サービスのアーキテクチャ www.youtube.com speakerdeck.com 作田からは発送サービスのアーキテクチャについて、リプレイス前後の比較や

    【イベントレポート】「ZOZO物流システムリプレイスの旅〜序章〜これまでとこれから」を開催しました! - ZOZO TECH BLOG
    yug1224
    yug1224 2024/06/29