タグ

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

  • OSSにコントリビュートしてログ収集基盤におけるCloud Pub/Subのリージョン間通信費用を削減した話 - ZOZO TECH BLOG

    こんにちはSRE部の川津です。ZOZOTOWNにおけるログ収集基盤の開発を進めています。開発を進めていく中でCloud Pub/Subのリージョン間費用を削減できる部分が見つかりました。 今回、OSSであるfluent-plugin-gcloud-pubsub-customにコントリビュートした結果、Cloud Pub/Subのリージョン間費用を削減できました。その事例を、ログ収集基盤開発の経緯と実装要件を踏まえて紹介します。 目次 目次 ログ収集基盤の紹介 開発経緯 フロントエンドのログしか取得できない BigQuery ExportはSLAを担保されていない リアルタイムにログを保存できない 実装要件 ログ送信側の環境に依存しない共通の仕組みで実装する 転送されるログの量に応じてオートスケールする構成にする 送られてくるログをロストしない リアルタイムにログが保存される インフラ構成

    OSSにコントリビュートしてログ収集基盤におけるCloud Pub/Subのリージョン間通信費用を削減した話 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2021/04/12
  • 物流倉庫の実績集計を自動化して現場の負担を軽減したはなし - ZOZO TECH BLOG

    こんにちは、基幹システム部BASEチームの横山です。 突然ですが、ちょうど1年程前に行われたZOZOバイト革命は覚えていますでしょうか?物流倉庫「ZOZOBASE」で一緒に働いてくれる仲間の2000人募集や、基時給のUP等で少しだけ話題になりましたね。 今回は、そんなZOZOBASEの人材を管理する上で一助となる作業実績の集計自動化について紹介します。 はじめに ZOZOTOWNは独自の物流倉庫を保有しており、ブランド様からの商品入荷や保管、お客様への発送まで独自のシステムを用いて行っています。 一口に入荷から発送までと書きましたが、その中には多種多様な作業があり、現場で働く多くの方々に支えられております。このような物流倉庫の戦略を考える上で実績管理や人材管理はとても重要になります。 そんな実績の集計ですが、少し前までは人手で行われていました。それを自動化する際、どのような要件で設計・開

    物流倉庫の実績集計を自動化して現場の負担を軽減したはなし - ZOZO TECH BLOG
    atomicmap
    atomicmap 2020/06/09
  • チームのアプリ開発力を高めるZOZOTOWN Androidチームが実践するCodelab会 - ZOZO TECH BLOG

    こんにちは、ZOZOTOWN部でAndroidエンジニア/TechLeadをしている堀江(@Horie1024)です。投稿では、ZOZOTOWNのAndroidチームで行っている「Codelab会」についてご紹介します。 Codelab会とは? Googleが公開しているCodelabsは、AndroidだけでなくGCP、TensorFlow、Firebase、Flutter、Augmented Reality等の様々なトピックをカバーする、チュートリアル形式でまとめられた教育コンテンツです。Androidに関するCodelabも多く公開されています。「Codelab会」は、ZOZOTOWN Androidチーム全員でCodelabに取り組む勉強会として2019年の7月からはじめました。 ZOZOTOWN Androidチームの課題 私がZOZOTOWN Androidチームに加わったの

    チームのアプリ開発力を高めるZOZOTOWN Androidチームが実践するCodelab会 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2020/05/25
  • クローラー運用を楽にするためのクラウドサービス比較 - ZOZO TECH BLOG

    こんにちは!最近気になるニュースはスピノサウルスの尻尾の化石が発見されたこと1な、SRE部エンジニアの塩崎です。ZOZOテクノロジーズの前身となった会社の1つであるVASILYでは数多くのクローラーの開発・運用の担当をしてきました。 今回はその知見を生かして、クローラーを楽に運用するためのクラウドサービスを紹介します。 概要 データ解析を円滑に進めるためには、CSVやWeb APIなどの構造化されたデータが必要です。しかし全てのWebサイトにあるデータが構造化データを提供しているとは限りません。むしろ提供していないケースの方がはるかに多いです。そのため、Webクローラーを作成して構造化されていないWebページを解析し、構造化データを生成する必要があります。 しかし、Webクローラーの運用には数多くの「つらみ」があります。特に大量のWebページを1日1回などの頻度で定期的にクロールする際には

    クローラー運用を楽にするためのクラウドサービス比較 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2020/05/15
  • ZOZOTOWN iOS にスナップショットテストを導入して開発速度を劇的に向上させた話 - ZOZO TECH BLOG

    こんにちは! 開発部の@ahiru_starrrです。 稿では、ZOZOTOWN iOSにSnapshotTestを導入したのでその経緯や導入方法、導入するメリット・デメリット、どんな場面で役に立つのかなどについて書いていきます。 SnapshotTestがどのようなものかよく分からない方や導入を検討している方々のお役に立てれば幸いです。 SnapshotTestとは SnapshotTest導入の背景 2つの課題 エンジニア ↔︎ デザイナー間のコミュニケーションコスト レガシーからモダンへの取り組み 導入方法 環境変数を設定 実装方法 テストクラスを作成 recordModeを設定 テストコードを実装 フォルダ名を設定 ファイル名を設定 stubの設定 FBSnapshotVerifyView SnapshotTestのユースケース リファレンス画像を生成 SnapshotTest!

    ZOZOTOWN iOS にスナップショットテストを導入して開発速度を劇的に向上させた話 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2020/01/27
  • データ集計基盤の改善でLooker導入に至ったワケ - ZOZO TECH BLOG

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

    データ集計基盤の改善でLooker導入に至ったワケ - ZOZO TECH BLOG
    atomicmap
    atomicmap 2019/11/15
  • 「ノンプログラミングでも自動化したい!」5分以内でできるSlack×Zapier活用術3選 - ZOZO TECH BLOG

    こんにちは。Innovation Initiative Div.の @ka_bi__ です。 普段は「コーデ相談 by WEAR」のプロダクトマネージャーを担当しています。 「業務上で発生する面倒なタスク、さっと自動化したい…!でもエンジニアに頼むにも忍びないし、わざわざコーディングするにはハードルが高い…!」 こんな場面は、多々ありませんか? タスク自動化ツールZapierを使えば、GUIでサクッと解決! 記事では、SlackをベースにZapierを活用した事例を3つお伝えしたいと思います。 Zapierとは Zapierとは、アメリカのタスク自動化ツールです。 複数のアプリ(Webアプリケーション)を連携させてワークフローを作り、業務を自動化させることができます。Web UI上からアカウント連携・ワークフロー作成ができるため、プログラミングの知識がなくても簡単に使うことができます。類

    「ノンプログラミングでも自動化したい!」5分以内でできるSlack×Zapier活用術3選 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2019/07/22
  • Ruby on Lambdaを使ってRubyKaigi用のデモアプリを作った話 - ZOZO TECH BLOG

    こんにちは、開発部の塩崎です。 最近はCloudFormation・Embulk・Digdagを使った仕事をすることが多く、一番使う言語がYAMLになりました。 今年福岡で開催されたRubyKaigi 2019ではZOZOテクノロジーズはRubyスポンサーとして協賛させていただきました。 カンファレンス中のスポンサーブースの出し物として、DroidKaigi 2019と同様にファッションチェックアプリの展示を行いました。 DroidKaigiの展示と全く同じでは芸がないと考え、今回のRubyKaigiのためにRuby on Lambdaランキング機能を作成しました。 記事では、そのランキング機能の説明をしたいと思います。 ファッションチェックアプリのランキング機能とは まず、ファッションチェックアプリの説明をします。 このアプリはDroidKaigi 2019のために作成されたデモアプ

    Ruby on Lambdaを使ってRubyKaigi用のデモアプリを作った話 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2019/07/03
  • 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
    atomicmap
    atomicmap 2019/05/14
  • 全社的に会社用GitHubアカウントを廃止した件 - ZOZO TECH BLOG

    はじめまして。2019年1月に入社したSREスペシャリストのsonotsです。最近MLOpsチームのリーダーになりました。今回の記事はMLOpsの業務とは関係がないのですが、3月に弊社で実施した会社用GitHub個人アカウントの廃止について事例報告します。 TL;DR 会社用GitHubアカウントを作るべきか否か問題 会社用GitHubアカウントの利用で抱えた問題 1. OSS活動時にアカウントを切り替える必要があり面倒 2. GitHubの規約に準拠していない 会社用アカウントを廃止した場合にセキュリティをどのように担保するか GitHubのSAML single sign-on (SSO)機能について 会社用アカウントの廃止およびSSO有効化の実施 会社用GitHubアカウントを使い続ける場合 私用GitHubアカウントに切り替える場合 Botアカウントの場合 Outside Coll

    全社的に会社用GitHubアカウントを廃止した件 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2019/04/11
  • TalendをDigdagとEmbulkに移行した - ZOZO TECH BLOG

    はじめまして! ZOZOテクノロジーズ開発部の平田(@TrsNium)と申します。 業務ではデータ基盤の開発・運用を行っています。 よろしくお願いいたします。 今回複数のツールが混在していたデータ基盤を「Digdag・Embulk」に統一したので、その取り組みを紹介します。 概要 弊社のデータ基盤は注文情報や顧客情報などをSQL Serverから取得しBigQueryに転送しています。 以前のデータ基盤では「Talend」と「Embulk・Digdag」でデータの収集と転送をしていました。 Talendは、タスクのスケジューリングとデータ転送を行うツールです。 Digdagはタスクのスケジューリングをするツールで、Embulkはデータを転送を実行するツールです。 「Talend」と「Digdag・Embulk」は別々のチームが管理・運用をしており、運用負荷が高いという問題がありました。 そ

    TalendをDigdagとEmbulkに移行した - ZOZO TECH BLOG
    atomicmap
    atomicmap 2019/03/19
  • 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
    atomicmap
    atomicmap 2018/08/17
  • 福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG

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

    福利厚生を使ってAWSソリューションアーキテクト アソシエイトを取得しました - ZOZO TECH BLOG
    atomicmap
    atomicmap 2018/02/28
  • 検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介 - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアの塩崎です。 最近のTECH BLOGではMatzさんのインタビュー記事を書いたり、RubyKaigiの発表まとめを書いたりして、他人の褌で相撲を取っていました。 今回は心を入れ替えて(?)、自分自身が取り組んだ内容について書きます。 VASILYでは検索用のミドルウェアとしてApache Solr(以下、Solr)を使用しています。 全文検索や、ファセット機能などはMySQLだけでは不十分なために、Solrを併用しています。 Solrのサーバー構成例にはいくつかのパターンがありますが、今回はその中でも最も可用性の高いSolrCloudをサービスインしたので、それについて紹介を行います。 Solrの構成例を幾つか紹介 Solrの構成例は大きく以下の3つに分けられます。 まずは、それぞれについて詳しく説明していきます。 スタンドアローン構成 master s

    検索システムだって高可用性にしたい!SolrCloudを用いた高可用性構成の紹介 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2018/01/23
  • 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
    atomicmap
    atomicmap 2018/01/10
  • 本番DBと開発DBが乖離した無法地帯の整備 - ZOZO TECH BLOG

    こんにちは。バックエンドエンジニアインターンの田島です。弊社ではIQONの運用を7年間続けています。長年の運用から技術的負債が溜まってきていました。その中の1つに、IQONのDBと開発DBの状態が乖離しているという問題があります。この問題をどのように解決したかについて紹介します。 IQONについて IQONはRuby on Railsで運用されており、以下のような環境で動作しています。 Ruby 2.2 Rails 4 MySQL 5.6 IQONのデータベースについて IQONではRDBとしてMySQLを利用しています。DBDB、開発DB、テストDBの3種類に分かれています。スキーマ変更の作業はRailsのマイグレーション機能を利用せず、SQLを直接利用して行っています。これは、サービスの大規模化に伴い、マイグレーション機能だけでは要件を担保できなくなったためです。手順は以下の

    本番DBと開発DBが乖離した無法地帯の整備 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2017/12/13
  • RubyKaigi2017参加レポート(全日分)とスライドまとめ - ZOZO TECH BLOG

    こんにちは、VASILYのバックエンドエンジニアの塩崎です。 9/17〜9/20にかけて広島で開催されたRubyKaigi2017に、VASILYから4人が参加しました。 3日間で約50個の講演があり、参加者も数百人を超えるであろう大変大規模なカンファレンスでした。 たくさんの講演の中で、VASILYのエンジニアが興味を持ったものを、この記事でいくつか紹介いたします。 The many faces of module Ruby Lauguage Server Ruby and Distributed Storage System Progress of Ruby/Numo: Numerical Computing for Ruby Improve extension API: C++ as better language for extension An introduction and

    RubyKaigi2017参加レポート(全日分)とスライドまとめ - ZOZO TECH BLOG
    atomicmap
    atomicmap 2017/09/22
  • 開発効率を上げる!Swaggerで作るWEB APIモック - ZOZO TECH BLOG

    こんにちは。バックエンドエンジニアのじょーです。 みなさんは、開発初期の段階でWeb API(以下API)の実装が追いつかずクライアント側が開発できないという経験をしたことはありますか? クライアント側はAPIがないと開発が滞ってしまうことがありますが、かといってAPIの開発も始まったばかりではすぐに必要なAPIを提供することができません。その問題を解決し、両者でスムーズに開発をすすめるために有効な方法の1つに、APIモックの作成があります。 弊社では、開発初期の段階でWeb APIのモックを作成し、スムーズに開発できるようにしています。 以前は、Apiaryをモック作成ツールとして利用していましたが、記法やエディターに使いづらい点があり最近Swaggerに移行しました。 記事では、Swaggerを使ったAPIモックの作成方法と手順、また気をつけるべき点などを紹介します。 目次 Swag

    開発効率を上げる!Swaggerで作るWEB APIモック - ZOZO TECH BLOG
    atomicmap
    atomicmap 2017/05/19
  • インターン生がデータ転送基盤を一から設計する、VASILYバックエンドインターンの紹介 - ZOZO TECH BLOG

    こんにちは、バックエンドエンジニアの塩崎です。 先日、VASILYバックエンドチームにインターン生が来てくれました。 この記事では彼がインターンで作ってくれた機能や、インターン中のスケジュールなどを紹介します。 インターンに来たのはこんな学生 インターンに来たのはこの春に大学4年生になったばかりの、柴犬大好き系エンジニアのT君です。 好きな言語はClojureというなかなかギークな学生さんでした。 インターンに来てもらう前に提出してもらった事前課題では、コードの綺麗さが光っていました。 この課題はRuby on Railsで「とあるお題」に従ったWeb APIを作るものなのですが、Rubyでありながら変数の再代入を嫌う傾向はさすが関数型に慣れているだけのことはあるなと感じました。 やってもらったタスク 目標 今回のインターンでT君にやってもらったタスクはMySQLからBigQueryのデー

    インターン生がデータ転送基盤を一から設計する、VASILYバックエンドインターンの紹介 - ZOZO TECH BLOG
    atomicmap
    atomicmap 2017/04/14
  • 数百サイトのクローラーを効率よく運用する仕組み - ZOZO TECH BLOG

    こんにちは! バックエンドエンジニアのりほやんです! 2017年の2月28日にIQONはリブランディングを行い、タグラインを "わたしの「好き」がここにある” に刷新しました。 この “わたしの「好き」がここにある” という体験をユーザーにしていただくには、IQONに掲載されている商品情報がとても重要になります。 そして、正確な商品情報の掲載にはクローラーが正しく運用され稼働していることが必要不可欠です。 記事では、IQONの商品情報を支えるクローラーの運用をどのように仕組み化しているかについてご紹介します。 クローラーを作成、運用されている方々のお役に立てたら幸いです。 弊社テックブログでは以前、『速くクロールすること』に注目した記事を公開しましたが、今回は『正しくクロールすること』に注目しました。 『速くクロールすること』に注目した『Docker / Apache Mesos / M

    数百サイトのクローラーを効率よく運用する仕組み - ZOZO TECH BLOG
    atomicmap
    atomicmap 2017/04/11