ブックマーク / engineering.mercari.com (33)

  • lltsvでLTSV形式のデータをサクサクパースしよう | メルカリエンジニアリング

    LTSVはLabeled Tab-separated Valuesの略で、コロンで区切られたラベルと値の組み合わせ(key:value)をタブ区切りで表現したフォーマットです。 主にログデータのフォーマットとしての利用が想定されています。 uri:/upload status:400 size:13599 reqtime:0.280 apptime:0.150 uri:/downalod status:200 size:12812 reqtime:0.330 apptime:0.210 uri:/item/new status:200 size:29830 reqtime:0.050 apptime:0.050 uri:/item/fav status:200 size:33123 reqtime:0.100 apptime:0.099 uri:/top status:301 size:1

    lltsvでLTSV形式のデータをサクサクパースしよう | メルカリエンジニアリング
  • 主要データベースの増え続けるdisk容量の対応事例 | メルカリエンジニアリング

    こんにちは、SRE の @masartzです。 今回は最近取り組んだ、メルカリの主要データベースの容量削減のお話をしようと思います。 TL;DR 主要データベースの容量を20%以上削減しました どういう状況だったか? 何をしたか? メルカリでは2017年11月現在、出品数は1日100万件を超えています。 なので、単純に日々多くのデータが増えていっています。 そのためデータベースのスケーリングは常に検討し、取り組まなければならない課題です。 今回扱ったデータベースはいくつかあるデータベースの中で商品テーブルを持つ、メルカリの主要データベースになります。 増え続けるデータに対応するための、テーブル分割を変則的な形で対応したのでその過程を紹介します。 前提:データベース分割方法 メルカリのデータベースには 会員情報や商品情報など、基要素となるデータから、通知やお知らせメッセージなど付加的な機能

    主要データベースの増え続けるdisk容量の対応事例 | メルカリエンジニアリング
  • メルカリの写真検索を支えるバックエンド | メルカリエンジニアリング

    メルカリのAI EngineeringでTech Leadを務めている中河です。今回は3/18に正式リリースされた「写真検索機能」を支えるバックエンド・インフラをシステム側からの視点でご紹介します。 写真検索とは 所謂、画像検索機能で商品名を知らなくても画像から商品を検索できる機能の事です。詳しくは下記の公式リリースをご覧ください。 about.mercari.com 基的な写真検索の仕組みは、Deep Neural Networks (DNN)を使用して商品画像から特徴ベクトルを取得し、取得した特徴ベクトルをApproximate Nearest Neighbor Index(ANN Index)に追加して画像indexを構築。 検索時には同じく商品画像からDNNを介して特徴量ベクトルを取得し、ANN Indexから検索します。 アーキテクチャの概要 Figure1 上記がアーキテクチ

    メルカリの写真検索を支えるバックエンド | メルカリエンジニアリング
  • Chrome DevToolsを用いたメルカリWebのパフォーマンス計測 - Mercari Engineering Blog

    フロントエンドチームの @urahiroshi です。Mercari Advent Calendar 2018 12日目を担当します。 今年の8月から12月にかけて,メルカリ・メルペイのフロントエンドチーム有志で「超速!Webページ速度改善ガイド」の社内輪読会を行いました。 このの中で,「推測するな,計測せよ」という言葉が紹介されていますが,今回の記事は,輪読会で学んだことのまとめとして,Chrome DevToolsを用いてメルカリWebのパフォーマンス計測と簡単な分析を行ったものです。 なお,現在メルカリWebのアーキテクチャを刷新するための開発が進んでいるため,ここで計測したパフォーマンスの値は大幅に変化していく可能性が高いです。アーキテクチャの刷新後に振り返って見られる楽しみが増えることも、この記事を書いた目的の一つです。 計測方法,環境 計測はGoogle Chrome 71.

    Chrome DevToolsを用いたメルカリWebのパフォーマンス計測 - Mercari Engineering Blog
  • 2018年のPHPとメルカリ | メルカリエンジニアリング

    Mercari Advent Calendar 2018 の 8 日目は Backend チームの @hidenorigoto がお送りします。 来週末12/15(土)には、PHPカンファレンスが開催されます。メルカリでは、これから開催される3つのPHP系カンファレンスをスポンサーとして支援しています。 PHPカンファレンス 2018 2018/12/15(土) PHPカンファレンス仙台 2019 2019/01/26(土) PHPerKaigi 2019 2019/03/29(金)〜2019/03/31(日) この記事では、メルカリにおけるPHPとの関わり方と、PHPカンファレンスやPHPコミュニティに向けて、メルカリエンジニアからの一言メッセージを紹介します。 メルカリでは現在、システムと組織のMicroservies化を進めています。Microservicesの開発にはGoを選択して

    2018年のPHPとメルカリ | メルカリエンジニアリング
  • フロントエンドエンジニアは Micro Frontends の夢を見るか - Mercari Engineering Blog

    Mercari Advent Calendar 2018 の6日目はフロントエンドチームの @vwxyutarooo がお送りします。 このタイトルが言いたくて Micro Frontends の記事を書きました。皆さんは Micro Frontends という言葉を聞いたことがあるでしょうか? 私は数ヶ月前まで全く知りませんでした。メルカリのフロントエンドチームにて Micro Frontends に関して考える機会があったので、Micro Frontends とはなんなのか。何をどのように解決しようとしているのかという内容を紹介します。 Micro Frontends とは Micro Frontends という考え方は ThoughtWorks Technology Radar にて2016年に初めて登場したと言われています。日語で言うときは複数形は無視して "マイクロフロントエン

    フロントエンドエンジニアは Micro Frontends の夢を見るか - Mercari Engineering Blog
  • GCPでStreamなデータパイプライン始めました - Mercari Engineering Blog

    こんにちは、はじめまして。メルカリでデータエンジニアをしている、しゅう (@shoe116)です。Mercari Advent Calendar 2018の3日目を担当することになりました。 メルカリではデータの活用が盛んな一方で、実はデータ処理を専門にやるエンジニアが最近まで存在しておらず、そんなこんなで僕がSREチームにデータエンジニア第1号としてjoinしました(実はこのあたりはメルペイのが少し先んじていて、あっちにはすでにデータプラットフォームチームがあって、僕は今彼らと一緒に並んでコードを書いている)。今日は僕らがGoogle Cloud Platform(以下GCP)に作っている、メルカリ(とメルペイ)の新しいログ収集基盤について簡単に紹介しようと思います。 メルカリの既存ログ収集基盤について 「新しいログ収集基盤を紹介しようと思います」と書いた数行後にこの章を持ってくるのは自

    GCPでStreamなデータパイプライン始めました - Mercari Engineering Blog
  • エンジニアリングマネージャーとソフトウェア設計者に共通するスキルを考えてみた - Mercari Engineering Blog

    @hidenorigotoです。現在はメルカリJPのBackendチーム全体のマネジメントをしています。以前のキャリアではマネジメントもやっていましたが、どちらかと言えば1人のエンジニアとして、ソフトウェアの設計と数多く向き合ってきました。その過程で、良い設計を生み出す設計者は、どのようなスキルを持っているものなのかと疑問を持ち、アレコレ考えることがありました。 今、メルカリでマネージャーとして仕事をする中で、この疑問は次のように形を変えました。 「マネジメントが上手いマネージャーはどのようなスキルをもっているのだろうか。」 そして、私の中で1つの仮説が浮かびあがってきました。それは、「良いソフトウェア設計者」と、「良いエンジニアリングマネージャー」には、仕事をより良く遂行するためのコアなスキルとして共通する部分がある、というものです。 ソフトウェア設計者の仕事 ソフトウェア設計は、1つの

    エンジニアリングマネージャーとソフトウェア設計者に共通するスキルを考えてみた - Mercari Engineering Blog
  • マイクロサービスチーム編成のベストプラクティスとメルカリでの構想 - Mercari Engineering Blog

    今年もMercari Advent Calendar 2018 が始まりました。初日は @stanaka がお送りします。 メルカリでは創業以来開発してきたPHPのアプリケーションから(主に)Goで実装されたマイクロサービスアーキテクチャへの移行を進めています。これまでにMercari Tech Conferenceやその他のカンファレンスでMicroservice化の意義、移行の方法、基盤となるMicroservice Platformの概要などについて様々な発表をしてきました。 現在、来年からの格的なマイクロサービスアーキテクチャでの開発に向けて、これまでのサービスの施策ドリブンのチーム編成から、マイクロサービスを軸としたチーム編成に移行しようとしています。 しかし、マイクロサービスアーキテクチャを成功させるためには、各種プラットフォームの機能を揃え、それらを利用したマイクロサービス

    マイクロサービスチーム編成のベストプラクティスとメルカリでの構想 - Mercari Engineering Blog
  • Custom Controller で Kubernetes の上の TLS 証明書を監視する | メルカリエンジニアリング

    こんにちは!Summer Internship 2018 にて Microservices Platform Team でインターンをしていた @everysick です*1。この記事ではインターン期間中に実装を行い、OSS として公開した Certificate Expiry Monitor Controller の紹介をします。 github.com 背景 有効期限監視の限界 TLS 証明書の運用では有効期限が来る前に TLS 証明書を更新をする必要があります。 これまでのメルカリでは mackerel.io の URL 外形監視機能に登録したエンドポイントの TLS 証明書を監視することで、有効期限が切れる前に通知をする運用を行っていました。 しかしながら、Microservices Platform 環境では日々新しいサービスが立ち上がっているため、従来の運用を適用するのであれば下

    Custom Controller で Kubernetes の上の TLS 証明書を監視する | メルカリエンジニアリング
  • WEB+DB PRESS Vol.100の特集記事は「メルカリ開発ノウハウ大公開」です! | メルカリエンジニアリング

    こんにちは。@daipresentsです。メルカリでは、QA-SETチーム(後述)のマネージャをぶりぶりしています。 8月24日に発売される『WEB+DB PRESS Vol.100』において、「1日100万出品のフリマアプリの舞台裏!メルカリ開発ノウハウ大公開」という記事を書かせていただきました。 執筆陣はメルカリの開発を支えるエンジニアたち。内容もタイトルの通り、メルカリでの開発ノウハウがぎっしりと詰まっています。 今日は宣伝も兼ねまして、ちょっぴりその内容をご紹介させていただきます。 第1章 グローバルで闘うメルカリの開発組織 メルカリのVP of Engineering @sotarokによる開発組織の解説です。 メルカリにはプロダクトの開発に関わるメンバーが所属するプロダクトチームという大きなチームがあります。そして、それぞれのメンバーは、プロジェクトチームに単位で小さなチームを

    WEB+DB PRESS Vol.100の特集記事は「メルカリ開発ノウハウ大公開」です! | メルカリエンジニアリング
  • メルカリチャンネルにおけるFirebaseの利用例 | メルカリエンジニアリング

    Mercari Advent Calendar 2017 の16日目は@sota1235がお届けします。 この記事では私のチームが開発しているメルカリチャンネルでFirebase Realtime Databaseを使うにあたり行っている工夫をご紹介します。 同じ文脈の話を今年のPHPカンファレンスでも発表したのですが、この記事ではその時お話できなかったもう少し細かい工夫を4つ紹介したいと思います。 Realtime Databaseへのリクエストを間引く Realtime Databaseは非常に高トラフィックな通信を捌くことができます。 とはいっても無尽蔵にデータ更新処理をしたり読取処理をできるわけでは当然ありません。 メルカリチャンネルでは以下のように多くの用途にRealtime Databaseを利用しています これらを全て素直にRealtime Databaseに書き込むとすぐに

    メルカリチャンネルにおけるFirebaseの利用例 | メルカリエンジニアリング
  • 主要データベースの増え続けるdisk容量の対応事例

    こんにちは、SRE の @masartzです。 今回は最近取り組んだ、メルカリの主要データベースの容量削減のお話をしようと思います。 TL;DR 主要データベースの容量を20%以上削減しました どういう状況だったか? 何をしたか? メルカリでは2017年11月現在、出品数は1日100万件を超えています。 なので、単純に日々多くのデータが増えていっています。 そのためデータベースのスケーリングは常に検討し、取り組まなければならない課題です。 今回扱ったデータベースはいくつかあるデータベースの中で商品テーブルを持つ、メルカリの主要データベースになります。 増え続けるデータに対応するための、テーブル分割を変則的な形で対応したのでその過程を紹介します。 前提:データベース分割方法 メルカリのデータベースには 会員情報や商品情報など、基要素となるデータから、通知やお知らせメッセージなど付加的な機能

    主要データベースの増え続けるdisk容量の対応事例
  • CREチーム始めました | メルカリエンジニアリング

    こんにちは!メルカリでサーバーサイドエンジニアをしている @bravewoodと申します。 このPostでは、最近できた「CREチーム」について紹介します。 CREとは CREはCustomer Reliability Engineering(顧客信頼性エンジニアリング)の略で、Googleが提唱した専門職です。 メルカリには従来CXI(Customer Experience Improvement:顧客体験改善)と呼ばれるチームがあり、このチームが、お客さまからのお問い合わせなどを通した顧客体験を改善するという業務を行ってきました。 新たにできたCREチームは、このCXIチームを内包し、「負の顧客体験の解消」という意味だけではなく、「顧客の信頼性向上」という部分にも着目した様々な活動を行う新たな専門チームとなります。 これは例えるなら、メルカリのSREチームがサイトの信頼性にフォーカスす

    CREチーム始めました | メルカリエンジニアリング
  • ImageFluxを利用した画像配信の最適化〜動的リサイズとWebP変換〜 | メルカリエンジニアリング

    SREチームの@cubicdaiyaです。今回はメルカリにおける画像配信とImageFluxを利用した画像の動的なリサイズとWebP変換の導入によってアプリのデータ通信量を大幅に削減した事例について紹介します。 ImageFluxはクラウド画像変換サービスです。URLに画像変換用のパラメータを組み込むことで画像データの拡大・縮小やオーバレイ、フォーマット変換等が実現できます。 メルカリにおける画像データ メルカリのアプリ上で発生するデータ通信の大部分はタイムラインや検索結果に表示される画像データが占めています。種類はいろいろありますが例えば、 商品画像 プロフィール画像 バナー画像 といったものが挙げられます。特に商品画像はデータ量がとにかく多く、毎日百万個単位で増加するほか、タイムラインや検索結果をはじめ、多くの機能で活用されています。 ImageFluxを利用した画像変換でデータの通信

    ImageFluxを利用した画像配信の最適化〜動的リサイズとWebP変換〜 | メルカリエンジニアリング
  • 社内の面倒な手作業はZapierにやらせようーーノンプログラマーでも業務自動化ができるツールを導入してみて

    社内の面倒な手作業はZapierにやらせようーーノンプログラマーでも業務自動化ができるツールを導入してみて QA Author: tadashi-nemoto0713 これは Mercari Advent Calendar 2017 22日目の記事です。 こんにちは、メルカリのQA-SETチームで自動化をぶりぶりしている tadashi0713 です。 前回は業務自動化の1つとして、Seleniumを使ったブラウザ操作自動化についてご紹介しました。 tech.mercari.com コメントや反応を見ますと、最近はRPA(Robotic Process Automation)をはじめとした業務自動化に関心が高い印象を受けました。 メルカリでは1ヶ月ほど前にZapierというツールをTeam Planで導入しました。 zapier.com このツールを使って、社員がより簡単に業務自動化ができ

    社内の面倒な手作業はZapierにやらせようーーノンプログラマーでも業務自動化ができるツールを導入してみて
  • メルカリの分析チームとは?その全ての疑問にひとつひとつ答えます | メルカリエンジニアリング

    この記事はMercari Advent Calendar 6日目の記事です。 メルカリのBIチームのアナリスト/マネジャーの @hikaru が、メルカリの分析チームの事情についてお送りします。 ※ BIチーム…メルカリ内の分析を一手に担うチーム。Business Intelligenceチーム。 この記事について イベントやカジュアル面談などでメルカリの分析チームの内幕についてよく聞かれる質問があります。 いえ、それどころか場合によっては社内であまり一緒に仕事する機会がない方々からも、チームに関して質問されることがあります。 ※ カジュアル面談…メルカリでは、社内のポジションに興味ある方にオフィスに来ていただいて1on1でざっくばらんに話す会を頻繁に行っています。 正直、分析チームというのは外部から何をやっているか見えづらい面もあるため、理解できます。 よく頂く質問としては、 組織的なこ

    メルカリの分析チームとは?その全ての疑問にひとつひとつ答えます | メルカリエンジニアリング
  • 技術書を作るための技術スタック | メルカリエンジニアリング

    Mercari Advent Calendar 2017の3日目はmhidakaがお送りします。 Advent Calendarで空いてるところに収まったら12月3日は日曜日ということで、エンジニア趣味的な話です。 筆者は技術的なブログや書籍を書くかたわら、技術書のためのイベントなどを開いてます。 技術を追求すること、プログラミング、まとめることが好きでモバイル分野で継続的に書籍を出版しています。 内容はおおむね同人誌作りへ適用している技術の話です。 書籍の作り方は出版社によっても違いますが、紹介する内容と同様の作り方をしている商業書籍もたくさんあります。 ここでは著者の目線から出版業界のテクノロジーをのぞいてみましょう。 作る楽しみと読者の視点 著者がを書く動機は人それぞれですが技術を広めたい、たくさん売れたい、自分の知識をまとめたいなど目的を持って書き始めます。 また一方で書籍の目

    技術書を作るための技術スタック | メルカリエンジニアリング
  • PHPカンファレンス2017のスポンサーブースに出展しました | メルカリエンジニアリング

    こんにちは!メルカリでサーバーサイドエンジニアをしている @bravewood と申します。 メルカリでは2017年10月7日に行われた PHPカンファレンスにおいて、ゴールドスポンサーをさせていただきました。当日はスポンサーブースに出展を行い、そこで、缶バッジやシールなどのノベルティーをお配りするとともに、訪問された方々といろいろお話をさせていただきました。記事では、その際にお伺いした質問と回答をまとめさせていただきました。 組織・開発に関すること メンター・メンティーの割り当てはどうなっていますか? 新卒など技術的なキャッチアップが必要な人には、技術力の高い人を割り当てたりとかするのですか? 現状は明確にメンターは固定されておらず、入社される方に対してタスクやチームがまず決まり、その後チーム内で空いている人や教えるのが上手そうな人がメンターに任命され、通常1ヶ月間つきます。 さらに、

    PHPカンファレンス2017のスポンサーブースに出展しました | メルカリエンジニアリング
    Mint0A0yama
    Mint0A0yama 2017/10/13
    "DietCakeとDietcubeをメインで使っています" "メルカリ本体のAPIについては(リプレイスは)やったことはありません" "社内のカスタマーサポートツールはフレームワークをDietCakeからDietcubeへリプレイスした経緯があります"
  • Markdown Night 2017 Summer という勉強会が開かれました | メルカリエンジニアリング

    connpass.com @magnolia_k_さん主催による、Markdown Night 2017 Summer という勉強会が開かれ、今回メルカリはその第1回目の会場提供をさせていただきました 1。 イベントページ公開後から結構な反響を頂いており、期待をしていたのですが、実際に開催してみても Markdown に対する熱い思いを持った方たちが集まり、それぞれの思いをトークにして盛り上がりました。なお、今回は esa や Kibela、Qiita といった各種 Markdown を使ったサービスを作っている知見を持った方たちの参加もあり、とても大盛況でした。 当日の様子は Twitter ハッシュタグから追うことができます → #markdownnight では、以下タイムテーブルとその発表です。 Markdownはなぜ拡張され続けるのか @__gfx__ さん blog.bitjo

    Markdown Night 2017 Summer という勉強会が開かれました | メルカリエンジニアリング