Slide 1

Slide 1 text

SENDAI IT COMMUNE meetup #04 株式会社メルカリ Software Engineer (SRE) Kenichi SASAKI メルカリ ”All for One” な開発と運用

Slide 2

Slide 2 text

自己紹介 • Kenichi SASAKI (@siroken3) • Software Engineer (SRE) • Mercari, Inc (2014/7〜) • 好きな食べ物 • 牛タン • ずんだ餅

Slide 3

Slide 3 text

メルカリについて

Slide 4

Slide 4 text

2013年2月1日 東京、仙台、福岡、 San Francisco、Portland、 London 約600名 半数以上がCS (カスタマーサポート)に従事 従業員数 オフィス 会社設立日 株式会社メルカリ概要

Slide 5

Slide 5 text

メルカリ仙台オフィス

Slide 6

Slide 6 text

新たな価値を生みだす 世界的なマーケットプレイスを創る Create value in a global marketplace where anyone can buy & sell Be Professional プロフェッショナルであれ All for One 全て 成功 ために Go Bold 大胆にやろう メルカリ ミッションとバリュー バリュー ミッション

Slide 7

Slide 7 text

売れた商品 約半数が 出品から24時間以内に売れている 売れるまで 時間 利用者が多いからすぐ売れる ダウンロード数 日本 6,000万超 アメリカ 3,000万超 イギリス 数百万

Slide 8

Slide 8 text

利用者が多いからすぐ売れる

Slide 9

Slide 9 text

幅広い商品展開・商品量 1日 出品 カテゴリー別販売額シェア

Slide 10

Slide 10 text

メルカリ Architechture

Slide 11

Slide 11 text

Architecture

Slide 12

Slide 12 text

SRE • Site Reliability Engineering 略 • Ben Treynorが提唱 • ソフトウェアエンジニアリングによりサイト/サービス 信頼性を向上させるTeamとそ 実践 • Google 様々なプロダクト・サービスを横断

Slide 13

Slide 13 text

Mercari SRE •「信頼性 高い」サービス 実現 •いつでも快適かつ安全に利用できる •2015/11 「インフラチーム」からSREへ •現在メンバー 「11人」絶賛募集中

Slide 14

Slide 14 text

開発・運用 ライフサイクル 構想 開発 運用 Usability testing BizDev TechResearch

Slide 15

Slide 15 text

開発・運用 All for Oneで • ProductManager観点/ CS観点 / エンジニア観点で 各ライフサイクルに参加 • 全て 成功 ために (職種を越えよう) • 個々 チーム内向き志向 良くないよ

Slide 16

Slide 16 text

社内コミュニケーションツール 全社員 使用中

Slide 17

Slide 17 text

SRE Presents 開発/運用ツール

Slide 18

Slide 18 text

SNS監視ボット • メルカリでサポートした方がよいソーシャルネット ワーク、そ 他 記事・発言をトラッキング • 機能改善やアクティブサポートに利用 • Slackで該当記事を発言

Slide 19

Slide 19 text

アクティブサポート(一例) • お客様から お問い合わせド リブンな受け身で なく積極 的にサポートするチーム

Slide 20

Slide 20 text

GitHub自動レビュー • GitHub PullReuquestに自動でデプロイ可能かレ ビューしてくれる • Event = コードPush / Description記述 / ラベル付与 • マネージャ 承認あり? • ピアレビュー完了? • DBマイグレーション完了? • 作り方について詳しく • https://speakerdeck.com/siroken3/github-bot-made-with -aws-lambda

Slide 21

Slide 21 text

匿名化データベース

Slide 22

Slide 22 text

匿名化データベース • 本番 MySQLデータベース 個人情報をリアルタイ ムで匿名化したデータベース • SQLを書きさえすれ チーム個別 KPI値をリアルタ イムで取得できる • 社内で anonymous DB (通称 anon-DB)と呼称 • さまざまな職種が利用中 • エンジニア / カスタマーサポート / BI / マーケティング / 広報 / ファイナンス • データ 民主化に一役

Slide 23

Slide 23 text

匿名化データベース PRODUCTION series-A PRODUCTION series-B PRODUCTION series-C Anonymous-db (Active) INSERT/UPDATE TRIGGER Anonymous-db (Stand-by) INSERT/UPDATE TRIGGER Multi-source replication

Slide 24

Slide 24 text

匿名化データベース 運用 • SSH-Tunneling経由で接続するため Bastionサー バアカウント発行 • (準備中) Google IAP + web socket で発行不要に • 長時間実行しているクエリ 自動KILL • Index 本番と 異なるも を追加

Slide 25

Slide 25 text

DELIMITER $$ CREATE TRIGGER users_insert BEFORE INSERT ON users FOR EACH ROW BEGIN IF (NEW.email IS NOT NULL) THEN SET NEW.email = MD5(concat(NEW.email,'長い塩')); END IF; END; CREATE TRIGGER users_update BEFORE UPDATE ON users FOR EACH ROW BEGIN IF (NEW.email IS NOT NULL AND NEW.email !=ifnull(OLD.email, '')) THEN SET NEW.email = MD5(concat(NEW.email,'長い塩')); END IF; END; $$

Slide 26

Slide 26 text

まとめ • 職種による垣根 ないコミュニケーション • プロダクトデータ 全職種アクセス可能 • [除く]お客様,社員 個人情報/アクセスキー • すべて 成功するため All for One!

Slide 27

Slide 27 text

仙台 楽しい街! (仙台 同僚より)