Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Markdown Night 2017 Summer という勉強会が開かれました

connpass.com

@magnolia_k_さん主催による、Markdown Night 2017 Summer という勉強会が開かれ、今回メルカリはその第1回目の会場提供をさせていただきました [^1]。

イベントページ公開後から結構な反響を頂いており、期待をしていたのですが、実際に開催してみても Markdown に対する熱い思いを持った方たちが集まり、それぞれの思いをトークにして盛り上がりました。なお、今回は esaKibelaQiita といった各種 Markdown を使ったサービスを作っている知見を持った方たちの参加もあり、とても大盛況でした。

当日の様子は Twitter ハッシュタグから追うことができます → #markdownnight

では、以下タイムテーブルとその発表です。

続きを読む

Knuth multiplicative hash が最小完全ハッシュ関数であることの証明

こんにちは!サーチチームの @metal_unk です。普段はサーバーサイドエンジニアとして、メルカリの検索を改善する仕事をしています。

メルカリには Be Professional Day という「普段できないことをやろう」をテーマとする日があり、その日は業務に直接関係のないことや、普段は手をつけられないリファクタリングなどがされます。Be Professional Day の様子はこちらで紹介されています。

tech.mercari.com

わたしは今回の Be Professional Day で、Knuth multiplicative hash が最小完全ハッシュであることを証明しました。このブログはその証明についての記事です。

「普段できないことをやろう」という Be Professional Day では、証明もアリです。

続きを読む

WEB+DB PRESS Vol.100の特集記事は「メルカリ開発ノウハウ大公開」です!

f:id:daipresents2:20170802110427j:plain:w400

こんにちは。@daipresentsです。メルカリでは、QA-SETチーム(後述)のマネージャをぶりぶりしています。

8月24日に発売される『WEB+DB PRESS Vol.100』において、「1日100万出品のフリマアプリの舞台裏!メルカリ開発ノウハウ大公開」という記事を書かせていただきました。

執筆陣はメルカリの開発を支えるエンジニアたち。内容もタイトルの通り、メルカリでの開発ノウハウがぎっしりと詰まっています。

今日は宣伝も兼ねまして、ちょっぴりその内容をご紹介させていただきます。

続きを読む

「hbstudy#75 SRE大全:メルカリ編」で登壇しました

こんにちは。SREの @kazeburo です。8月17日に株式会社ハートビーツ様が主催する「hbstudy#75」において、メルカリSREの取り組みについての発表をしてきましたので、資料を公開します。

hbstudyでは、SRE大全というテーマで、#74において先日発売となりました「SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム」の翻訳者の発表があり、また#76にてXFLAG スタジオのSREによる発表が予定されています。

発表内容

トークの時間が2時間ありましたので、前半、後半にわけて資料を作成しました。内容も多く盛り込んでおります。

  • メルカリがSREを採用した理由
  • メルカリSREチームの紹介
  • OnCall/運用当番について
  • 先日のCDN変更での個人情報漏洩について
  • PHPアプリケーションの最適化
  • セキュリティの取り組み(パスワードリスト攻撃対策事例)
  • メルカリSREの今後

資料はこちらからも参照できます。

続きを読む

SpinnakerによるContinuous Delivery

SREの@deeeetです。

新しい機能を素早くリリースしフィードバックを得てすぐにPivotの決定を行う、もしくはリスクを抑え小さな改善を継続的に行うContinuous Deliveryはソフトウェア開発において非常に重要です。

メルカリではこのContinuous DeliveryのためのPlatformにSpinnakerを採用し始めました。現在は主にkubernetes(k8s)へのコンテナアプリケーションのDeployに利用しており、既にいくつかの本番アプリケーションがSpinnakerによりDeployされています。

本記事ではなぜSpinnakerを採用したか、Spinnakerとは何か、実際にメルカリでどのようにSpinnakerを使っているか、について簡単な紹介をします。

続きを読む