タグ

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

  • Istio Rate Limitを活用した流量制限の取り組み - ZOZO TECH BLOG

    はじめに こんにちは、ECプラットフォーム基盤SREブロックの織田と、カート決済SREブロックの遠藤です。 記事では、Istio Rate Limitの概要とZOZOTOWNでの導入事例を2つご紹介します。 目次 はじめに 目次 現在のZOZOTOWN Istio Rate Limitの概要 Istio Rate Limitとは? 仕組み どのような制限ができるのか? Circuit Breakerとの違い 導入事例 事例1. マイクロサービスから外部APIへのリクエスト制限 構成 設定と計測のポイント 1. レイテンシの計測 2. 1つのAPIに対して2重の制限を設定 事例2. オンプレミス環境のリクエスト制限 構成 設定と計測のポイント 1. 商品別の注文リクエスト数制限 2. 閾値決定のための負荷試験 今後の展望 感想 最後に 現在のZOZOTOWN ZOZOTOWNではオンプレミ

    Istio Rate Limitを活用した流量制限の取り組み - ZOZO TECH BLOG
  • ZOZOTOWNの基幹データベースをリプレースした話 - ZOZO TECH BLOG

    はじめに こんにちは、技術部SRE部ZOZOSREチームの堀口です。普段はZOZOTOWNのオンプレミスとクラウドの構築・運用に携わっています。またDBREとしてZOZOTOWNのデータベース全般の運用・保守も兼務しております。 ZOZOTOWNではSQL Serverを中心とした各種DBMSが稼働しています。その中でZOZOTOWNサービスの根幹となるいわゆる基幹データベース(以下、基幹DBと呼ぶ)を5年ぶりにリプレースしました。 基幹DB群は、商品情報、在庫情報、注文情報、会員様情報、ブランド様情報、配送管理、キャンペーン情報、分析系情報などZOZOTOWNサービスにおけるほぼ全ての情報を管理しているものとなります。 リプレースのモチベーションは5年のハードウェア(以下、HWと呼ぶ)保守期限終了およびSQL ServerのEnd Of Life(以下、EOLと呼ぶ)を迎えるため、HW

    ZOZOTOWNの基幹データベースをリプレースした話 - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2023/03/30
    こういう地に足のついた丁寧な開発をする人とだけ仕事していきたい
  • 楽々スケール Digdag on GKE Autopilot の紹介とその運用Tips - ZOZO TECH BLOG

    こんにちは、MA基盤チームの田島です。私達のチームでは複数のワークフローエンジンを利用し、メールやLINEなどへの配信を含むバッチ処理を行っていました。今回それらのワークフローエンジンをすべてDigdagに統一しました。そして実行環境としてGKEのAutopilot環境を選択したことにより、柔軟にスケールするバッチ処理基盤を実現しましたのでそれについて紹介します。 また、その中で得られた運用Tipsについても合わせて紹介します。 目次 目次 Digdag on GKE Autopilotの構成 Digdagの4つの役割 Worker Scheduler Web API Kubernetes Command Executor Workerでのタスク実行の問題 Command Executor Kubernetes Command Executorの利用 GKE Autopilot環境でのKu

    楽々スケール Digdag on GKE Autopilot の紹介とその運用Tips - ZOZO TECH BLOG
  • EKSのマルチテナント化を踏まえたZOZOGLASSのシステム設計 - ZOZO TECH BLOG

    こんにちは。計測プラットフォーム部バックエンド部SREチームの市橋です。 私たちのチームではZOZOSUIT、ZOZOMAT、ZOZOGLASSといった計測技術に関わるシステムの開発、運用を担当しています。現在のZOZOMATとZOZOGLASSは、どちらも独立したEKSクラスタ上で動いていますが、ZOZOGLASSの環境を構築する際に将来のマルチテナント化を踏まえ大きく設計を見直しました。今回は、この設計見直し時に考慮した点を紹介します。 ZOZOGLASSとは ZOZOGLASSは顔の情報を計測し、イエローベースとブルーベースの2タイプ、及び春夏秋冬の4タイプの組み合わせからなるパーソナルカラーを診断するサービスです。計測した顔の情報から肌の色に近いファンデーションを推薦します。2021年7月時点で、ZOZOGLASSが推薦するコスメアイテムはファンデーションのみですが、今後はファン

    EKSのマルチテナント化を踏まえたZOZOGLASSのシステム設計 - ZOZO TECH BLOG
  • KubeflowによるMLOps基盤構築から得られた知見と課題 - ZOZO TECH BLOG

    はじめに こんにちは。SRE部MLOpsチームの中山(@civitaspo)です。みなさんはGWをどのように過ごされたでしょうか。私は実家に子どもたちを預けて夫婦でゆっくりする時間にしました。こんなに気軽に実家を頼りにできるのも全国在宅勤務制度のおかげで、実家がある福岡に住めているからです。「この会社に入って良かったなぁ」としみじみとした気持ちでGW明けの絶望と対峙しております。 現在、MLOpsチームでは増加するML案件への対応をスケールさせるため、Kubeflowを使ったMLOps基盤構築を進めています。記事ではその基盤構築に至る背景とKubeflowの構築方法、および現在分かっている課題を共有します。 目次 はじめに 目次 MLOpsチームを取り巻く状況 MLOps基盤の要件 MLOps基盤技術としてのKubeflow Kubeflowの構築 ドキュメント通りにKubeflowを構

    KubeflowによるMLOps基盤構築から得られた知見と課題 - ZOZO TECH BLOG
  • 10TB超えのBigQuery巨大データを高速にS3に同期する - ZOZO TECH BLOG

    こんにちは。SRE部MA基盤チームの川津です。 私たちのチームでは今年サービスを終了した「IQON」の10TBを超える大規模データをBigQueryからS3へ移行しました。記事ではデータ移行を行った際に検討したこと、実際にどのようにデータ移行を行ったかを紹介します。 データ移行の経緯 IQONは2020年4月6日をもってサービスを終了しました。そのIQONではデータ分析にBigQueryを利用していましたが、Amazon Web Services(AWS)上にもIQONに関するリソースが存在します。そのため、IQONはGCPAWSの2つのクラウドで運用していました。 しかし、サービス終了に伴いGCPAWSどちらかにリソースを統一する必要が出てきました。統一する意図としては、終了したサービスが利用する取引先を減らし、請求対応などの事務的なコストを減らしたい意図がありました。そのためGC

    10TB超えのBigQuery巨大データを高速にS3に同期する - ZOZO TECH BLOG
  • ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG

    ZOZOテクノロジーズSRE部の市橋です。普段は主にAWSを用いて複数プロダクトのシステム構築、運用に携わっています。今回は2020年2月にリリースされたZOZOMATについて、システム構成と開発時に直面した課題、その課題を解決するために工夫した点について紹介します。 ZOZOMATではEKSやgRPCを新規に採用しており、これによって仕様の変更に強くなる、通信のオーバーヘッドを削減できるなど様々なメリットを享受できました。しかし導入時に一筋縄ではいかないことがあったため、今回苦戦した点についてご紹介できればと思います。 ZOZOMATとは お客様の足を3Dで計測するために開発された計測用マットです。ZOZOMATでの計測情報をもとに、の推奨サイズを参照するなどのサービスをご利用いただくことが可能です。ご興味のある方はこちらをご確認ください。 ZOZOMATのシステム構成 システムの全体

    ZOZOMATにおけるEKSやgRPCを用いたシステム構成と課題解決 - ZOZO TECH BLOG
  • データ集計基盤の改善でLooker導入に至ったワケ - ZOZO TECH BLOG

    こんにちは。開発部データエンジニアの遠藤です。現在、私はデータ×テクノロジーでZOZOグループのマーケティングを支援するデータチームに所属して、データ処理基盤の運用などに従事しています。 記事では、Lookerを用いて運用中のデータ集計基盤をきれいなデータをスマートに取り出せる基盤に改良した件について報告します。 データ集計基盤で燻っていた問題 1. クエリ管理の限界 2. 集計定義に対するデータの信憑性が謎 Lookerは何が良い? ~データガバナンス機能~ LookML データディクショナリ Gitによるバージョン管理 データ集計基盤(改)の設定フロー データ集計基盤(改)でのデータマート更新 まとめ データ集計基盤で燻っていた問題 ZOZOでは、サービスに関するあらゆるデータをBigQueryに集約しています。BigQueryに集約した大量のデータからデータマートとして必要なデータ

    データ集計基盤の改善でLooker導入に至ったワケ - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2019/11/15
    Limit 5000の制約とかLookML自動化が難しいって声をよく聞くので、実際の運用の苦労話も聞きたい。
  • Vue.js+Vuex+TypeScriptのWebフロントエンド開発現場を前向きに改善した話 - ZOZO TECH BLOG

    こんにちは。Webフロントエンドエンジニアの松井菜穂子です。 ZOZOテクノロジーズに入社して一年ほど経ちます。 あるサービスの立ち上げから運用まで、Webフロントエンドのチームリーダー・開発メンバーとして関わってきました。 当記事では、当社のWebフロントエンド開発現場にあった問題と、それぞれの課題に対して堅実に積み重ねた技術的な改善方法についてご紹介します。 はじめに モダンな技術でも負債は生まれる 負債を何故改善するのか 要因 その1: Vueコンポーネントを綺麗に分割する テンプレート コンポーネントクラス 使用例 解決策 テンプレート コンポーネントクラス 使用例テンプレート 使用例コンポーネントクラス コンポーネントカタログで汎用化を促す コード テンプレート(atoms.vue) コンポーネントクラス(atoms.vue) サンプル その2: Vuexをシンプルにする Sta

    Vue.js+Vuex+TypeScriptのWebフロントエンド開発現場を前向きに改善した話 - ZOZO TECH BLOG
  • Google Cloud Next '19で発表された新機能を紹介します! (Cloud Run, BigQuery Storage API, Cloud Data Fusion) - ZOZO TECH BLOG

    こんにちは! App EngineのスタンダードランタイムにRubyが追加されて喜んでいるバックエンドエンジニアのりほやん(高木)と、オレンジ色のチンアナゴは実はニシキアナゴという別種だったことに驚きを禁じ得ない塩ちゃん(塩崎)です。 4/9, 10, 11の期間で開催されたGoogle Cloud Next '19にZOZOテクノロジーズから高木と塩崎が参加しました! GCPの新しい機能や活用についての事例が多く紹介されました。 その中でも2人がカンファレンスで気になった技術を紹介します。 Cloud Run Cloud Runとは Cloud Runの特徴 実際に使ってみる 1. アプリケーションの準備 2. コンテナイメージをビルドする 3. Cloud Runにサービスを作成する App Engineとの違い サービスの比較 各サービスの概要 App Engine Cloud Ru

    Google Cloud Next '19で発表された新機能を紹介します! (Cloud Run, BigQuery Storage API, Cloud Data Fusion) - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2019/04/13
    ありがたいまとめだ!!
  • GitHubで管理されたデータマート構築基盤の紹介 - ZOZO Technologies TECH BLOG

    こんにちは。バックエンドエンジニアの田島(@katsuyan121)です。 弊社ではデータマートをBigQuery上に構築しています。データマートはデータベース全体のデータのうち、必要なデータだけを使いやすい形にしたデータベースです。データマート作成のためのSQLクエリは日々更新や追加があり、BigQueryのコンソールから自由にデータマートを作ってしまうと管理が大変になってしまいます。 そこで、データマートをすべてGitHub上でバージョン管理し、運用の効率化をしました。また、差分更新の導入や依存関係のあるデータマートへの対応などのデータマート構築に必要な機能を作成しました。 弊社のデータ基盤をざっくり紹介します。まずデータはBigQueryへ集約し、Digdagを用いてデータ基盤を構築しています。以下がその概要図です。S3などの分散ストレージや各種DBからデータをBigQueryへ同期

    GitHubで管理されたデータマート構築基盤の紹介 - ZOZO Technologies TECH BLOG
  • 福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG

    つい最近、中途入社しましたバックエンドチームのid:takanamitoです。 今回は入社してすぐに会社の福利厚生をつかってAWSソリューションアーキテクト アソシエイトレベルを取得した話をご紹介します。 Amazon - Badge Verification - CertMetrics きっかけ 作戦 後に引けない状況をつくる どんな試験なのか知る どう勉強するかを考える 模試を受ける 試験当日 福利厚生 まとめ きっかけ 転職に伴いまとまった時間が確保できたことや、前職の同僚が同資格のプロフェッショナルを持っていて仕事でけっこう役立ってそうな感じでうらやましかったので取ろうと思いました。 過去に何度か時間ができたタイミングで趣味webサービスを作っていたんですが、途中で飽きたり運営がうまくいかなかったりといい結果が出ていませんでした。 そこで今回は路線変更して、資格という成果がわかりや

    福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG
  • 6年半のテックブログ運用を振り返って気づいたメリットと長く続けるコツ - ZOZO TECH BLOG

    あけましておめでとうございます、CTOの今村(@kyuns)です。 このテックブログを購読してくださっている読者の皆さん、いつもありがとうございます。 VASILYテックブログも記事を投稿し始めてから約6年半が経ちました。 今回はテックブログを長年続けてきた振り返りと、長く続けるコツについて紹介したいと思います。今年はテックブログを始めてみたい、という方々の参考になれば幸いです。 振り返り 初めてVASILYテックブログに記事が投稿されたのは2011年5月9日、この時から現在までに約6年半の月日が経ちました。余談ですがこの時に紹介した3種の神器は今でも現役です。(QC3はQC30になりましたが) それでは6年半の歴史を軽く振り返っていきましょう。 2011年〜2013年 とりあえず始めてみたフェーズ 2011年から2013年まではエンジニアもまだ5,6名しかおらず、気が向いたら更新する、と

    6年半のテックブログ運用を振り返って気づいたメリットと長く続けるコツ - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2018/01/09
  • BigQueryによるデータ分析のための前処理Tips - ZOZO TECH BLOG

    こんにちは。 使うSQLが200行を超えるのが当たり前になってきたデータチームの後藤です。 記事では、VASILYデータチームで利用しているBigQueryによるデータの前処理のTipsを紹介します。 VASILYではサービスのマスタデータやログデータをGoogle BigQueryに集約して分析に活用しています。機械学習データ分析のための前処理を行う際、軽量なデータであれば抽出結果をPythonに渡して処理させることもできます。しかし、分析環境のメモリに載り切らないほど大きなデータを扱う場合、BigQuery内で前処理を済ませてしまうと時間と計算資源の節約になることが多いです。 今回はBigQueryからアクセスできるパブリックデータの1つ、hacker newsのデータを集計しながらTipsを紹介したいと思います。 欠落した日付を埋める 通常のGROUP BY句の場合 SQL Re

    BigQueryによるデータ分析のための前処理Tips - ZOZO TECH BLOG
  • DigdagとEmbulkを利用してBigQueryにRDS(Aurora、MySQL)のマスタデータを同期する - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアの塩崎です。 先日、会社の広報のためのインターン生紹介記事にメンターとして掲載していただきました。 大学四年生のインターン生と一緒に写真撮影を行ったのですが、見た目だけではどちらが年上かわからなかったので、「メンターの塩崎(右)」という表記をされてしまいました(笑) インターンでも実際のサービスに触れ、課題を解決!〜VASILY DEVELOPERS BLOGが公開されました〜 さて、VASILYではData WarehouseとしてGoogle BigQuery(BigQuery)を利用しています。 BigQuery内にはプロダクトのマスタデータとユーザーの行動ログが格納されています。 そして、それらに対する横断的なクエリを発行することでプロダクトの成長のためのKPIをモニタリングしています。 そのためAmazon Relational Database

    DigdagとEmbulkを利用してBigQueryにRDS(Aurora、MySQL)のマスタデータを同期する - ZOZO TECH BLOG
  • VASILYにおけるBigQuery + Tableau活用例 - ZOZO TECH BLOG

    こんにちは! なんでもディープラーニングでやりたがる癖が抜けず、3ヶ月のディープラーニング禁止令を言い渡されていた後藤です。 記事ではVASILYで利用しているデータ分析の環境について紹介します。 VASILYではデータ分析が必要な場面で、BigQueryとTableauを組み合わせて利用することが多いため、これらの実際の活用例とTableauの選定理由について紹介したいと思います。 以前、CTOがデータ周りの環境の全体像を紹介しました。 tech.vasily.jp 社内ではBigQueryを中心にデータ周りの環境が構築されており、そこからデータ活用のあらゆる業務へつながります。 データの可視化と社内への共有は主にTableauを使っています。 まずは、BigQueryとTableauの説明から始めます。 BigQuery とは BigQueryとは、Googleが提供しているデータウ

    VASILYにおけるBigQuery + Tableau活用例 - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2017/04/17
    お金あったらTableau使いたい
  • 【Rails】WEB APIを長く運用するための仕組み化 - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアのじょーです。大規模なサービスのAPIを開発する際に、ルールを決めずに開発していると無秩序なコードが散見される運用がしづらいAPIになってしまいます。また、ルールを決めたとしても共有が上手くいかないなどの理由で守られなくなってしまうこともあると思います。 記事では、APIを運用しやすくするために、ただルールを決定しただけではなく、ルールを守るためにそれぞれ仕組み化をしたことを紹介します。 APIのレスポンスを統一する デコレーターを使ってレスポンスの定義を綺麗に書く パラメーターを統一する Validatorによりパラメーターの明記を強制する コーディング規約を守る LinterとSideCIを導入して修正とレビューの自動化 Linterのルールを適度に調節する 1. APIのレスポンスを統一する ここで言うAPIのレスポンスを統一するというのは、返すA

    【Rails】WEB APIを長く運用するための仕組み化 - ZOZO TECH BLOG
  • 機械学習とデータ分析を支えるAWSとGCPを利用したマルチクラウドアーキテクチャのお話 - ZOZO TECH BLOG

    はじめに こんにちは、CTOの今村です。 先日弊社のiQONが3年連続でGoogle Play「2016年ベストアプリ」に選ばれました。また、今回ベストイノベーティブ部門の大賞を受賞しました。 イノベーティブ部門ということなので、Androidアプリの品質だけでなく、アプリの中にある様々な機能の技術的な取り組みも評価してもらった背景があるのかなと個人的には感じています。 さて、ちょうど先日Minami Aoyama Night #1にて、弊社のデータまわりのアーキテクチャについてお話させていただく機会がありました。 今回は2016年12月時点での、機械学習データ分析を支えるAWSGCPを利用したマルチクラウドアーキテクチャについて紹介したいと思います。 最近のデータまわりの取り組み 今年になってからVASILYは過去のテックブログでも紹介したように、データまわりの取り組みを一層強化して

    機械学習とデータ分析を支えるAWSとGCPを利用したマルチクラウドアーキテクチャのお話 - ZOZO TECH BLOG
  • WebアプリのAPIリクエスト効率化 - ZOZO TECH BLOG

    Webフロントエンドエンジニアの権守です。 今回は、iQONのWebアプリのAPIリクエスト部分の仕組みを改善したことについて紹介します。 前提 このブログでも何度か紹介していますが、iQONでは、ネイティブアプリとWebアプリの両方で、共通のAPIを利用して開発を行っています。 そのため、通常のRailsアプリケーションと異なり、iQONのWebアプリ版のモデル部分では、DBへのアクセスを行わずAPIへのアクセスを行い、データを取得します。 こういった形式を扱うGemとしてはherなどがありますが、iQONでは、完全にREST形式でない、並列でリクエストを行いたいなどの理由から自前で実装しています。 問題 しかし、このモデル部分には次の二つの問題がありました。 APIリクエストの依存関係を記述できないため、実行タイミングを制御する必要がある APIリクエストのリクエスト処理とデータの取得

    WebアプリのAPIリクエスト効率化 - ZOZO TECH BLOG
  • データ分析基盤としての BigQuery 運用のベストプラクティス - ZOZO TECH BLOG

    あけましておめでとうございます。データサイエンティストの金田です。現在 iQON では、データ分析の基盤として BigQuery を利用しており、データ分析や計算負荷の高いバッチ処理等に活用しています。しかしながら、通常のデータベースとは若干異なる点があり、効率的な運用ができるまでに様々な試行錯誤がありました。今回はそれらの試行錯誤によって得られた知見をベストプラクティスとして紹介したいと思います。 ログデータのテーブル名に日付を入れる BigQuery でログを保存する場合は、テーブル名の最後に yyyymmdd 形式で日付を入れることをお勧めします。理由は二つあり、1つ目はスキャン対象となるデータ量を抑えられるため、2つ目が Web UI でのテーブル管理が容易になるためです。 処理データ量の抑制 まず、スキャンするデータ量を抑えられるという点ですが、BigQuery ではクエリを発行

    データ分析基盤としての BigQuery 運用のベストプラクティス - ZOZO TECH BLOG
    yukiyan_w
    yukiyan_w 2016/01/12
  • 1