Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[JA] Mercari Tech Conf 2017 Keynote

92cdcff298e89e2fcd2fb705155c2d4b?s=47 mercari
September 30, 2017
13k

[JA] Mercari Tech Conf 2017 Keynote

92cdcff298e89e2fcd2fb705155c2d4b?s=128

mercari

September 30, 2017
Tweet

Transcript

  1. Mercari Tech Conf 2017 Head of Engineering, Souzoh Tatsuya Tsuruoka

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

  3. メルカリ 作り方

  4. None
  5. 物がたくさんある ↓ もっと活用するに ? ↓ 誰かに譲る 世界中で スマートフォン 利用率急上昇 誰もがスマートフォン上

    アプリを使い、 個人間で物を売る時代になる メルカリ 事業コンセプト
  6. 事業コンセプトを実現するために大切にすること 競合より早く動く 後発 強みを活かす 2 出品体験 誰でも簡単に すぐに出品できること 1

  7. App DB Master DB Slave App Backend read/write replication read

    App App LB LB Cache NDB NDB NDB NDB MySQL NDB Cluster インフラ どうする? 例え 、よくある構成
  8. 議題:インフラ ★決定 ハイエンドな1サーバに全部集約 2013年4月6日 定例 議事録より

  9. アーキテクチャと技術スタック サーバ クライアント ・HTTPS + JSON API ・MVC ・Linux +

    Apache + MySQL5.6 + PHP5.3 ・専用サーバ:6core * 2CPU、RAM64GB、SSD200GB ・95種類 API を提供 ・iOS/Android ネイティブ + WebView DB Master App
  10. None
  11. Feature #751 検索機能 仕様検討 利用状況を見て考える by Shintaro Yamada, 2013/06/01 なぜ検索機能がない

    か お客さま 検索→ヒットしない 残念な体験 開発者 検索システム 構築 時間がかかる
  12. A B

  13. A 1200x1200 JPEG Quality 100 約1MB B 612x612 JPEG Quality

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

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

  16. ・1台 インフラ ・検索機能なし ・出品画像 最適化 ・タイムライン ネイティブ化 ・テレビCM 負荷対策 ・...他にもたくさん...

    エピソード 事業コンセプト 理解  ↓ どんな課題を解決するか見極める  ↓ 大胆な意思決定をする 創業期 開発チーム
  17. Mercari Tech Conf 2017 VP of Engineering Sotaro Karasawa Scalable

    and Elastic Engineering Team
  18. メルカリ 各リージョン 開発組織 San Francisco London Tokyo

  19. US Office

  20. UK Office

  21. メルカリ 拡大

  22. 開発組織 成長

  23. Monthly API Project Insights on 2,500+ Commits 400+ Merged Pull

    Requests 120+ Active Branches
  24. 事業 拡大とともに変化を続ける組織

  25. 変化を続ける組織 Souzoh • 新規事業を開発・運営する 子会社 誕生 • 新しい領域 CtoC、領域特 化メルカリ

    拡張 • Atte、Kauru、Maisonz など 新規サービス リリース 小さな組織と権限委譲 全く新しい挑戦 プラットフォーム化
  26. 変化を続ける組織 US Growth • 組織面でも変化を繰り返し続 け事業を成長させる • 最初 日本からも全力で •

    現在 、組織 現地化を進 める まず 日本からも全力で ローカル 要求へ 対応 徐々に現地化
  27. 変化を続ける組織 Client Source Code Fork • 当初 リソース 最適化から1 ソースマルチバイナリ

    • それぞれ 国 文化 • お客さま ニーズに合わせた開 発 • 小さなチームで素早い意思決定 できるように まず 共有するメリット 権限委譲 UI/UX 最適化
  28. JP US UK

  29. メルカリ 開発組織

  30. メルカリ プロジェクトチーム 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 ...
  31. プロジェクトを支える横断的なエンジニア組織 QA/SET (Software Engineer in Test) Engineering Operations SRE Site

    Reliability Engineer お客さまに「いつでも快適、安 全に使える」信頼性を提供。 インフラ 構築運用だけでなく 信頼性に責任を持つ。 ソフトウェア 品質に責任をも つチーム。 QA プロジェクトチーム 中 で企画から関わりマニュアル テストを、SET 自動化・環境 提供など。 組織開発・採用に責任を持つ チーム。 採用、インターン、ブランディン グとプレゼンス向上などを主導 する。
  32. メルカリ VALUE Go Bold All for One Be Professional 大胆にやろう

    すべて 成功 ために プロフェッショナルであれ
  33. メルカリ VALUE

  34. メルカリ VALUE Go Bold All for One Be Professional 大胆にやろう

    すべて 成功 ために プロフェッショナルであれ
  35. Scalable and Elastic

  36. Scalable and Elastic Elastic Scalable エンジニア 、これからグローバルで 500 人 1,000人,

    2,000人に増える トレンド 日々かわる • 開発速度・効率が落ちない • プロダクト品質が落ちない • 個人 能力が100%発揮できる • ど チームに移動してもすぐに    コミットできる • 力を入れたい事業領域に人を寄せて 開発速度を上げる 未熟でも熟練者でも自然と成長できる
  37. Mercari Tech Conf 2017 CTO Suguru Namura Technology Strategy At

    Mercari
  38. メルカリ技術 今

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

    利便性向上
  40. USリージョン 状況 ・グロースと機能 改善 ・アーキテクチャ 刷新とアプリ 書き換え ・US独自 機能 追加

    ・トラブル防止や不正検出など 自動化
  41. UKリージョン 状況 ・立ち上げ段階 ・UK独自機能 投入 ・多様性 あるチーム

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

  43. -1- Ownership

  44. Microservices Architecture

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

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

  47. Microservices Monolithic

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

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

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

  51. Microservices 導入へ アプローチ Mercari API MySQL Solr API Gateway Search

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

    SaaS Cloud Spanner
  53. -2- Automation, Karakuri

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

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

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

  57. 東京中央銀行 Karakuri を大事にする風土 問題が起きる ↓ 犯人探しをする ↓ 犯人が偉い人 場合 、部下

    誰か ↓ 出向先へ左遷 ↓ 銀行として 責任 とった。解決 ↓ 最初にもどる 問題が起きる ↓ 問題 原因を調査する ↓ 問題が起きない仕組みを考える ↓ 仕組みを導入する ↓ ミスをしても問題 起きない メルカリ
  58. -3- Progressive

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

  60. 新しい分野

  61. AI & Machine Learning

  62. メルカリで マシンラーニング 事例  既にサービス導入ずみ  実験中・今後やっていきたい ・テキスト情報から 価格推定 ・検索意図推定による精度 向上 ・デモグラフィック/趣味趣向推定

    ・CS プロアクティブサポート ・画像とテキストを組みわせた価格推定 ・カスタマーサポート 一次返答 ・オンボーディング時 最適化 ・不正出品等 自動判定 ・写真からカテゴリ/ブランド/色 自動認識
  63. Machine Learning Platform

  64. Machine Learning Platform Overview (Simplified) Training Manager Training Definition Training

    Program Model Storage API Serving Cluster Training Cluster
  65. Blockchain

  66. C2C Marketplace × Blockchain = ?

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