タグ

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

  • Webサービス上の画像変換とWebPの利用について | メルカリエンジニアリング

    Mercari Advent Calendar 2020の14日目は、Developer Productivity EngineeringのNetworkチーム所属の@catatsuyがお送りします。 今回のエントリーでは画像変換とGoogle社が開発した画像フォーマットであるWebPに関して紹介します。 適切なサムネイル画像のサイズと画質 現在ではiPhoneのRetinaディスプレイのように、実際に画面に表示されるサイズよりも大きなサイズの画像を要求する端末が一般的になりました。 現在のスマートフォンでは画面に表示されるサイズの2倍以上のサイズ(端末によっては3倍に対応しているものもある)の画像を用意しなければ綺麗に表示されません。サムネイル画像の綺麗さはUXに直結しますし、サービスによっては画像の綺麗さがクリック率や売り上げに貢献するケースもあるでしょう。 しかし大きなサイズの画像を

    Webサービス上の画像変換とWebPの利用について | メルカリエンジニアリング
    kazeburo
    kazeburo 2020/12/14
  • 物理サーバのセットアップをon-the-fly ISO patchingで自動化した話 | メルカリエンジニアリング

    メルカリSREの@kazです。 今日は、メルカリの所有する物理サーバのセットアップと設定配布の自動化をどのように実現したかをお話します。 メルカリのデータセンタ 題に入る前に、メルカリが現在構築している自社データセンタ(東京DC)についてご紹介します。 メルカリでは現在、基幹システムのMicroservice化を進めています。各Microservicesの開発においては、そのサービスの特性などを鑑みて、チームの裁量で柔軟にインフラを選択することが可能です。その結果として、メルカリはさくらインターネット、GCPAWSなど複数のクラウドにまたがって運用される状況となりました。 こうした中、SREチームが問題視したのは「各クラウドデータセンタ間の物理的距離」です。メルカリでは、コストダウン・低災害リスクの観点から、主にさくらインターネットの石狩リージョンを利用しています。一方で、GCPやAW

    物理サーバのセットアップをon-the-fly ISO patchingで自動化した話 | メルカリエンジニアリング
    kazeburo
    kazeburo 2020/09/01
    ISOをその場で書き換えるのは思いつかなかった。超絶で素敵
  • Google Kubernetes Engine上のGoアプリケーションでのHTTPリクエストを行う方法 | メルカリエンジニアリング

    この記事はMERPAY TECH OPENNESS MONTHの最後の記事です。 こんにちは、メルペイのバックエンドエンジニアの@gia.nguyenです。 私は第3回のGopher道場を卒業してから2018年12月に入社しました。 他の記事にも記載されましたが、メルペイのバックエンドは、Google Kubernetes Engine(以下、GKE)を使用して、マイクロサービスアーキテクチャを採用した多数のマイクロサービスから構成されています。マイクロサービスは主にGo言語を使って、開発しています。マイクロサービス間のコミュニケーションはgRPCでやり取りしていますが、外部サービスに対してはほとんどHTTPで通信を行っています。記事はGKE上のGoアプリケーションでHTTPリクエストを投げる際、いくつか工夫した点を紹介したいと思います。 TL;DR httptraceはデバッグに役立つ

    Google Kubernetes Engine上のGoアプリケーションでのHTTPリクエストを行う方法 | メルカリエンジニアリング
    kazeburo
    kazeburo 2019/06/14
  • 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とメルカリ | メルカリエンジニアリング
    kazeburo
    kazeburo 2018/12/10
    好きな設定項目は採用されてなかった
  • Gitのつくりかた Mercari Engineering Blog

    Open Organization とは、組織の様々な情報を公開し、 参照・利用を行い知見を共有することで、 世の中の組織がより良い方向へ向かうことを目指していく活動です。

    Gitのつくりかた Mercari Engineering Blog
    kazeburo
    kazeburo 2018/06/29
  • pvpool〜メルカリの商品閲覧数カウントアップの裏側〜 | メルカリエンジニアリング

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

    pvpool〜メルカリの商品閲覧数カウントアップの裏側〜 | メルカリエンジニアリング
    kazeburo
    kazeburo 2018/02/26
    “様々な裏側の仕組みをGoで開発しており、そのためのソフトウェアエンジニアを募集しています。興味がある方は是非ご連絡下さい” 何卒 m(_ _)m
  • ImageFluxを利用した画像配信の最適化〜動的リサイズとWebP変換〜 | メルカリエンジニアリング

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

    ImageFluxを利用した画像配信の最適化〜動的リサイズとWebP変換〜 | メルカリエンジニアリング
    kazeburo
    kazeburo 2018/01/30
  • 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の特集記事は「メルカリ開発ノウハウ大公開」です! | メルカリエンジニアリング
    kazeburo
    kazeburo 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大全:メルカリ編」で登壇しました | メルカリエンジニアリング
    kazeburo
    kazeburo 2017/08/21
    書きました!
  • 竹迫 良範氏がメルカリの技術顧問に就任 セキュリティ分野の体制強化 | メルカリエンジニアリング

    こんにちは、エンジニアの cocoiti です。 竹迫 良範氏が8月1日付けでメルカリの技術顧問として就任したことをお知らせいたします。氏には、主にセキュリティ分野の体制強化にご尽力いただきます。 これまでもメルカリではセキュリティの取り組みとして、内部のエンジニアによる調査検証体制や、外部会社の調査を行っていました。今回、急成長するサービスや社員数増加に対応するため、セキュリティ分野の内製エンジニアの採用強化や、社内のエンジニアの体系的なセキュリティスキルの向上など、非連続的な成長が急務と考え、セキュリティ及び技術マネージメントに造詣の深い竹迫氏を技術顧問としてお迎えすることとなりました。 竹迫氏は現在、ゼクシィやスタディサプリなどを運営する株式会社リクルートマーケティングパートナーズにおいて内製開発エンジニア組織の体制強化と人材育成でご活躍されています。また対外活動として長年セキュリテ

    竹迫 良範氏がメルカリの技術顧問に就任 セキュリティ分野の体制強化 | メルカリエンジニアリング
    kazeburo
    kazeburo 2017/08/15
    "><b>よろしくお願いします!!1
  • 【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介 | メルカリエンジニアリング

    こんにちは。SREの @kazeburo です。2017年5月31日から6月2日にAWS Summit Tokyo 2017と同時に開催された「AWS Dev Day Tokyo 2017」に登壇しました。 登壇する機会をいただき、また数あるセッションの中から会場に足を運んでいただいた皆様、ありがとうございました。 発表内容 「Cloud connect the world as Glue」というタイトルにて、メルカリのインフラストラクチャの概要および変遷、そして現在のAWSをはじめとするクラウドの利用について紹介しました。 資料はこちらになります。 chocon について スライド中で触れた chocon について少し紹介したいと思います。 choconはクラウドのRegionあるいはデータセンター外との通信を効率良く行うためのミドルウェアになります。HTTPS、HTTP/2の通信をKe

    【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介 | メルカリエンジニアリング
    kazeburo
    kazeburo 2017/06/05
    エンジニアblog書いてました
  • 「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話 | メルカリエンジニアリング

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

    「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話 | メルカリエンジニアリング
    kazeburo
    kazeburo 2017/05/26
    良い話
  • プログラマーの三大美徳 その2

    みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が http://www.perl.com/pub/1998/08/show/onion.html で述べたのが最初とされています。 三大美徳として 怠惰(laziness) 短気(impatience) 傲慢(hubris) があげられています。 怠惰(laziness)については、以前にこちらの記事でお話しました。 tech.mercari.com 今回は 短気(impatience) についてです。 短気(impatience) 優秀なプログラマーが持っている怠惰という美徳は素晴らしいのですが、その反面というか怠惰さゆえに腰が重いときがあります。 そこで短気な面をうまく刺激することでプロジェクトを円滑に進めることが可能です。 メルカリでの例 みなさんもCIにてテストを動か

    プログラマーの三大美徳 その2
    kazeburo
    kazeburo 2017/03/30
    その2!!1
  • GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング

    サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web framework for the Go language 公式の説明にあるように、Revel は高機能でフルスタックな Web フレームワークです。 複雑なルーティングや、パラメータのパーシング、テンプレート機能など、Web アプリケーションを作ろうとなったときに必要な手段はたいてい兼ね揃えているようです。公式ドキュメントに詳しく書かれています。 Revel 以外にも Go 製の Web フレームワークは多数あり、有名どころだと以下のようなものが挙げられ

    GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/12/19
    最高便利になりました
  • 監視だけじゃない!デプロイにMackerelを使う話 | メルカリエンジニアリング

    SREチームの @siroken3 です。 以前、メルカリでリリース手段としてChatOpsを採用していることをブログで紹介しました。今回は内部で使っている技術の一部を紹介したいと思います。 tech.mercari.com tl;dr メルカリではデプロイにAnsible使ってる 毎日デプロイしつつサーバが増加/入れ替え激しいと心が削れる MackerelAPIとAnsibleを組み合わせたらハッピーになった Insideデプロイ メルカリではデプロイ用のサーバでSlack Botが働いており、デプロイの事前要件を満たしているか確認した後、大まかには以下の処理を実行しています。 GitHubからデプロイ対象ソースの取得 composer install / gulp などのビルド処理 対象サーバにrsyncでデプロイ これらの処理は構成管理ツールであるAnsibleを使用しています。

    監視だけじゃない!デプロイにMackerelを使う話 | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/11/14
    便利
  • メルカリのCRMツールをKaizenした話 | メルカリエンジニアリング

    こんにちは、こんばんは。 サーバーサイドエンジニア(社内ではAPIエンジニアとも呼称します)の@bravewoodと申します。一部の人からはウッディと呼ばれていて気に入っております。 キャリア初期にウノウラボに大変な憧れを抱いていた身としては、ウノウの流れをくむメルカリでこうしてBlogを書くことができ感動しきりです。 さて、日はCRMツールについてお話しします。技術的な話は少なめで、CRM周りの開発やPlanningについてざっくりとお話しします。 APIエンジニアとは まず、メルカリ社内においてAPIエンジニアとは、商品や取引などの各種データや機能を各クライアントから呼び出すための「API」を開発することを主としたエンジニアを指します。 クライアントにはiOSやAndroidのアプリとWeb、その他複数のサブシステムがあり、各担当のエンジニアと密に連携を取り、高速かつ安定したAPI

    メルカリのCRMツールをKaizenした話 | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/09/05
    Q4M + Parallel::Preforkというとあるクラスタにはおなじみのソフトウェアがメルカリでは動いています
  • WEB+DB PRESS Vol.94にてメルカリSREチームによる連載第3回が掲載されました | メルカリエンジニアリング

    SREチームの@siroken3です。WEB+DB PRESSの連載第3回が 日発売の Vol.94に掲載されました。 gihyo.jp 前回に引き続き @siroken3 が執筆いたしました。 今回はデータベースのバックアップと題して、メルカリの運用をベースにしてMySQLのバックアップについて執筆しました。バックアップの考え方から始まり、採用しているツールについて動作の仕組みも併せて詳細に解説させていただきました。またメルカリでのバックアップ事例に関しても紹介しています。 特にMySQLを使った大量のデータを扱うサービスにおいて、如何にシステムを稼働させつつ、データの整合性を担保してバックアップを実施するかについて力を入れて解説したつもりです。連載第3回もぜひご覧いただければ幸いです。

    WEB+DB PRESS Vol.94にてメルカリSREチームによる連載第3回が掲載されました | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/08/24
  • 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パッケージのビルド環境 | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/08/15
    “怠惰なshmorimo御大” www
  • プログラマーの三大美徳 | メルカリエンジニアリング

    みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が↓で述べたのが最初とされています。 http://www.perl.com/pub/1998/08/show/onion.html 三大美徳として 怠惰(laziness) 短気(impatience) 傲慢(hubris) があげられています。 今回はそのうち怠惰(laziness)についてお話します。 怠惰(laziness) 怠惰といえば怠け者。怠け者といえば怠け者メガネ。怠け者メガネを使えば誰でも簡単に美徳を手にいれることができます。 この怠け者メガネを使うと視線は前方に向けたまま下方を見ることができます。 来は寝転がってテレビを見るために開発されたようです。 この怠け者メガネを使ったプログラム開発について説明します。 レベル0 怠け者メガネを装着せずに作業します。

    プログラマーの三大美徳 | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/06/30
    視界の端にこれで本当に仕事している姿が映って困っています。笑が止まらなくて
  • WEB+DB PRESS Vol.93にてメルカリSREチームによる大規模インフラ運用の連載第2回が掲載されます | メルカリエンジニアリング

    SREチームの@siroken3です。以前ご案内したWEB+DB PRESSの連載第2回が2016年6月24日(金) 発売のVol.93 に掲載されます。 gihyo.jp 第2回目は @siroken3 が書かせていただきました。 今回の記事はデータベースのスケーリングと題して、Webサービスの拡大に伴ってデータが増え続ける中でも高いパフォーマンスを保ったまま安定して運用し、サービスの機能を改善し続けるための一般的な話題とメルカリでの具体例を解説することを念頭において執筆しました。 なぜスケーリングが必要なのか、その考え方についての解説から始まり、スケールアップとスケールアウトについてそれぞれメルカリでの具体的な事例を交えて留意点、スケーリングの判断材料となるモニタリングについて解説しています。少し毛色が変わったところとしてAmazon RDSをやめた時の具体的な手法についても書かせてい

    WEB+DB PRESS Vol.93にてメルカリSREチームによる大規模インフラ運用の連載第2回が掲載されます | メルカリエンジニアリング
    kazeburo
    kazeburo 2016/06/20
    連載2回目!