Slide 1

Slide 1 text

Mercari Tech Conf 2017 Head of Engineering, Souzoh Tatsuya Tsuruoka 基調講演

Slide 2

Slide 2 text

アプリリリースから4年 日米7500万ダウンロード 月間 流通総額100億円超 3つ リージョン 100人以上 ソフトウェアエンジニア

Slide 3

Slide 3 text

メルカリ 作り方

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

物がたくさんある ↓ もっと活用するに ? ↓ 誰かに譲る 世界中で スマートフォン 利用率急上昇 誰もがスマートフォン上 アプリを使い、 個人間で物を売る時代になる メルカリ 事業コンセプト

Slide 6

Slide 6 text

事業コンセプトを実現するために大切にすること 競合より早く動く 後発 強みを活かす 2 出品体験 誰でも簡単に すぐに出品できること 1

Slide 7

Slide 7 text

App DB Master DB Slave App Backend read/write replication read App App LB LB Cache NDB NDB NDB NDB MySQL NDB Cluster インフラ どうする? 例え 、よくある構成

Slide 8

Slide 8 text

議題:インフラ ★決定 ハイエンドな1サーバに全部集約 2013年4月6日 定例 議事録より

Slide 9

Slide 9 text

アーキテクチャと技術スタック サーバ クライアント ・HTTPS + JSON API ・MVC ・Linux + Apache + MySQL5.6 + PHP5.3 ・専用サーバ:6core * 2CPU、RAM64GB、SSD200GB ・95種類 API を提供 ・iOS/Android ネイティブ + WebView DB Master App

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Feature #751 検索機能 仕様検討 利用状況を見て考える by Shintaro Yamada, 2013/06/01 なぜ検索機能がない か お客さま 検索→ヒットしない 残念な体験 開発者 検索システム 構築 時間がかかる

Slide 12

Slide 12 text

A B

Slide 13

Slide 13 text

A 1200x1200 JPEG Quality 100 約1MB B 612x612 JPEG Quality 80 48KB

Slide 14

Slide 14 text

HTML5 Native お客さま 開発者 ✕ ◯ ◯ △ タイムラインをネイティブ化

Slide 15

Slide 15 text

2014年5月 負荷対策 作業チケット 56個 2ヶ月で対応 本格的な負荷テスト キャッシュ 導入 テレビCM

Slide 16

Slide 16 text

・1台 インフラ ・検索機能なし ・出品画像 最適化 ・タイムライン ネイティブ化 ・テレビCM 負荷対策 ・...他にもたくさん... エピソード 事業コンセプト 理解  ↓ どんな課題を解決するか見極める  ↓ 大胆な意思決定をする 創業期 開発チーム

Slide 17

Slide 17 text

Mercari Tech Conf 2017 VP of Engineering Sotaro Karasawa Scalable and Elastic Engineering Team

Slide 18

Slide 18 text

メルカリ 各リージョン 開発組織 San Francisco London Tokyo

Slide 19

Slide 19 text

US Office

Slide 20

Slide 20 text

UK Office

Slide 21

Slide 21 text

メルカリ 拡大

Slide 22

Slide 22 text

開発組織 成長

Slide 23

Slide 23 text

Monthly API Project Insights on 2,500+ Commits 400+ Merged Pull Requests 120+ Active Branches

Slide 24

Slide 24 text

事業 拡大とともに変化を続ける組織

Slide 25

Slide 25 text

変化を続ける組織 Souzoh ● 新規事業を開発・運営する 子会社 誕生 ● 新しい領域 CtoC、領域特 化メルカリ 拡張 ● Atte、Kauru、Maisonz など 新規サービス リリース 小さな組織と権限委譲 全く新しい挑戦 プラットフォーム化

Slide 26

Slide 26 text

変化を続ける組織 US Growth ● 組織面でも変化を繰り返し続 け事業を成長させる ● 最初 日本からも全力で ● 現在 、組織 現地化を進 める まず 日本からも全力で ローカル 要求へ 対応 徐々に現地化

Slide 27

Slide 27 text

変化を続ける組織 Client Source Code Fork ● 当初 リソース 最適化から1 ソースマルチバイナリ ● それぞれ 国 文化 ● お客さま ニーズに合わせた開 発 ● 小さなチームで素早い意思決定 できるように まず 共有するメリット 権限委譲 UI/UX 最適化

Slide 28

Slide 28 text

JP US UK

Slide 29

Slide 29 text

メルカリ 開発組織

Slide 30

Slide 30 text

メルカリ プロジェクトチーム JP US UK SRE (Site Reliability Engineer) QA/SET (Software Engineer in Test) Seller UX PJ Manager Designer Server Side iOS Android Frontend ... Growth PJ Manager Designer Server Side Frontend ... ... Search PJ Manager Designer Server Side iOS Android ... ... ... UK Manager Designer Server Side iOS Android ...

Slide 31

Slide 31 text

プロジェクトを支える横断的なエンジニア組織 QA/SET (Software Engineer in Test) Engineering Operations SRE Site Reliability Engineer お客さまに「いつでも快適、安 全に使える」信頼性を提供。 インフラ 構築運用だけでなく 信頼性に責任を持つ。 ソフトウェア 品質に責任をも つチーム。 QA プロジェクトチーム 中 で企画から関わりマニュアル テストを、SET 自動化・環境 提供など。 組織開発・採用に責任を持つ チーム。 採用、インターン、ブランディン グとプレゼンス向上などを主導 する。

