BigQueryのストレージ料金プランを変更して、年間数千万円を節約する

こんにちは、最近気になるニュースはサザエの学名が数年前に初めて命名されたこと1な、MLデータ部データ基盤ブロックの塩崎です。BigQueryのストレージに関する新料金プランが先日発表されたので、その検証をしました。我々の環境では年間で数千万円という費…

KubeCon + CloudNativeCon North America 2022参加レポート〜3年ぶりのアメリカ現地開催の様子とセッション紹介〜

こんにちは。計測システム部SREブロックの西郷です。 10月24日から10月28日にかけてKubeCon + CloudNativeCon North America 2022(以下、KubeCon)が行われました。今回弊社からはWEARやZOZOTOWNのマイクロサービス基盤、計測システムに関わるメンバー7名で…

Argo Rolloutsを導入してカナリアリリースを実現する

はじめに こんにちは。計測プラットフォーム開発本部SREブロックの纐纈です。今年の4月に入社し、ZOZOMATやZOZOGLASSの運用改善に取り組んでいます。また、今年の夏US向けにZOZOFITをリリースしましたが、そちらの機能追加にも今後関わっていく予定です。 計…

Kubernetes External SecretsからExternal Secrets Operatorに移行した話 〜他ツールとの比較・移行戦略・工夫したポイント〜

はじめに こんにちは、SRE部プラットフォーム基盤SRE部ブロックの織田です。普段は主にZOZOTOWNのリプレイスやインフラを改善、運用しています。 本記事では、Secret管理コンポーネントであるKubernetes External Secrets(以降、KESと表記)の非推奨を受け…

DroidKaigi 2022参加レポート 〜CfSレビュー会、エンジニア登壇、After DroidKaigiまで〜

こんにちは! 計測プラットフォーム本部でiOS/Androidアプリ開発をしている寺田(@tama_Ud)です。 2022年10月5日から7日にかけて、「DroidKaigi 2022」が開催されましたね! ZOZOはGOLD SPONSORとして協賛し、オフライン会場にてスポンサーブースの出展をし…

Kubernetesネイティブなワークフローエンジンとは!FAANSでArgo Workflowsを導入した話

はじめに こんにちは。ブランドソリューション開発本部 バックエンド部 SREの笹沢(@sasamuku)です。 ZOZOではショップスタッフの販売サポートツール「FAANS」を2022年8月に正式リリースしました。FAANSはアパレルのショップスタッフ様を支援する様々な機能…

カナリアリリースを自動化!Flaggerでプログレッシブデリバリーを実現した話

はじめに こんにちは。SRE部ECプラットフォーム基盤SREブロックの大澤と立花です。 本記事ではマイクロサービスのカナリアリリースに関して私達が抱えていた課題と、それをFlaggerによるプログレッシブデリバリー導入でどのように改善したのかを紹介します。…

ZOZOTOWNのGo言語におけるマイクロサービス開発の共通規約を守るための取り組み

はじめに こんにちは。ECプラットフォーム部の北原です。普段はZOZOTOWNのバックエンドの開発、運用に携わっており、現在は会員機能を司るマイクロサービスの開発を進めています。 今回はZOZOTOWNのGo言語におけるマイクロサービス開発の共通規約を守るため…

運用改善によるチームパフォーマンス向上のための取り組み

こんにちは。ブランドソリューション開発本部フロントエンド部の御立田です。フロントエンド部の部長とWEAR Androidのブロック長を兼任しており、普段は部署全体の管理・リスクマネジメントや、Android開発における設計などを行っております。 本記事では、…

ハイブリッド開催に完全対応! iOSDC Japan 2022参加レポート

はじめに こんにちは、ZOZOTOWN開発本部の松井とZOZO NEXTの木下です。9/10から9/12までの3日間、iOSDC Japan 2022が開催されました。ZOZOグループからは6名が登壇、20名以上が参加しました。またプラチナスポンサーとして協賛しました。 technote.zozo.com …

サジェスト機能の改善を評価する社内ツールの紹介

はじめに こんにちは。検索基盤部の倉澤です。 私たちは、ZOZOTOWNの検索機能の改善に取り組んでいます。ZOZOTOWNには、ユーザーが検索クエリを入力した際に、候補となるキーワードを表示するサジェスト機能があります。 今回はこのサジェスト機能の改善を効…

Testcontainersを利用してIntegrationTestを改善する

はじめに こんにちは、マイグレーションチームの寺嶋です。 本記事では、ZOZOTOWNのマイクロサービスにおけるデータベースを参照したユニットテストの改善で得られた知見や工夫について紹介します。 背景と課題 ZOZOTOWNでは、数年前からリプレイスプロジェ…

XMLで書かれたUIをJetpack Composeで書き換える手順の紹介

はじめに ブランドソリューション開発本部フロントエンド部FAANSの山田(@yshogo87)です。 本投稿では、すでにXMLで書かれたレイアウトをJetpack Composeにリファクタリングした理由とその手順について紹介します。 リファクタリングする画面の問題点 FAANS…

WEARにおけるSLOを用いた信頼性改善の取り組み

こんにちは、WEAR部バックエンドブロックの小山とSREブロックの繁谷です。 WEARでは日々システムの信頼性を向上させるため改善に取り組んでいます。今回はその中でもSLOに基づいた改善について紹介いたします。 WEARリプレイスの歩み WEARでは2019年から本格…

RubyKaigi 2022参加レポート 〜エンジニアによるセッション紹介〜

こんにちは!バックエンドチームマネージャーの@tsuwatchです! 2022/9/8〜10に三重県にて開催されたRubyKaigi 2022でプラチナスポンサーとして協賛し、スポンサーブースを出展しました。 technote.zozo.com technote.zozo.com 弊社からはWEARを開発するバッ…

