株式会社ZOZO の技術ブログ

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

はじめに こんにちは、SRE部ECプラットフォーム基盤SREブロックの織田です。普段は主にZOZOTOWNのリプレイスやインフラを改善、運用しています。 本記事では、Secret管理コンポーネントであるKubernetes External Secrets(以降、KESと表記)の非推奨を受けて、どのような対応を実施したのか紹介します。 目次 はじめに 目次 なぜSecret管理コンポーネントを利用するのか? Kubernetes E

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

こんにちは! 計測プラットフォーム本部でiOS/Androidアプリ開発をしている寺田( @tama_Ud )です。 2022年10月5日から7日にかけて、「 DroidKaigi 2022 」が開催されましたね! ZOZOはGOLD SPONSORとして協賛し、オフライン会場にてスポンサーブースの出展をしました。 technote.zozo.com 今回、自分は現地参加が叶いましたので、オフライン参加レポートをお送りします。 目次 目次 ZOZO

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

はじめに こんにちは。ブランドソリューション開発本部 バックエンド部 SREの笹沢( @sasamuku )です。 ZOZOではショップスタッフの販売サポートツール「FAANS」を2022年8月に正式リリースしました。FAANSはアパレルのショップスタッフ様を支援する様々な機能を提供しています。例えば、ZOZOTOWN上で実店舗の在庫取り置きができる機能や、コーディネート投稿の機能などがあ

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

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

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

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

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

こんにちは。ブランドソリューション開発本部フロントエンド部の御立田です。フロントエンド部の部長とWEAR Androidのブロック長を兼任しており、普段は部署全体の管理・リスクマネジメントや、Android開発における設計などを行っております。 本記事では、運用改善によるチームパフォーマンス向上のための取り組みについてご紹介します。なお、フロントエンド部WEAR A

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

はじめに こんにちは、ZOZOTOWN開発本部の松井とZOZO NEXTの 木下 です。9/10から9/12までの3日間、iOSDC Japan 2022が開催されました。ZOZOグループからは6名が登壇、20名以上が参加しました。またプラチナスポンサーとして協賛しました。 technote.zozo.com 今年のiOSDCは時代に即した形で、現地会場とオンライン配信によるハイブリッド開催でした。今回は、その両方を盛り上げるため

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

はじめに こんにちは。検索基盤部の倉澤です。 私たちは、ZOZOTOWNの検索機能の改善に取り組んでいます。ZOZOTOWNには、ユーザーが検索クエリを入力した際に、候補となるキーワードを表示するサジェスト機能があります。 今回はこのサジェスト機能の改善を効率的に評価する社内ツールを以下3点に焦点をあてて紹介します。 社内ツールの各機能 実務にて利用している場

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

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

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

はじめに ブランドソリューション開発本部フロントエンド部FAANSの山田( @yshogo87 )です。 本投稿では、すでにXMLで書かれたレイアウトをJetpack Composeにリファクタリングした理由とその手順について紹介します。 リファクタリングする画面の問題点 FAANS では「コーデ閲覧数、送客数、売上数」を表示する画面があります。 この画面はUIの状態が一元管理されておらず状態

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

こんにちは、WEAR部バックエンドブロックの小山とSREブロックの繁谷です。 WEAR では日々システムの信頼性を向上させるため改善に取り組んでいます。今回はその中でもSLOに基づいた改善について紹介いたします。 WEARリプレイスの歩み WEARでは2019年から本格的にリプレイスを開始しましたが、当初は専属のSREはおらずインフラ構築など緊急度の高いものをバックエンドの

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

こんにちは!バックエンドチームマネージャーの @tsuwatch です! 2022/9/8〜10に三重県にて開催されたRubyKaigi 2022でプラチナスポンサーとして協賛し、スポンサーブースを出展しました。 technote.zozo.com technote.zozo.com 弊社からは WEAR を開発するバックエンドエンジニア、SRE、PdMなど合計10名ほどが現地で参加しました。 我々が運営しているファッションコーディネートアプリ「W

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

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

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

こんにちは、WEARバックエンドブロックの天春( @AmagA001 )です。バックエンドの運用・開発に携わっています。WEARはサービス開始から10年ほどの古いVBScriptを使った環境からRuby on Rails環境にシステムリプレイスを行なっています。本記事では、リプレイスの中でも既存環境が複雑で問題や課題が多くあったPUSH通知システムのリプレイスについてご紹介します。 目次 目次 P

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

はじめに こんにちは、技術本部ML・データ部MLOpsブロックの鹿山( @Ash_Kayamin )です。先日、20個の開発環境APIを用意し、各APIをリクエストに応じて動的に起動できる仕組みをKnative Servingを用いて構築しました。 この記事ではKnative Servingを利用した背景と、利用方法、はまりどころ、利用によって得られたコスト削減効果についてご紹介します。なお、今回はKubernetesクラス