メルカリのAllforOneな開発と運用/MercariAllforOneDevAndOps

 メルカリのAllforOneな開発と運用/MercariAllforOneDevAndOps

575b9ff9b04d8598ab4f5774bb431b02?s=128

Kenichi Sasaki

March 26, 2018
Tweet

Transcript

  1. 1.

    SENDAI IT COMMUNE meetup #04 株式会社メルカリ Software Engineer (SRE) Kenichi

    SASAKI メルカリ ”All for One” な開発と運用
  2. 2.

    自己紹介 • Kenichi SASAKI (@siroken3) • Software Engineer (SRE) •

    Mercari, Inc (2014/7〜) • 好きな食べ物 • 牛タン • ずんだ餅
  3. 6.

    新たな価値を生みだす 世界的なマーケットプレイスを創る Create value in a global marketplace where anyone

    can buy & sell Be Professional プロフェッショナルであれ All for One 全て 成功 ために Go Bold 大胆にやろう メルカリ ミッションとバリュー バリュー ミッション
  4. 12.

    SRE • Site Reliability Engineering 略 • Ben Treynorが提唱 •

    ソフトウェアエンジニアリングによりサイト/サービス 信頼性を向上させるTeamとそ 実践 • Google 様々なプロダクト・サービスを横断
  5. 15.

    開発・運用 All for Oneで • ProductManager観点/ CS観点 / エンジニア観点で 各ライフサイクルに参加

    • 全て 成功 ために (職種を越えよう) • 個々 チーム内向き志向 良くないよ
  6. 20.

    GitHub自動レビュー • GitHub PullReuquestに自動でデプロイ可能かレ ビューしてくれる • Event = コードPush /

    Description記述 / ラベル付与 • マネージャ 承認あり? • ピアレビュー完了? • DBマイグレーション完了? • 作り方について詳しく • https://speakerdeck.com/siroken3/github-bot-made-with -aws-lambda
  7. 22.

    匿名化データベース • 本番 MySQLデータベース 個人情報をリアルタイ ムで匿名化したデータベース • SQLを書きさえすれ チーム個別 KPI値をリアルタ

    イムで取得できる • 社内で anonymous DB (通称 anon-DB)と呼称 • さまざまな職種が利用中 • エンジニア / カスタマーサポート / BI / マーケティング / 広報 / ファイナンス • データ 民主化に一役
  8. 23.
  9. 24.

    匿名化データベース 運用 • SSH-Tunneling経由で接続するため Bastionサー バアカウント発行 • (準備中) Google IAP

    + web socket で発行不要に • 長時間実行しているクエリ 自動KILL • Index 本番と 異なるも を追加
  10. 25.

    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; $$