株式会社ZOZO の技術ブログ

ZOZOTOWNにおける段階的なIstioサービスメッシュ化戦略

はじめに こんにちは、SRE部 ECプラットフォーム基盤SREブロックの亀井です。 ZOZOTOWNのマイクロサービスプラットフォーム基盤(以下、プラットフォーム基盤)ではサービス間通信におけるトラフィック制御・カナリアリリース実装のため、 Istio によるサービスメッシュを導入しました。現在は初期段階としてBFF機能を司るZOZO Aggregation APIとその通信先サービス間へ部分的

iOSDC Japan 2021に7名のエンジニアが登壇しました

こんにちは、ZOZOTOWN開発本部の名取( @ahiru___z )と計測プラットフォーム開発本部の寺田( @tama_Ud )です。先日、9/17から9/19までの3日間に渡って iOSDC Japan 2021 が開催されました。例年通り素晴らしい発表が盛り沢山でしたね! iosdc.jp 昨年に引き続きオンライン開催となりましたが、Discordを使ったAsk the Speakerやニコニコ動画の弾幕などリアルタイム性のあるコミュニケーシ

「ZOZO TECH BLOG」名称変更のお知らせ

こんにちは、ZOZO CTOブロックの池田( @ikenyal )です。 本日、10/1に株式会社ZOZOテクノロジーズは組織再編が行われ、株式会社ZOZO及び株式会社ZOZO NEXTとして再始動します。それに伴い、ご愛読いただいていた「ZOZO Technologies TECH BLOG」も「ZOZO TECH BLOG」に名称変更をします。 発信内容はこれまでと変わらず、ZOZOのエンジニアが有益な技術情報をお届けしますので、引き続きご

Cloud Runで新規サービスを構築・運用するためにSREとして取り組んだこと

はじめに こんにちは。メディアプラットフォーム本部 WEAR部 WEAR-SREの笹沢( @sasamuku )です。 ZOZOが新しく展開する「FAANS」というショップスタッフ向けアプリをクローズドβ版としてテスト運用しています。本アプリは、 WEAR と連携したコーディネート投稿や、その成果を可視化する機能などをショップスタッフの皆さんに提供するtoBのソリューションです。現在、正式リ

Istioサーキットブレーカーで備えるマイクロサービスの連鎖障害

はじめに こんにちは。SRE部 ECプラットフォームSREチームの大澤です。 先日、SREチームにてBFF機能を司る「ZOZO Aggregation API」の導入について紹介しました。 techblog.zozo.com BFFは複数のバックエンドと通信するアーキテクチャであるため、通信先のバックエンド障害に大きな影響を受けてしまいます。そのため、ZOZO Aggregation APIでは、各バックエンド間の通信障害をIstioによる

sqldefへのSQL Server対応のコントリビュート 〜OSS活動を通して紐解くDBマイグレーションツールの実装〜

はじめまして、ECプラットフォーム部 API基盤チームに2021年新卒入社した山添です。普段はAPI GatewayやID基盤の開発に携わっています。 データベースを運用していると、ビジネスロジックの変更やクエリ最適化のためにデータベーススキーマを変更することがあります。その際にデータベースマイグレーションツールを使うことで、運用の過程で変更されるスキーマの管理

Perfettoを用いたAndroidアプリのボトルネックの特定とその改善

はじめに ZOZOTOWN本部 ZOZOアプリ部 AndroidチームでZOZOTOWNのAndroidアプリを開発している鈴木です。 本投稿は、ZOZOTOWN AndroidアプリのHome画面に存在する「商品モジュール」実装中に発生したパフォーマンスの低下をPerfettoというツールを用いて特定・改善した事例を紹介します。 はじめに Home画面の「商品モジュール」について 発生した問題 調査方法について 調査ツールの選

KarateによるWeb APIのE2Eテスト実現への取り組み