ZOZOTOWNホーム画面におけるログ設計と改善サイクルの紹介

はじめに こんにちは、ML・データ部推薦基盤ブロックの宮本(@tm73rst)です。普段は主にZOZOTOWNのホーム画面や商品ページにおいて、データ活用やレコメンド改善のプロダクトマネジメントを行っております。 近年ビックデータ社会と言われる中、データドリ…

WEARにおけるPUSH通知システムのリプレイス

こんにちは、WEARバックエンドブロックの天春(@AmagA001)です。バックエンドの運用・開発に携わっています。WEARはサービス開始から10年ほどの古いVBScriptを使った環境からRuby on Rails環境にシステムリプレイスを行なっています。本記事では、リプレイ…

Knative Servingを用いて多数の開発環境APIを低コストで構築する

はじめに こんにちは、技術本部ML・データ部MLOpsブロックの鹿山(@Ash_Kayamin)です。先日、20個の開発環境APIを用意し、各APIをリクエストに応じて動的に起動できる仕組みをKnative Servingを用いて構築しました。 この記事ではKnative Servingを利用した…

全社共通データ基盤を廃止して新しいデータ基盤に引越した話

こんにちは、データ基盤の開発、運用をしていた谷口です。最近は配信基盤の開発と運用をしています。 ZOZOではオンプレやクラウドにあるデータをBigQueryへ連携し、分析やシステムで活用しています。BigQueryに連携されたテーブルは共通データ基盤として全社…

ZOZOTOWN Webフロントエンドリプレイスにおける CSS in JS の技術選定で Emotion を選定した話

はじめに こんにちは。ZOZOTOWN開発本部フロントエンドの菊地(@hiro0218)です。 現在、ZOZOTOWNではWebフロントエンド技術のリプレイスプロジェクトが進行しています1。本記事では、WebフロントエンドのリプレイスでCSS in JSの技術選定をした際の背景や課…

Argo CD導入設計とリリースフロー改善の取り組み

はじめに こんにちは、計測プラットフォーム開発本部SREブロックの渡辺です。普段はZOZOMATやZOZOGLASSなどの計測技術に関わるシステムの開発、運用に携わっています。 先日私達のチームでは、EKS環境にArgo CDを導入し、デプロイパイプラインのリアーキテク…

ZOZOTOWN Androidチームにおけるコードメトリクスとビルド時間計測の取り組み

はじめに ZOZOTOWN開発本部 ZOZOTOWNアプリ部 Android2ブロックの高橋です。 ZOZOTOWN Androidチームでは、リファクタリングやビルド速度改善の取り組みを継続的に行なっています。本記事では、それらの取り組みの効果を可視化するために導入した、コードメ…

CIOpsからGitOpsへ。Flux2でマイクロサービスのデプロイを爆速にした話

はじめに こんにちは。SRE部の巣立(@ksudate)です。 ZOZOTOWNのマイクロサービス基盤では、GitHub Actionsを利用したCDパイプラインを構築しています。しかし、管理するマイクロサービスが増えるにつれて運用負荷が高まりつつありました。 本記事では、ZOZ…

SQL ServerのCDCを用いた加熱商品の販売イベントにおける負荷軽減の取り組み

ZOZOTOWNの加熱商品発売イベントにおける負荷軽減対策の歴史を振り返り、直近の取り組みであるSQL ServerのCDCを用いた検証結果をご紹介します。

UICollectionViewのCompositional Layoutsでセル全体にドロップシャドウをつける方法

はじめに こんにちは、フロントエンド部WEARiOSブロックの西山です。 iOS 13から登場したCompositional Layoutsを使うことで、App Storeのような複雑なUIが簡単に実現できるようになりました。 登場前は、UICollectionView in UICollectionViewまたは、UISta…

既存のAkamai設定をTerraformでIaC化して便利に

こんにちは、技術本部SRE部ZOZO-SREブロックの鈴木です。普段はSREエンジニアとしてZOZOTOWNの裏で動いているオンプレミスとクラウドの構築・運用・保守に携わっています。 ZOZOTOWNのインフラは大半がIaC化されていますが昔からあるリソースに関してはその…

SQL ServerにおけるXACT_ABORTのON/OFFによる挙動差異と注意点

はじめに こんにちは。カート決済部の林です。ZOZOTOWN内のカートや決済の機能開発、保守運用を担当しています。 過去に福袋販売イベントの負荷対策の記事を掲載しました。 techblog.zozo.com 上記の記事では、タイムアウトしたプロセスがロックを掴んだまま…

ZOZOMO開発チームのユニットテスト戦略とテスト駆動開発

はじめに ZOZOMO部プロダクト開発ブロックの木目沢です。 ZOZOMOで提供しているZOZOTOWN上での「ブランド実店舗の在庫確認・在庫取り置き」APIの開発に携わっています。 今回は、開発当初から現在に至るまでのユニットテスト戦略についてお話しします。

BigQueryでのデータ追記処理における冪等化の取り組み

こんにちは、MA基盤チームの田島です。私達のチームではMAIL、LINE、PUSH通知といったユーザへの配信をしています。その中でもマス・セグメント配信という一斉に行う配信では、配信対象者のセグメント抽出にBigQueryを利用しています。また、配信前に必要な…

#MIRU2022 参加レポート

こんにちは。ZOZO ResearchのResearcherの平川と古澤です。2022年7月25日(月)から7月28日(木)にかけて画像の認識・理解シンポジウムMIRU2022に参加しました。この記事では、MIRU2022でのZOZO Researchのメンバーの取り組みやMIRU2022の様子について報告…

カテゴリー