タグ

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

  • Item2vecを用いた商品レコメンド精度改善の試み | メルカリエンジニアリング

    こんにちは、メルカリのレコメンドチームで ML Engineer をしている ML_Bear です。 普段はメルカリのホーム画面などに表示されるレコメンドパーツの改善を担当しています。今回はメルカリの莫大なユーザーログデータと、出品された商品に付与されているメタデータ(詳細後述)を活用したレコメンドロジック改善事例をご紹介します。 商品メタデータについて メルカリではユーザーの商品検索体験を向上させるため、出品された商品に対して様々なメタデータを付与しています。ファッションアイテムだと色や生地感、家電だと型番といった、主として商品の属性をあらわす様々なデータをメタデータと呼称しています。 今回、私はやマンガに紐づいているメタデータ (以下、タイトルデータと記載) に着目しました。 メルカリアプリ内では、やマンガに商品が属するシリーズを表現するメタデータが付与されています。例えば「キング

    Item2vecを用いた商品レコメンド精度改善の試み | メルカリエンジニアリング
  • メルペイにおけるお客さま残高の管理手法 | メルカリエンジニアリング

    はじめに この記事はMERPAY TECH OPENNESS MONTHの19日目の記事です。 こんにちは。株式会社メルペイのPayment Platformチームでエンジニアをしている knsh14 です。 メルペイの様々な決済手段でどのように決済の整合性を保とうとしているかは15日目の記事で紹介しました。 メルペイでは決済の手段をもつマイクロサービス(Payment Service)と決済のための原資を管理するマイクロサービス(Balance Service)を分けています。 今回はこのお客さまの残高を正しく管理するためのマイクロサービスがいかにして正確に増減をしているかを説明します。 Balance Service の提供する機能 Balance Service ではお客さまの残高を増減させるという機能を提供しています。 決済のフローや他のマイクロサービスとの整合性の管理などは上位レ

    メルペイにおけるお客さま残高の管理手法 | メルカリエンジニアリング
  • マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの15日目の記事です。 こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。 メルペイではマイクロサービスのアーキテクチャで決済システムを開発しています。その中でPaymentServiceは決済トランザクション管理の基盤サービスとして、下位層のサービス(外部サービスも含め)が提供する各種決済手段を利用して、上位層のサービス(メルカリ、NFC,コード払いなど)に必要な決済フローを共通APIとして提供しています。PaymentServiceが提供する決済処理に複数のサービスを跨いでお金の動きを正確に管理する必要があるので、作り始めた頃から決済トランザクション管理を最も重要な課題として、サービスを跨いでもデータの整合性が取れる仕組みを作ってき

    マイクロサービスにおける決済トランザクション管理 | メルカリエンジニアリング
  • SeleniumConf Chicagoに参加してきました - Mercari Engineering Blog

    こんにちは。メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)でQAエンジニアとしてテスト自動化をぶりぶりしている @arminmin です。 先日、シカゴにて開催された SeleniumConf Chicago に参加してきましたので、その様子をレポートします。 SeleniumConfについて SeleniumConf は Selenium や、その関連技術に関するカンファレンスです。 Selenium や Appium などを使ってテスト自動化を推進または検討している人々が集まって最新の動向を共有します。 今年は約600人が参加しました。 また2019年4月には東京にて SeleniumConf が開催されることが決定しています。 なぜ SeleniumConf にいったのか メルカリの AQA では Android アプリケーションのテスト

    SeleniumConf Chicagoに参加してきました - Mercari Engineering Blog
  • DockerとMakeを利用したRPMパッケージのビルド環境 | メルカリエンジニアリング

    SREチームの@cubicdaiyaです。今回はDockerとMakeを利用したメルカリの自作RPMパッケージのビルド環境について紹介します。 メルカリの自作RPMパッケージ事情とVagrant、そしてDocker メルカリの開発およびプロダクション環境では現在CentOS6と7を利用しており、随時CentOS7へ移行中です。そのため、自作RPMパッケージをビルドする際はCentOS6と7向けにそれぞれビルドしています。ビルドしたパッケージはyumリポジトリサーバにアップロードした後、必要に応じてyumでインストール、Ansibleのplaybook化を行います。 RPMパッケージの作成はSREチームのメンバーが行っており、各自のローカルマシン上において make {パッケージ名} を実行するだけでCentOS6と7向けのRPMパッケージをビルドできる環境をDockerで構築しています。

    DockerとMakeを利用したRPMパッケージのビルド環境 | メルカリエンジニアリング
    kaz_hiramatsu
    kaz_hiramatsu 2016/08/16
    え、RPM?
  • Gitのつくりかた | メルカリエンジニアリング

    はじめまして。サーバサイドエンジニアの @DQNEO です。 今日はGitのつくりかたをご紹介します。 C言語学習教材としてのGit Gitと同じものをゼロから作って何の意味があるのか?と思いますよね。 私がこの再発明をやり始めた動機は「C言語を書けるようになりたい」でした。 実際に途中までやってみたところ、 C言語がチョットデキるようになった Gitの内部構造に詳しくなった というメリットが得られました。 C言語を勉強する題材は、テトリスとかWebサーバとか他にいくらでもあるのですが、Gitを実装してみるのはかなりおすすめです。理由は下記の通りです。 内部構造が意外と単純 (ローカルで動かす分には)ネットワークの知識が不要 普段使っているツールで外部仕様がわかっているので、やるべきことが明確 余談ですが、家Gitのソースコードを参考にしようと思って読んでいたら、Linus Tovals

    Gitのつくりかた | メルカリエンジニアリング
  • WEB+DB PRESS Vol.88 にメルカリのデータベース設計の記事を書きました | メルカリエンジニアリング

    2015年8月22日発売のWEB+DB PRESS Vol.88 にメルカリのデータベース設計、運用に関する特集記事をインフラチームの@cubicdaiya、@siroken3、@kazeburoの3人で書かせて頂きました。 gihyo.jp 特集のタイトルは「実戦データベース設計 サービスの急拡大に耐えるスケール戦術」です。メルカリでは、これまでサービスの急激な成長に伴い、何度もデータベースのスケールアップ・スケールアウトを行ったり、NoSQLの導入をして増え続ける負荷とデータに対応してきました。 この特集では、まず、これまでの大規模なWebサービスが直面したデータベースのスケーラビリティの問題とその対応方法を4つの期に分けて紹介します。続く2章、3章ではメルカリでのテーブル設計の工夫や、実際の運用で起きていたデータ領域の不足問題にどのように対処していったのか説明します。4章では視点を変

    WEB+DB PRESS Vol.88 にメルカリのデータベース設計の記事を書きました | メルカリエンジニアリング
  • YAPC::Asia Tokyo 2015 で会いましょう!! | メルカリエンジニアリング

    こんにちは! メルカリでインフラを担当しております @kazeburo です。 YAPC::Asia Tokyo 2015 の開催まで1週間とちょっととなりました。メルカリからは私も含め2名が登壇しますので、このエントリーでセッションの紹介をさせてください。 実践nginxモジュール開発〜CとLua〜 by @cubicdaiya nginxはOSSのHTTPサーバで、その高いパフォーマンスから大規模なWebサービスほどnginxの利用している割合が大きくなっています。メルカリではリバースプロキシやロードバランサとして多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現する重要な役割を果たしています。 このセッションではnginxの機能を拡張するモジュールの開発ノウハウを、発表者がこれまで開発またはコントリビュートしてきたngx_small_light、ngx_dynami

    YAPC::Asia Tokyo 2015 で会いましょう!! | メルカリエンジニアリング
  • nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング

    原稿の締め切りを越えた先にあるもの、それは校正です。「俺達の戦いはこれからだ!」的な展開に胸が熱く・・・いえ、ちょっと胃のあたりがチクチクする@cubicdaiyaです。 今回はメルカリのプッシュ通知システムとその変遷について紹介します。 メルカリとプッシュ通知 メルカリではアプリ内でのさまざまなイベントの発生時に対象ユーザに対してプッシュ通知を行うようになっています。アプリ内で発生するイベントというのは例えば、 商品の購入 購入した商品の発送 商品に対するいいね!、コメント といったものです。通常アプリ内でイベントが発生した際はAPIサーバにHTTPSリクエストを発行し、MySQLデータベースへの参照・更新が行われた後ユーザにレスポンスを返します。そして必要であればプッシュ通知を行います。 メルカリのプッシュ通知システムの課題と変遷 メルカリのプッシュ通知システムはこの1年間で2度刷新さ

    nginxとGoでつくるメルカリのプッシュ通知システム | メルカリエンジニアリング
  • メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング

    はじめまして。1エントリ目を書くことになった id:sotarok です。光栄です。 メルカリは、2013年7月にリリースされて現在急成長中のフリマアプリで、今週2周年を迎えます。 ダウンロード数1500万ということで多くのユーザーに利用していただいていて、サービスとしても会社としても大きくなる中で、日々多くの技術的課題への挑戦が行われています。 そうした内容を、今日からこの “Mercari Engineering Blog” で、あれやこれや発信していきたいと思っています。 さて、1発目のご挨拶エントリーということで特段大きなネタは用意していないのですが、、 これまでのメルカリではエンジニアブログをやっていなかったため、技術的なアウトプットは各人がそれぞれやっていました。そこで、ここ2年のメルカリエンジニアメンバーによる技術的なアウトプットをまとめてみました! インフラからクライアント

    メルカリの「エンジニアブログ」はじめました | メルカリエンジニアリング
  • 1