$30 off During Our Annual Pro Sale. View Details »

0924_Bold Challenge_@tjun

mercari
PRO
September 26, 2019

0924_Bold Challenge_@tjun

「メルペイの信頼性へのチャレンジ」
株式会社メルペイ Engineering Manager 高木潤一郎(@tjun)
金融サービスであるメルペイには、いつでも安心して使える信頼性が求められます。メルペイを立ち上げて約半年間運用する中で、サービスの信頼性を実現するためにどのような取り組みをしてきたのか、どんなところが大変だったのかを話します。

■イベント詳細
https://mercari.connpass.com/event/145803/

■採用サイト
https://careers.mercari.com/jp

mercari
PRO

September 26, 2019
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. #BoldChallenge 1
    メルペイの信頼性へのチャレンジ
    2019-09-24
    Junichiro Takagi
    @tjun

    View Slide

  2. #BoldChallenge 2
    @tjun
    Merpay, Inc.
    ├ SRE
    └ Engineering Manager
    Junichiro Takagi

    View Slide

  3. #BoldChallenge 3
    信頼性とは?
    Agenda
    メルペイをリリースするぞ!!!
    何も信頼できない!
    今後の Challenge
    02
    03
    04
    01

    View Slide

  4. #BoldChallenge 4
    信頼性とは?
    Chapter 1

    View Slide

  5. #BoldChallenge 5
    メルペイは金融サービス
    ➔ いつでも使えて当たり前
    ➔ お金が正しいのが当たり前
    正しく作って常に動かし続ける必要がある、高い信頼性が求められる
    信頼性とは?

    View Slide

  6. #BoldChallenge 6
    メルペイは金融サービス
    ➔ いつでも使えて当たり前
    ➔ お金が正しいのが当たり前
    正しく作って常に動かし続ける必要がある、高い信頼性が求められる
    信頼性とは?
    Bold Challenge = 信頼性 100% を目指す!!!?

    View Slide

  7. #BoldChallenge 7
    Velocity Reliability
    新機能、チャレンジ、変化 改善、reactive、維持

    View Slide

  8. #BoldChallenge 8
    信頼性をどう実現するか
    目指す信頼性を定義する
    実現できているかどうか確認する
    達成しつづける仕組みを作る
    02
    03
    01

    View Slide

  9. #BoldChallenge 9
    SLO (Service Level Objective)
    「サービスの実現すべき数値」を決める
    例: iD決済のリクエストの99.99% は成功する
    目指す信頼性を定義する

    View Slide

  10. #BoldChallenge 10
    SLOを決める = 目指す信頼性の目標を決めるだけでなく、
    次のチャレンジへのチャンスを作る基準
    SLOと信頼性とお客様の体験
    お客様の
    体験
    信頼性
    (&コスト)
    SLO
    SLO以下で
    体験が悪い状態
    目標以上の信頼性を実現するには
    高いコストと時間がかかる
    参考:
    https://cloud.google.com/blog/products/devops-sre/shrinking-the-impact-of-production-inc
    idents-using-sre-principles-cre-life-lessons

    View Slide

  11. #BoldChallenge 11
    SRE(Site Reliability Engineer)?
    すべてのエンジニア?
    信頼性を誰が実現するか?
    信頼性は組織全体で作るもの

    View Slide

  12. #BoldChallenge 12
    メルペイをリリースするぞ!!!
    Chapter 2

    View Slide

  13. #BoldChallenge 13
    メルペイのリリースの難しさ
    自分がこれまで
    経験してきたサービス
    ● 最初はほとんど使う人が
    いない
    ● 最小限の機能でまずは
    出して少しずつ改善
    ● すべて新規開発
    メルペイ
    ● メルカリの規模のリクエストが来

    ● 金融サービスなので最初から
    高い信頼性が求められる
    ● メルカリとの接続、メルカリから
    の機能移行もある

    View Slide

  14. #BoldChallenge 14
    自分とSREがやってきたこと
    2018/04
    tjun入社
    1人目のSRE
    2018/05
    Mercari Microserivices Platform
    と働くためdeeetさんの隣へ
    2018/06-
    Database選定
    Platformの改善
    2018/07-
    メルペイのインフラ構築
    SLOなどの仕組み作り
    2018/10
    インフラリスクへの対応
    運用に向けた準備
    2018/12
    リリースへ向けて…!

    View Slide

  15. #BoldChallenge 15
    マイクロサービスアーキテクチャ
    ➔ マイクロサービスにまたがる決済トランザクション
    ➔ 独立した開発・リリース・運用をする仕組み
    ➔ Kubernetes on Google Cloud Platform
    ➔ マイクロサービス間のObservability
    ➔ マイクロサービスにおける信頼性
    技術的なチャレンジ

    View Slide

  16. #BoldChallenge 16
    SREがマイクロサービスの信頼性のためにやったこと
    見出し ルールや仕組み作り
    共通インフラの構築
    ● インフラの設計構築
    ● リスク洗い出して対応
    ● キャパシティプランニング
    ● SLO
    ● リリースフロー
    ● 障害対応フロー
    ● Production Readiness
    ● QA環境の構築
    ● 負荷試験
    ● モニタリング設定
    ● 設定レビュー
    リリースのためのサポート
    ※ SREだけじゃなく、アーキテクト /hidek/PM Office/Microservice Platform team/
    Risk team を中心に多くのエンジニアが一緒に対応した

    View Slide

  17. #BoldChallenge 17
    いろいろ大変なことがあったが、2019年2月13日 メルペイリリース!
    2019年2月 メルペイリリース!

    View Slide

  18. #BoldChallenge 18
    何も信頼できない!
    Chapter 3

    View Slide

  19. #BoldChallenge 19
    理想
    フルマネージドなDB使っているし、
    Kubernetesは AutoScale, Auto
    Healingするので安心!
    テストもQAもしっかりやっているので、リリー
    ス時だけ気をつけておけばOK!
    連携サービスも、金融サービスとして
    実績のあるシステムなので、問題ない!

    View Slide

  20. #BoldChallenge 20
    現実
    そんなことはない!
    クラウドでも大小さまざまな問題は発生す
    る。インフラの問題もあれば、設定がよくな
    かったこともある
    期待通りに動かないこともある。
    使っているライブラリの問題なこともある
    連携するパートナーのシステムで
    障害が起きることもある

    View Slide

  21. #BoldChallenge 21
    Observability
    ● SLOやさまざまなメトリクスを見える状態にする
    ● SLO違反となるような問題をAlertして、気づけるようにする
    Incident Response
    ● Incidentが起きたときに、すぐ気づいて対応することが重要
    ● 技術的な対応だけではなく、関係者への連絡等組織的なしくみが必要
    障害は起きるという前提で考える

    View Slide

  22. #BoldChallenge 22
    信頼性とは、サービスをリリースしたら
    達成できるものではない
    サービスを運用・改善していくことで、
    サービスの成長とともに信頼性を高めていく
    信頼性へのChallengeは始まったばかり
    Reliability

    View Slide

  23. #BoldChallenge 23
    今後の Challenge
    Chapter 4

    View Slide

  24. #BoldChallenge 24
    信頼性とは?
    メルペイが提供する機能の中で
    すべてのお客様が利用する
    一番重要な機能
    最初の質問

    View Slide

  25. #BoldChallenge 25
    信頼性をどう実現するか
    目指す信頼性を定義する
    実現できているかどうか確認する
    達成しつづける仕組みを作る
    02
    03
    01

    View Slide

  26. #BoldChallenge 26
    Velocity Reliability
    新機能、チャレンジ、変化 改善、reactive、維持

    View Slide

  27. #BoldChallenge 27
    Velocity Reliability
    新機能、チャレンジ、変化 改善、reactive、維持
    信頼性も高めたいけど新たなサービスも提供していきたい

    View Slide

  28. #BoldChallenge 28
    ソフトウェアを使って、より少ないコストで信頼性を
    達成し続けるための仕組みを作る
    ● より安定した共通基盤を作る
    ● マイクロサービスの各チームが、より簡単に
    サービスを改善し続けるための仕組みを作る
    今後のメルペイの信頼性へ向けて

    View Slide

  29. #BoldChallenge 29
    Next
    Bold Challenge
    信頼性を達成し続ける仕組みを作り、
    メルペイの新しいチャレンジを
    加速する

    View Slide

  30. #BoldChallenge 30
    Thank You!

    View Slide

  31. Mercari Bold Challenge
    に共感してくださった方は
    『Mercari Careers』を検索!
    お気軽にお問い合わせください。

    View Slide

  32. #BoldChallenge
    #BoldChallenge

    View Slide