2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部-...

37
ᡶᡵᨰጱBFFਫ᪢ D2 - 2016

Transcript of 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部-...

Page 1: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

BFFD2 - 2016

Page 2: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Chair contributor

-体 技 部- 富&保 前端 ⼈

@coolme200

Tags: Java, 前端, Node.js, ⼤数据,⾦融

Page 3: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

状 什么是BFF BFF

Page 4: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

状 什么是BFF BFF

Page 5: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Page 6: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

iOS H5Android

Page 7: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• API

• API

• UI

Page 8: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融
Page 9: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

状 什么是BFF BFF

Page 10: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Sam Newman API

BFFBackends for Frontends

什么是BFF

Page 11: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• API

什么是BFF

Page 12: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

什么是BFF

Page 13: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

什么是BFF

Page 14: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

状 什么是BFF BFF

Page 15: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Newman BFF

BFF

Page 16: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

H5 APP

API Gateway

BFF

Biz Service

Common Service

PC BrowserNative APP

BFF

Page 17: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js

Page 18: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

1.Node.js Java 2. App 3. 4.

BFF

Page 19: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

ConfigServerProvider

Java Consumer

Node.js Consumer

Java Node.js

Node.js Java

Page 20: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• hessian

• Node.js Java

Node.js Java

Jar Consumer

Page 21: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js Java

Page 22: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js Java

$ tnpm run proxy

$ mvn install//

Page 23: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js Java

Page 24: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js Java

Page 25: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

Node.js Java

Page 26: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

IP

Page 27: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

App

Page 28: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

H5 APP

API Gateway

BFF

BFF API

Page 29: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• 粒度

• 通⽤的功能, 可能会被多个 BFF ⽤到

• 提供含各种状 的 mock 真 数据,易于同步开

BFF API

Page 30: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• mock server

BFF API

Page 31: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

mock API

??

系 并不如我 所 的 A 依 B 那么 , 有很多你不知道黑盒部分,随 会影响系 的 定性,致你的开 ⽆法正常 ⾏。

Page 32: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

状 什么是BFF BFF

Page 33: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• 前端需要具 服 端技能

• 前端和 BFF 由同⼀⼈完成

• 快速的 ⽤ 布能⼒ (docker?)

Page 34: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• 全 是 了更合理的分⼯• 做 BFF 可以拓展知 ⾯

• 提升沟通 能⼒

Page 35: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

⽀持 多 解决 快沟通 作 少

iOS Android H5

Page 36: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

• 决定了架构的复 度

• 前期学 成本⾼,短期成 源瓶

Page 37: 2.4 蚂蚁财富的 BFF 实践 - 汤尧(新) · ò h Chair contributor v u-体 5技 ^部- 0富&保 >前端 . 1⼈ @coolme200 Tags: Java, 前端, Node.js, ⼤数据,⾦融

THANK YOU