はじめに こんにちは。マイグレーションチームの藤本です。 ZOZOTOWNはオンプレミスとクラウドのハイブリッドで動いており、その内、オンプレミス側のアプリケーションはClassic ASPとストアドプロシージャの組み合わせで実装されています。 私たちのチームでは、そのClassic ASPとストアドプロシージャの廃止を目標に、まずは参照系の処理をWeb APIで置き換える作業をして

Cypressのカスタムコマンドを用いたVue.jsの効率的なE2Eテスト実装

はじめに こんにちは、EC基盤本部・MA部・MA基盤チームでマーケティングオートメーションのシステムを開発している長澤( @snagasawa_ )です。この記事では、CypressによるE2EテストをVue.jsプロジェクトへ導入した取り組みについて、実際の画面を交えてご紹介します。このE2Eテストによって、複雑な入力フォームを自動でテストできるようになり、修正後のバグを検知しや

トラブルの原因特定率を劇的に向上させるSQL Serverロギングの仕組み作り

こんにちは。アーキテクト部の廣瀬です。 私は2021年7月に、Data Platformカテゴリにおいて Microsoft MVP を受賞しました。昨年に続き2度目の受賞です。これからも受賞し続けられるように引き続きがんばります。 弊社ではサービスの一部にSQL Serverを使用しています。以前テックブログで SQL Serverの障害調査フロー をご紹介しました。その中で 動的管理ビュー (Dynamic Management V

GitHub Actionsとtfupdateを使ってTerraformおよびTerraform Providerのバージョンアップを自動化する

はじめに こんにちは。SRE部MLOpsチームの築山( @2kyym )です。 Infrastructure as Code(IaC)が一般的になり、またパブリッククラウドをフル活用したインフラ構築が当たり前となりつつあります。そんな中で、インフラの構成管理にTerraformを用いているチームも多いのではないでしょうか。本記事ではTerraformを用いたインフラ構成管理において避けては通れないTerraformやProvider

【オンラインMeetup イベントレポート】ZOZOTOWNアーキテクトナイト

こんにちは、ZOZOテクノロジーズ技術戦略室の光野( @kotatsu360 )です。 ZOZOテクノロジーズでは、9/9に ZOZO Tech Meetup〜ZOZOTOWNアーキテクトナイト〜 を開催しました。 zozotech-inc.connpass.com このイベントでは、ZOZOTOWNの開発においてアーキテクトとして活躍しているメンバーから、「アーキテクチャ設計」にフォーカスして技術選定や設計手法、設計時の考え方などについて具体

GCPの秩序を取り戻すための試み 〜新米GCP管理者の奮闘記〜

こんにちは。SRE部データ基盤チームの塩崎です。ZOZOテクノロジーズではGCPの管理を各プロジェクトのOwnerに任せていた時期が長く続いていましたが、今期から全社的なGCP管理者を立てることになりました。本記事では新米GCP管理者である僕が全社的なGCPの管理をする上で遭遇した事例を紹介します。時には泥臭い方法で、時にはプログラムの手を借りて自動化をし、数々

ZOZOTOWNのWebサーバを、EC2 Windows Serverで自動構築する

こんにちは、EC基盤本部SRE部ZOZOSREチームの石川です。 普段はZOZOTOWNのオンプレミスとクラウドの構築・運用に携わっています。 ZOZOTOWNには長い歴史がありますが、その中核を成すWebアプリケーションのアーキテクチャは、サービス開始当初から現在に至るまで大きく変わらず稼働しています。 一方で、インフラは少しずつ変わっています。高負荷となるセールやイベント

コンピュートとストレージの分離から紐解くBigQueryの権限モデル

こんにちは。SRE部DATA-SREチームの塩崎です。Software Design誌の2021年9月号に弊社でのBigQuery活用事例を寄稿しましたので、書店などで見かけた際は購入していただけますと嬉しいです。 gihyo.jp さて、BigQueryはコンピュートとストレージを分離することで高いスケーラビリティを達成しているData WareHouse(DWH)です。しかし、そのアーキテクチャを採用したがゆえに権限モデルが複