「メルペイの信頼性へのチャレンジ」 株式会社メルペイ Engineering Manager 高木潤一郎(@tjun) 金融サービスであるメルペイには、いつでも安心して使える信頼性が求められます。メルペイを立ち上げて約半年間運用する中で、サービスの信頼性を実現するためにどのような取り組みをしてきたのか、どんなところが大変だったのかを話します。
■イベント詳細 https://mercari.connpass.com/event/145803/
■採用サイト https://careers.mercari.com/jp
#BoldChallenge 1メルペイの信頼性へのチャレンジ2019-09-24Junichiro Takagi@tjun
View Slide
#BoldChallenge 2@tjunMerpay, Inc.├ SRE└ Engineering ManagerJunichiro Takagi
#BoldChallenge 3信頼性とは?Agendaメルペイをリリースするぞ!!!何も信頼できない!今後の Challenge02030401
#BoldChallenge 4信頼性とは?Chapter 1
#BoldChallenge 5メルペイは金融サービス➔ いつでも使えて当たり前➔ お金が正しいのが当たり前正しく作って常に動かし続ける必要がある、高い信頼性が求められる信頼性とは?
#BoldChallenge 6メルペイは金融サービス➔ いつでも使えて当たり前➔ お金が正しいのが当たり前正しく作って常に動かし続ける必要がある、高い信頼性が求められる信頼性とは?Bold Challenge = 信頼性 100% を目指す!!!?
#BoldChallenge 7Velocity Reliability新機能、チャレンジ、変化 改善、reactive、維持
#BoldChallenge 8信頼性をどう実現するか目指す信頼性を定義する実現できているかどうか確認する達成しつづける仕組みを作る020301
#BoldChallenge 9SLO (Service Level Objective)「サービスの実現すべき数値」を決める例: iD決済のリクエストの99.99% は成功する目指す信頼性を定義する
#BoldChallenge 10SLOを決める = 目指す信頼性の目標を決めるだけでなく、次のチャレンジへのチャンスを作る基準SLOと信頼性とお客様の体験お客様の体験信頼性(&コスト)SLOSLO以下で体験が悪い状態目標以上の信頼性を実現するには高いコストと時間がかかる参考:https://cloud.google.com/blog/products/devops-sre/shrinking-the-impact-of-production-incidents-using-sre-principles-cre-life-lessons
#BoldChallenge 11SRE(Site Reliability Engineer)?すべてのエンジニア?信頼性を誰が実現するか?信頼性は組織全体で作るもの
#BoldChallenge 12メルペイをリリースするぞ!!!Chapter 2
#BoldChallenge 13メルペイのリリースの難しさ自分がこれまで経験してきたサービス● 最初はほとんど使う人がいない● 最小限の機能でまずは出して少しずつ改善● すべて新規開発メルペイ● メルカリの規模のリクエストが来る● 金融サービスなので最初から高い信頼性が求められる● メルカリとの接続、メルカリからの機能移行もある
#BoldChallenge 14自分とSREがやってきたこと2018/04tjun入社1人目のSRE2018/05Mercari Microserivices Platformと働くためdeeetさんの隣へ2018/06-Database選定Platformの改善2018/07-メルペイのインフラ構築SLOなどの仕組み作り2018/10インフラリスクへの対応運用に向けた準備2018/12リリースへ向けて…!
#BoldChallenge 15マイクロサービスアーキテクチャ➔ マイクロサービスにまたがる決済トランザクション➔ 独立した開発・リリース・運用をする仕組み➔ Kubernetes on Google Cloud Platform➔ マイクロサービス間のObservability➔ マイクロサービスにおける信頼性技術的なチャレンジ
#BoldChallenge 16SREがマイクロサービスの信頼性のためにやったこと見出し ルールや仕組み作り共通インフラの構築● インフラの設計構築● リスク洗い出して対応● キャパシティプランニング● SLO● リリースフロー● 障害対応フロー● Production Readiness● QA環境の構築● 負荷試験● モニタリング設定● 設定レビューリリースのためのサポート※ SREだけじゃなく、アーキテクト /hidek/PM Office/Microservice Platform team/Risk team を中心に多くのエンジニアが一緒に対応した
#BoldChallenge 17いろいろ大変なことがあったが、2019年2月13日 メルペイリリース!2019年2月 メルペイリリース!
#BoldChallenge 18何も信頼できない!Chapter 3
#BoldChallenge 19理想フルマネージドなDB使っているし、Kubernetesは AutoScale, AutoHealingするので安心!テストもQAもしっかりやっているので、リリース時だけ気をつけておけばOK!連携サービスも、金融サービスとして実績のあるシステムなので、問題ない!
#BoldChallenge 20現実そんなことはない!クラウドでも大小さまざまな問題は発生する。インフラの問題もあれば、設定がよくなかったこともある期待通りに動かないこともある。使っているライブラリの問題なこともある連携するパートナーのシステムで障害が起きることもある
#BoldChallenge 21Observability● SLOやさまざまなメトリクスを見える状態にする● SLO違反となるような問題をAlertして、気づけるようにするIncident Response● Incidentが起きたときに、すぐ気づいて対応することが重要● 技術的な対応だけではなく、関係者への連絡等組織的なしくみが必要障害は起きるという前提で考える
#BoldChallenge 22信頼性とは、サービスをリリースしたら達成できるものではないサービスを運用・改善していくことで、サービスの成長とともに信頼性を高めていく信頼性へのChallengeは始まったばかりReliability
#BoldChallenge 23今後の ChallengeChapter 4
#BoldChallenge 24信頼性とは?メルペイが提供する機能の中ですべてのお客様が利用する一番重要な機能最初の質問
#BoldChallenge 25信頼性をどう実現するか目指す信頼性を定義する実現できているかどうか確認する達成しつづける仕組みを作る020301
#BoldChallenge 26Velocity Reliability新機能、チャレンジ、変化 改善、reactive、維持
#BoldChallenge 27Velocity Reliability新機能、チャレンジ、変化 改善、reactive、維持信頼性も高めたいけど新たなサービスも提供していきたい
#BoldChallenge 28ソフトウェアを使って、より少ないコストで信頼性を達成し続けるための仕組みを作る● より安定した共通基盤を作る● マイクロサービスの各チームが、より簡単にサービスを改善し続けるための仕組みを作る今後のメルペイの信頼性へ向けて
#BoldChallenge 29NextBold Challenge信頼性を達成し続ける仕組みを作り、メルペイの新しいチャレンジを加速する
#BoldChallenge 30Thank You!
Mercari Bold Challengeに共感してくださった方は『Mercari Careers』を検索!お気軽にお問い合わせください。
#BoldChallenge#BoldChallenge