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

  • 僕たちはどうマイクロサービスのログを収集するのか | メルカリエンジニアリング

    Mercari Advent Calendar 2018 の14日目はメルペイ DataPlatform チームの @syu_cream がお送りします。 記事では表題の通り、メルカリとメルペイにおける、マイクロサービスのログ収集に関する課題と取り組みについて記載します。 メルカリとメルペイでは、現在クライアントアプリやサーバサイドのログを効率的に収集してサービスの他機能で活用するための基盤の開発を共同で行っています。 メルカリ・メルペイ間では、一部提供するサービスの差異やデータ管理のポリシーの都合によりインフラ構成が異なる部分はありますが、少なくとも思想や設計、実装は共有しています。 これの具体的な内容については、今回の Advent Calendar の 3 日目の記事に掲載しています。 記事では、サービスを提供するサーバサイドアプリケーションから、この構成図における “A Ser

    僕たちはどうマイクロサービスのログを収集するのか | メルカリエンジニアリング
    a-know
    a-know 2018/12/15
  • GCPでStreamなデータパイプライン始めました - Mercari Engineering Blog

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

    GCPでStreamなデータパイプライン始めました - Mercari Engineering Blog
    a-know
    a-know 2018/12/04
  • マイクロサービスチーム編成のベストプラクティスとメルカリでの構想 - Mercari Engineering Blog

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

    マイクロサービスチーム編成のベストプラクティスとメルカリでの構想 - Mercari Engineering Blog
    a-know
    a-know 2018/12/01
  • Backend Team Offsite 〜負債解消day〜 を実施しました | メルカリエンジニアリング

    こんにちは!メルカリでBackendのエンジニアリングマネージャをしている @bravewoodです。 今日はBackendチームのオフサイトをご紹介します。 サービス開発の課題 メルカリは2013年7月にサービスを開始して以来、5年以上の月日が経過しています。 メルカリのAPI単位で見ると、開発はサービス開始より約3ヶ月前の2013年4月に始まっていることがGitリポジトリへのコミットで確認できます。 $ git log --reverse <省略> Date: Sat Apr 6 16:46:32 2013 +0900 現在でもこのリポジトリはメルカリのAPIとして現役で開発が行われており、5年5ヶ月にも渡る開発結果が凝縮された巨大なリポジトリとなっています。 このリポジトリがメルカリというサービスを支え、ここまで成長させてきたことは疑いの無い事実です。しかしここまでに急速なサービス拡

    Backend Team Offsite 〜負債解消day〜 を実施しました | メルカリエンジニアリング
    a-know
    a-know 2018/09/07
  • プロダクトのリリース前から新ダッシュボード「Looker」の導入に踏み切ったわけ | メルカリエンジニアリング

    こんにちは。メルペイのデータアナリストチームです。 メルペイはプロダクトの開発フェーズにあり、リリースに向けて全社で頑張っています。 「プロダクトがないのに、データ分析?」と思う方もいらっしゃるはずなので、メルペイのデータアナリストの業務と、力を入れているダッシュボードツール「Looker」の活用について紹介させて頂きます。 Lookerの公式ページはこちら プロダクトがないフェーズでの仕事 Lookerの話をする前に、まずは私達の状況を簡単に説明します。 分析チームを抱える企業は沢山ありますが、「プロダクトができる前から活動しているケース」は少ないと思います。 そういった意味では、私達のチームは他の会社と比べてユニークなポジションになっています。 一言で言えば「事業を作るための分析」を行っています。 メルペイの事業が成り立つには「良いプロダクト」を作り、「ステークホルダーとの関係」を築き

    プロダクトのリリース前から新ダッシュボード「Looker」の導入に踏み切ったわけ | メルカリエンジニアリング
    a-know
    a-know 2018/08/26
    気になる
  • mercari.go #1 を開催しました | メルカリエンジニアリング

    はじめに こんにちは、mercari.go オーガナイザーの@morikuniです。 7月3日にメルカリ主催のGo勉強会 mercari.go #1 を開催しました。 最終的に300を超える応募をいただき、多くの方に関心をもっていただけたことを大変嬉しく思っています。 残念ながら全ての方に参加いただくことはできなかったので、この記事で当日の発表の様子などをお伝えします! API GatewayによるMicroservices化 1つめのセッションは @deeeet による「API GatewayによるMicroservices化」です。 API Gatewayがどのような思想で作られ、Microservices化を進めるにあたってどのように使われているのかを紹介しました。 スライドはこちらから https://go-talks.appspot.com/github.com/tcnksm/t

    mercari.go #1 を開催しました | メルカリエンジニアリング
    a-know
    a-know 2018/07/10
    “懇親会ではGルールというルールを取り入れてみました”
  • CREチーム始めました | メルカリエンジニアリング

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

    CREチーム始めました | メルカリエンジニアリング
    a-know
    a-know 2018/02/27
    うおおおっ!
  • pvpool〜メルカリの商品閲覧数カウントアップの裏側〜 | メルカリエンジニアリング

    メルカリでは出品されている商品の閲覧数を「出品した商品」の一覧や「いいね!した商品」の一覧画面から見ることができます。以下は「いいね!した商品」の一覧画面です。(開発版アプリの画面になります) 赤い枠で囲まれている部分がそれぞれの商品の閲覧数になります。今回紹介する閲覧数のカウントアップのバックエンドはGoで開発されています。 データベース上の商品閲覧数のカウントアップ メルカリでは日々大量のリクエストを処理していますが、そういった中でもデータベースへのアクセスはINSERTやUPDATE等の書き込み処理よりもSELECTによる読み込み処理が圧倒的多数を占めます。(メルカリでは、データベースには主にMySQLを利用していますが、サービスやリージョンによってはGCPが提供しているCloud DatastoreやCloud Spannerを利用している箇所もあります) 商品が閲覧される時に実行

    pvpool〜メルカリの商品閲覧数カウントアップの裏側〜 | メルカリエンジニアリング
    a-know
    a-know 2018/02/26
  • 技術コミュニティを支援する「Mercari Tech Sponsorship Program」 | メルカリエンジニアリング

    Mercari Advent Calendar 2017 24日目の記事です。 こんにちは!組織開発とエンジニア*1採用に責任を持つEOT(Engineering Operations Team)の @jollyjoesterです。 今日はメルカリの技術コミュニティへの支援のあり方と、今後より支援を強化していくための制度「Mercari Tech Sponsorship Program」についてお話をしようと思います。 メルカリの技術コミュニティへの支援 メルカリは技術コミュニティへの支援を積極的に行っています。 というのも近年のテクノロジーはOSS等のオープンな技術に支えられており、メルカリも例外ではないからです。 オープンな技術の多くは世の中の多くのエンジニアが集まった「技術コミュニティ」によって作られ、日々メンテンナンスされたり、改善されています。そのため、技術コミュニティが活性化す

    技術コミュニティを支援する「Mercari Tech Sponsorship Program」 | メルカリエンジニアリング
    a-know
    a-know 2017/12/25
    素晴らしい…!
  • 社内の面倒な手作業は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にやらせようーーノンプログラマーでも業務自動化ができるツールを導入してみて
    a-know
    a-know 2017/12/22
  • 技術書を作るための技術スタック | メルカリエンジニアリング

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

    技術書を作るための技術スタック | メルカリエンジニアリング
    a-know
    a-know 2017/12/03
  • 第1回 Mercari Tech Conf を開催しました | メルカリエンジニアリング

    tech.mercari.com 先日からお伝えしていた通り、9/30 (土) にベルサール六木にて第1回 Mercari Tech Conf 2017 が開催されました。 テーマに Next を掲げ、過去から現在にいたるまでに実現してきたこと、そしてこれから実現する未来について発表しました。 togetter.com それでは、簡単に各発表を振り返っていきます。 基調講演 鶴岡 達也 (Head of Engineering, Souzoh) / 柄沢 聡太郎 (VP of Engineering) / 名村 卓 (CTO) 3名による基調講演でした。 メルカリ初期の話 – 鶴岡 この頃はとにかく素早くものを作る必要があった シンプルな LAMP 構成を採用した。LAMP なのは初期のエンジニアが一番触りやすい構成、言語だから。人のスケールをさせやすいから インフラはハイエンドな1つの

    第1回 Mercari Tech Conf を開催しました | メルカリエンジニアリング
    a-know
    a-know 2017/10/05
  • 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の特集記事は「メルカリ開発ノウハウ大公開」です! | メルカリエンジニアリング
    a-know
    a-know 2017/08/24
    盛りだくさんだ
  • 「hbstudy#75 SRE大全:メルカリ編」で登壇しました | メルカリエンジニアリング

    こんにちは。SREの @kazeburo です。8月17日に株式会社ハートビーツ様が主催する「hbstudy#75」において、メルカリSREの取り組みについての発表をしてきましたので、資料を公開します。 hbstudyでは、SRE大全というテーマで、#74において先日発売となりました「SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム」の翻訳者の発表があり、また#76にてXFLAG スタジオのSREによる発表が予定されています。 発表内容 トークの時間が2時間ありましたので、前半、後半にわけて資料を作成しました。内容も多く盛り込んでおります。 メルカリがSREを採用した理由 メルカリSREチームの紹介 OnCall/運用当番について 先日のCDN変更での個人情報漏洩について PHPアプリケーションの最適化 セキュリティの取り組み(パスワード

    「hbstudy#75 SRE大全:メルカリ編」で登壇しました | メルカリエンジニアリング
    a-know
    a-know 2017/08/21
  • 「技術をアウトプットするところに技術は集まる」ソウゾウ エキスパートチームの役割 | メルカリエンジニアリング

    ソウゾウのエキスパートチーム所属の@mhidakaです。今回はソウゾウのエキスパートチームが、どんな活動をしているのか紹介します。 エキスパートチームについて ソウゾウでは「技術アウトプットするところに技術は集まる」という思いから、 稼働の50%以上を技術コミュニティへの貢献や技術の普及に取り組むエキスパートチームが存在します。 私以外に@tenntennが居て、ふたりのミッションにはコミュニティへの貢献も含まれています。 現在、チームは二人で構成されており、メンバーごとに担当する技術分野が違います。 Go/GCPであればGo Conferenceやgolang.tokyoなどを運営している@tenntenn、 AndroidであればDroidKaigiや技術書典などを運営する@mhidakaという役割分担をしています。 エキスパートチームは次のような目的を持って活動をしています。 社内

    「技術をアウトプットするところに技術は集まる」ソウゾウ エキスパートチームの役割 | メルカリエンジニアリング
    a-know
    a-know 2017/08/18
    良い
  • 社内勉強会「エキスパートGo」を開きました #golang | メルカリエンジニアリング

    こんにちは。 ソウゾウのエキスパートチーム所属の@tenntennです。 7月9日に3時間半かけてみっちりと「エキスパートGo」という社内勉強会を開催しましたので、今回はそのレポートを書きます。 また良い機会ですので、私が所属するエキスパートチームについても少し触れようと思います。 なお、当日の発表資料はSlide Shareに公開しておりますので、ぜひご覧下さい。 www.slideshare.net エキスパートチームについて ソウゾウでは「技術アウトプットするところに技術は集まる」という思いから、稼働の50%以上を技術コミュニティへの貢献や担当する技術の普及に取り組むエキスパートチームが存在します。 メンバーはGo Conferenceやgolang.tokyoなどを運営している私@tenntenn(Go/GCP担当)とDroidKaigiや技術書典などを運営する@mhidaka(

    社内勉強会「エキスパートGo」を開きました #golang | メルカリエンジニアリング
    a-know
    a-know 2017/07/13
  • CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして - Mercari Engineering Blog

    日コーポレートサイトでお知らせした通り、Web版のメルカリにおいて一部のお客さまの個人情報が他者から閲覧できる状態になっていたことが判明しました。原因はすでに判明して修正が完了しております。また、個人情報を閲覧された可能性のあるお客さまには、メルカリ事務局より、メルカリ内の個別メッセージにてご連絡させていただきました。 お客さまの大切な個人情報をお預かりしているにも関わらず、このような事態に至り、深くお詫びを申し上げます。 エントリでは技術的観点から詳細をお伝えさせていただきます。 2017年6月27日 CDNのキャッシュの動作について、CDNプロバイダと仕様について確認し検証を行いました。その結果一部記述に実際と異なる箇所があり、加筆修正いたしました。 概要 メルカリWeb版のコンテンツキャッシュをしているCDNのプロバイダ切り替えを行いました。 その際来キャッシュされるべきでない

    CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして - Mercari Engineering Blog
    a-know
    a-know 2017/06/23
    素晴らしい
  • 「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話 | メルカリエンジニアリング

    はじめましてこんにちは。SREの@masartzです。 私は最近joinしたのですが、今回は番環境に古くからあるテーブルの掃除作業をした案件をご紹介します。 tl;dr; 番の住所情報テーブルを消したけど問題なかった話 絶対要らないハズだけど、なかなか削除できずにいるもの を対処する話 番環境の住所情報テーブルをdropするまでの作業 今回、番環境の住所情報テーブルをdropしました。 と言っても、事故でもうっかりでもなく、既に使われていなかったものの整理という作業でした。 何故使われていなかったかというのは、メルカリの住所情報の保持の仕方の変遷が関係しています。 初期にはuser情報と住所情報は1対1の関係でした。イメージとしては以下です。 CREATE TABLE IF NOT EXISTS users ( id INT UNSIGNED NOT NULL, name VARC

    「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話 | メルカリエンジニアリング
    a-know
    a-know 2017/05/26
  • 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形式のデータをサクサクパースしよう | メルカリエンジニアリング
    a-know
    a-know 2017/05/09
    だいたい BigQuery に入れちゃってるからそこで見ちゃうのだけど、これはこれで便利そう
  • 未来のCSSを先取るHoudiniとは?それは魔法である!

    こんにちわ、メルカリアッテでFront-end Developerをしている@t32kです。 メルカリではセミナー参加補助制度があり、それを利用して海外カンファレンスに参加してきました。今回は11/30 ~ 12/01、オーストラリア・メルボルンで開催されたCSS/JSConf Australia 2016に行ってきたので、そのレポートを書きたいと思います。 今回はその中でも、CSSConfでのBarak Chamo氏が講演した内容が非常に興味深かったので紹介します。 Hey presto, CSS! 今日はお話する内容は魔法についてです。どのように自分が定義したCSSをブラウザ上で利用可能にするのかという魔法です。 その前に、魔法ではないこれまでのCSSについて振り返ってみましょう。日には『珍道具』と呼ばれるものがあります。とても素晴らしい技術ですが、ちょっとオーバーエンジニアリングに

    未来のCSSを先取るHoudiniとは?それは魔法である!
    a-know
    a-know 2016/12/19