Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20191127_financier.pdf
Search
Eisuke Oishi
November 27, 2019
Technology
3
4.3k
20191127_financier.pdf
Eisuke Oishi
November 27, 2019
Tweet
Share
More Decks by Eisuke Oishi
See All by Eisuke Oishi
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
3
1.5k
レシピサービスにおける持続的な プロダクト開発プロセスについて / Sustainable Product Development Process in Cookpad
eisuke
0
3.1k
kuroko2の近況とクックパッドのバッチ周りの概況
eisuke
4
11k
クックパッドの管理アプリケーションの近況報告
eisuke
1
370
Other Decks in Technology
See All in Technology
C++26 エラー性動作
faithandbrave
2
780
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
210
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
490
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
110
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
170
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
760
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
280
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Making the Leap to Tech Lead
cromwellryan
133
9k
Producing Creativity
orderedlist
PRO
341
39k
The Cult of Friendly URLs
andyhume
78
6.1k
Six Lessons from altMBA
skipperchong
27
3.5k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Visualization
eitanlees
146
15k
Code Reviewing Like a Champion
maltzj
520
39k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Faster Mobile Websites
deanohume
305
30k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Transcript
クックパッドにおける決済基盤 の歴史とこれから Cookpad Tech Kitchen #22 大石英介
自己紹介 大石英介 2014年〜 クックパッド入社。 クックパッドの決済基盤やユーザー基 盤の開発・運用を担当。 2019年より ユーザー・決済基盤部 部長。
ユーザー・決済基盤部は エンジニアを募集しています
ユーザー・決済基盤部 •共通認証基盤、ユーザー 管理基盤、決済基盤の運 用と開発 •ユーザー管理、認証や決 済に関する導入支援
ユーザー・決済基盤部 • ʙ 2017-12-31 ٕज़෦ ։ൃج൫άϧʔϓʹͯ • 20181݄ ʙ ٕज़෦
ܾࡁج൫άϧʔϓ • 20184݄ ʙ ٕज़෦ Ϣʔβʔɾܾࡁج൫άϧʔϓ • 20191݄ ʙ Ϣʔβʔɾܾࡁج൫෦ Ԋֵ
なぜチームとして独立しているのか
コンウェイの法則 “システム設計(アーキテクチャ)は、 組織構造を反映させたものになる”
逆コンウェイ戦略 “望ましいアーキテクチャを促進するため にチームと組織構造を進化させること”
ユーザー・決済基盤部のない世界 ܦཧ ΧελϚʔαϙʔτ αʔϏε։ൃ෦ॺ" αʔϏε։ൃ෦ॺ# αʔϏε։ൃ෦ॺ$ ܾࡁήʔτΣΠ" ܾࡁήʔτΣΠ# ܾࡁήʔτΣΠ$
ユーザー・決済基盤部のない世界 •決済に関する実装が各サービスのアプリケーションにバラバラに 存在 •経理は新しいサービスが発生するたびに必要な機能をサービス開 発部門へリクエスト •機能のばらつきによりカスタマーサポートもそれぞれにサービス 専用の対応プランを作る必要がある •決済ゲートウェイの契約が乱立
ユーザー・決済基盤部のある世界 ܦཧ ΧελϚʔαϙʔτ αʔϏε։ൃ෦ॺ" αʔϏε։ൃ෦ॺ# αʔϏε։ൃ෦ॺ$ ܾࡁήʔτΣΠ" ܾࡁήʔτΣΠ# ܾࡁήʔτΣΠ$ ܾࡁ
ج൫νʔϜ
ユーザー・決済基盤部のある世界 •決済に関する実装は一箇所のみ •経理は専用の管理画面1つですべてのサービスの処理ができ る •カスタマーサポートも決済ごとの対応プランは集約できる •効率的な契約 •=> サービスが増えても関連のノードは1つ増えるだけ
望ましいアーキテクチャを促進させるためのチーム •社内全体への専門知識のハブとなる ‣ 導入・開発の効率化 ‣ 知見の集約 ‣ 部署間の調整・コミュニケーションを円滑に ‣ それらを仕組みとして提供する
•マクロな視点でのアーキテクチャ・技術・決済手段などをアップデート できる
共通決済基盤 Financier
名前の由来 •フランスのお菓子 ‣色・形において金塊に似ているから [2] と も、サン=ドゥニ通りの菓子職人ラヌ が考案し、パリ証券取引所周辺の金融 街から広まったからともいわれる •料理に関係がある決済やお金が想像で きる名前で個人的にも気に入っている
None
共通決済基盤 Financier •Initial commit 2012-07-04 ‣ クックパッド本体サービスから分離された草分け的なサービス (古株) •クックパッドが提供するあらゆるサービスが各種決済の導入ができるようにした、社内向けの独立した基盤サービス ‣
各種決済サービスとの連携 (クレジットカード、キャリア決済、アプリ内課金、コンビニ決済、送金) ‣ 接続先との差異を吸収し統一的なAPI ‣ 決済情報、履歴の管理 ‣ 決済情報の突合や有効性の確認 ‣ 決済に必要なユーザー情報の管理 ‣ 経理処理における集計機能 ‣ カスタマーサポートが履歴を確認したりキャンセルなどを行える管理画面
共通決済基盤 Financier •社内全体への専門知識のハブとなる (再掲) ‣ 導入・開発の効率化 ‣ 知見の集約 ‣ 部署間で発生する業務・調整・コミュニケーションを円滑に
‣ それらを仕組みとして提供しているものが Financier
Financierがやらないこと •商品管理 •個別のサービスに依存するような実装
Financierのアーキテクチャの変化
クックパッドからの分離時代(2012-2013) 'JOBODJFS $PPLQBE 8FCϒϥβ
新規Webアプリ対応時代(2013-2017) ৽نαʔϏε 'JOBODJFS $PPLQBE 8FCϒϥβ
アプリ内課金対応時代1(2018-) ৽ن8FCαʔϏε 'JOBODJFS $PPLQBE 8FCϒϥβ $PPLQBE"1* 1BOUSZ $PPLQBE ϞόΠϧϞόΠϧΞϓϦ
アプリ内課金対応時代2(2018-) $VJTJOF"1* ৽ن8FCαʔϏε 'JOBODJFS $PPLQBE 8FCϒϥβ ৽نϞόΠϧαʔϏε#"1* ৽نϞόΠϧϞόΠϧΞϓϦ# $VJTJOF4%, $PPLQBE"1*
1BOUSZ $PPLQBE ϞόΠϧϞόΠϧΞϓϦ
チームとなることでアーキテク チャの進化が早くなっった
まとめ •Financier は組織構造や決済ニーズの変化に効率的に対応できるアーキテクチャ ‣ アーキテクチャに合わせた組織構造になっている (逆コンウェイ戦略) ‣ チーム化することで進化が加速した ‣ Financierおよび決済基盤チームが決済における組織のハブとなる役割
•新しい機能や決済はFinancierが対応すれば横にスケールできる ‣ 特にアプリ内課金は実装が複雑でアップデートが激しいので効果が大きい (詳細はこのあとの2人が話します) ‣ もしサービスごとに実装が散らばってたとしたら・・・を想像しながら聞いてみてください •知見の集約、実装・運用コストの削減 ‣ 整合性との戦い、アプリ内課金の複雑さ ‣ 外部APIに対しての知見 etc…
これから •ユーザー基盤との連携を強化 (Cuisine) •C2Cプラットフォーム対応
ありがとうございました
参考資料 ‣ クックパッドの課金を支える技術 ‣ 新規アプリ開発を支えるユーザ・決済基盤 ‣ バックエンドエンジニア募集中