Slide 32

Slide 32 text

メルカリ VALUE Go Bold All for One Be Professional 大胆にやろう すべて 成功 ために プロフェッショナルであれ

Slide 33

Slide 33 text

メルカリ VALUE

Slide 34

Slide 34 text

メルカリ VALUE Go Bold All for One Be Professional 大胆にやろう すべて 成功 ために プロフェッショナルであれ

Slide 35

Slide 35 text

Scalable and Elastic

Slide 36

Slide 36 text

Scalable and Elastic Elastic Scalable エンジニア 、これからグローバルで 500 人 1,000人, 2,000人に増える トレンド 日々かわる ● 開発速度・効率が落ちない ● プロダクト品質が落ちない ● 個人 能力が100%発揮できる ● ど チームに移動してもすぐに    コミットできる ● 力を入れたい事業領域に人を寄せて 開発速度を上げる 未熟でも熟練者でも自然と成長できる

Slide 37

Slide 37 text

Mercari Tech Conf 2017 CTO Suguru Namura Technology Strategy At Mercari

Slide 38

Slide 38 text

メルカリ技術 今

Slide 39

Slide 39 text

日本リージョン 状況 ・メルカリチャンネルなど新機能 投入 ・プラットフォーム化に伴う複雑化 ・データベース等 スケールアウト ・コンテンツ配信 最適化 ・検索精度 利便性向上

Slide 40

Slide 40 text

USリージョン 状況 ・グロースと機能 改善 ・アーキテクチャ 刷新とアプリ 書き換え ・US独自 機能 追加 ・トラブル防止や不正検出など 自動化

Slide 41

Slide 41 text

UKリージョン 状況 ・立ち上げ段階 ・UK独自機能 投入 ・多様性 あるチーム

Slide 42

Slide 42 text

メルカリエンジニア 行動指針

Slide 43

Slide 43 text

-1- Ownership

Slide 44

Slide 44 text

Microservices Architecture

Slide 45

Slide 45 text

小さい オンボーディングコスト Ownership 高速なデプロイ シンプルなテスト 小さなチーム チーム 裁量 明確な影響範囲

Slide 46

Slide 46 text

小さい オンボーディングコスト Ownership 高速なデプロイ シンプルなテスト 小さなチーム チーム 裁量 明確な影響範囲

Slide 47

Slide 47 text

Microservices Monolithic

Slide 48

Slide 48 text

どうやって Microservices に転向しているか

Slide 49

Slide 49 text

Microservices 導入へ アプローチ Mercari API MySQL Solr

Slide 50

Slide 50 text

Microservices 導入へ アプローチ Mercari API Database Solr API Gateway

Slide 51

Slide 51 text

Microservices 導入へ アプローチ Mercari API MySQL Solr API Gateway Search Service Offer Service Search SaaS Cloud Spanner

Slide 52

Slide 52 text

Microservices 導入へ アプローチ API Gateway Search Service Offer Service Search SaaS Cloud Spanner

Slide 53

Slide 53 text

-2- Automation, Karakuri

Slide 54

Slide 54 text

自動化・仕組み化している例 Go Bold Bot ■ 月400デプロイされるメルカリ デプロイを司るBot

Slide 55

Slide 55 text

自動化・仕組み化している例 とんこつbot Account Bot

Slide 56

Slide 56 text

自動化・仕組み化しているも 例 e2e Test Platform

Slide 57

Slide 57 text

東京中央銀行 Karakuri を大事にする風土 問題が起きる ↓ 犯人探しをする ↓ 犯人が偉い人 場合 、部下 誰か ↓ 出向先へ左遷 ↓ 銀行として 責任 とった。解決 ↓ 最初にもどる 問題が起きる ↓ 問題 原因を調査する ↓ 問題が起きない仕組みを考える ↓ 仕組みを導入する ↓ ミスをしても問題 起きない メルカリ

Slide 58

Slide 58 text

-3- Progressive

Slide 59

Slide 59 text

常により良い技術を Progressive Web Apps

Slide 60

Slide 60 text

新しい分野

Slide 61

Slide 61 text

AI & Machine Learning

Slide 62

Slide 62 text

メルカリで マシンラーニング 事例  既にサービス導入ずみ  実験中・今後やっていきたい ・テキスト情報から 価格推定 ・検索意図推定による精度 向上 ・デモグラフィック/趣味趣向推定 ・CS プロアクティブサポート ・画像とテキストを組みわせた価格推定 ・カスタマーサポート 一次返答 ・オンボーディング時 最適化 ・不正出品等 自動判定 ・写真からカテゴリ/ブランド/色 自動認識

Slide 63

Slide 63 text

Machine Learning Platform

Slide 64

Slide 64 text

Machine Learning Platform Overview (Simplified) Training Manager Training Definition Training Program Model Storage API Serving Cluster Training Cluster

Slide 65

Slide 65 text

Blockchain

Slide 66

Slide 66 text

C2C Marketplace × Blockchain = ?

Slide 67

Slide 67 text

メルカリエンジニア 行動指針 Ownership Automation & Karakuri Progressive