分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
19876 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
开篇词 (1讲)
分布式金融架构课
15
15
1.0x
00:00/10:05
登录|注册

开篇词 | 如何成为金融级人才?

讲述:任杰大小:9.22M时长:10:05
你好,我是任杰。从今天开始,我将带你深入探索分布式金融系统架构。
说起金融,这是一块硬骨头,我甚至觉得,金融系统是架构界的珠穆朗玛峰,登峰不易,但是一旦攀登上来了,就会发现这边风景独好。
我这么说,也不仅仅是因为自己在金融领域摸爬滚打了十几年,亲身体验了所以盲目自信,这几乎也是一种共识。
我还记得很多年前大学软件工程课上,老师介绍过几个最复杂的软件系统,有军用软件、操作系统,还有金融行业的软件。
军用软件的复杂度在于需要实时处理武器信号,操作系统的复杂度在于需要在功能的多样性和效率之间做一个良好的平衡,金融软件的复杂度在于如何在软件系统的演进过程中保持并证明系统的正确性。
金融软件这么复杂,那它独特的魅力又在哪儿呢?
这就得从 08 年金融危机前夜的时候聊了,那会儿我刚刚毕业,阴差阳错地进入摩根士丹利做了一名程序员,一呆就是近十年。
这期间,我目睹了华尔街金融公司由盛转衰的过程。盈利压力迫使公司对系统做了大刀阔斧地升级,我也有幸全程参与了这个改造过程,了解了金融公司大部分的系统和几乎所有金融产品。
之后我便从面向企业的金融业务转向了面向大众的普惠金融。这期间我担任过很多角色。作为机构用户,我对接过第三方支付系统;在蚂蚁金服亲身了解过成熟的第三方支付系统;在 eBay 呢,我带着团队从头实验了一个更好的第三方支付系统。
这十多年来,我每天都在解决金融系统大大小小的各种问题,同时,我也在这件又复杂又困难的事情中获得了极大的成就感。在这个过程中,我渐渐地把零碎庞杂的知识和经验都串联了起来,形成了自己的一套体系。
正是因为这些经历,最近几年,身边越来越多的朋友找到我,他们的金融系统也希望通过重构来解决历史遗留问题,但是踩坑不断,希望我能给一些系统的经验。这样的交流多了,我发现,金融软件似乎已经成了某种行业标准,现在大家都在谈“金融级软件”和“金融级人才”了。
那到底什么是金融级软件呢?怎样才能成为金融级人才呢?
首先,我们得知道金融软件要解决的核心问题是什么?没错,就是钱!钱一旦处理错了,那可就是真金白银的损失,所以任何一家金融机构对系统错误都是零容忍的。
这样的特殊性,使得金融级软件系统区别于很多其它的大型软件系统,它对正确性以及速度都提出了更高的要求。
那面对这样的金融级软件,金融级人才又需要怎样的能力呢?
假如你现在是一个金融系统的负责人,你需要在系统正确性和吞吐量之间做个选择。很显然你会毫不犹豫地选择正确性。
但是如果有人告诉你,系统吞吐量出现了问题,用户可能就转不了钱了,这样会造成恶意挤兑,从而形成恶性群体性事件。那么你又该如何选择呢?你很有可能会进退维谷,在两难之间犹豫。
其实这个例子就反映了我们对金融软件质量的要求。衡量软件质量有很多种不同角度,一般的软件我们会选择在矛盾中取舍,但是金融软件则要求我们尽可能在所有的地方都做到最好。
这种在矛盾中同时追求极致的要求,就是对金融级人才最大的挑战。这也是你进阶资深架构师乃至公司技术决策者的必经之路。
如果你想同时改善两个相互矛盾的需求,比如我们前面说的系统正确性和吞吐量,就需要付出巨大的代价。这个代价不仅仅是指开发成本或者运营成本,还包括了你的思考成本。你不仅仅要在有限的资源下,思考如何调和各种矛盾的需求,还要考虑怎么保证未来系统迭代之后,还能坚守现在的系统承诺。
这就考验到金融级人才的一个核心能力——透过现象看本质。了解了本质,也就能推演出事物发展的规律,从而把握先机,未雨绸缪。
总结一下,金融级系统需要滴水不漏,而金融级人才要求见微知著。

这门课是怎么设计的?

我们这门课的目的就是带你实现金融级架构,帮助你成为金融级人才。
我是从对事和对人这两个角度来设计课程的。
对事的角度比较简单。我希望你能在学完所有课程之后,对金融行业需要怎样的系统建立一个比较全面的认识,知道系统里都包括哪些重要组成部分,以及每个部分的技术挑战点在哪里,常见的技术解决方案都有哪些。
最重要的是,你会掌握金融软件架构的整体思路,知道都有可能出现哪些矛盾,以及出现这些矛盾的时候你都有哪些选择。
对人的角度比较困难,也是我个人的一些期许。在这短短的二十多讲里,我会带你初步了解金融业务为什么会有这么多分类,金融软件究竟解决的是什么业务问题,金融软件系统是怎么一步步发展到现在这个样子的。还有最重要的一点,我会为你剖析上述问题的本质究竟是什么。
为了帮助你循序渐进地学习,我把这个专栏分为 3 大部分。
第一部分,金融与业务系统。
这部分我们将围绕常见的金融业务生态及其系统架构需求进行讲解,重点包括第三方支付、交易所、券商、银行和投资银行等等。搞懂了这些金融机构和业务的特点,我们还要总结共性和技术逻辑,给你分析如何利用领域驱动设计的思想来更好地解决金融软件的复杂度问题。
第二部分,系统的正确性保障。
了解了金融业务以后,我们就可以对金融软件质量提出要求了。这部分我们重点学习如何保证金融系统架构的正确性,具体包括业务处理的正确性以及数据处理的正确性,它们是金融系统的必选项。最后,我还会讲到系统优化,让你在保证系统高正确性的同时,也能合理追求速度。
第三部分,分布式正确性及高可用。
针对复杂系统一定是重在实践的,所以这部分我会以分布式系统环境为背景,重点讨论分布式一致性的存在条件、分布式共识算法、分布式的事件溯源架构、分布式数据方案的设计原理以及数据系统的实时动态分库等等。
这部分的每节课都是线上环境中会遇到的关键问题。学习难度逐渐升级,结合实际案例,寻找问题本质,落地前面所学。另外,我还会分享一个金融领域绕不开的话题——容灾,重点讲解跨机房实时容灾以及如何提高系统稳定性。
好了,关于课程设计我就交代到这里。我真的希望能够和你在课程里相遇,我们一起死磕金融系统。课程的内容确实覆盖广、难度也不低,课程里讲解方案、思路的内容会比较容易一些,而深入原理的部分会有一定挑战性。所以我也先给你一些学习小窍门。
如果原理讲解的内容,你学起来感觉很吃力,建议你可以先通读一下,对整体思路有一个认识以后,再深入学习难点部分。如果你想对金融架构的理解更上一层楼,就绕不开这爬坡的过程,这也是我自己学习的一点经验。当然了,有什么问题你可以通过留言反馈给我,我们一同交流探讨。总之,我希望你碰到困难不要放弃。
最后,我想和你说几句我的心里话,也是我这几年一直在思考的事儿。
金融行业属于国之重器。但是,金融软件和很多其它行业专用软件一样,一直以来都处在国外垄断、国内追赶的过程。
这些年,金融改革和开放步伐也越来越快了,我们既会碰到国内日益增长的金融需求,也会碰到国外成熟金融系统的降维打击。这个行业太需要人才了,如果你有兴趣加入,那么这大概是一个最好的时代,和一百多年前一样,我们可以师夷长技以制夷,从容应对,大展身手。
好了,事虽难做则必成,就让我们开始金融系统的探索之旅吧。最后的最后,送给你一句话,作为我们的开课寄语。
金融系统是一条通往软件工程巅峰的少有人走的路,坚持下去,最终一定能会当凌绝顶,一览众山小。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

金融级系统架构和金融级人才的重要性备受关注。作者任杰以多年金融系统经验为基础,深入探讨了金融级软件的特殊性和金融级人才所需的能力。金融级软件对资金处理有极高要求,而金融级人才需要在矛盾中追求极致,了解事物发展规律。文章分为三大部分,涵盖金融业务系统、系统正确性保障以及分布式正确性及高可用。课程设计旨在帮助读者全面了解金融行业系统建设和技术挑战,培养金融级人才。文章强调金融行业对人才的需求,鼓励读者在金融系统探索之旅中坚持不懈。

2020-12-2169人觉得很赞给文章提建议

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(27)

  • 最新
  • 精选
  • Jerry Wu
    在前东家那儿,我就是做第三方支付和交易的。对接第三方支付公司,把这些公司的支付接口封装成自己的产品。 举个例子,我司在支付宝、微信各开一个账户,都申请开通转账接口,这样就有两个转账接口了。 接下来,我就把这两个转账接口再次封装,变成一个统一的转账接口。下游用户只要对接我这个接口,就可以同时用支付宝、微信的转账了。 当然,我封装这个接口也不是白干的,你每转账一次,我就多收一点手续费。 老师,我这样算敲开金融的大门了吗😂感觉就是个中间商

    作者回复: jiarupc你好。你的前东家做的事情是聚合支付,也叫做第四方支付。很不幸的告诉你,现在国家正在严厉打击的金融犯罪里,很多都有第四方参与机构。因此也再次提醒大家,由于“第四方支付”平台没有支付许可牌照且由个人组建,资金安全没有保障,广大人民群众在从事互联网金融活动时要认准合规合法的网络支付平台,谨防上当受骗。 我们还是回归金融业务。虽然你觉得没有做特别高大上的工作,但是你做的是其实是金融业务一大赢利点,叫做流量业务(flow business)。它的核心思想是浪里淘沙,雁过拔毛。在经济学(不是金融学)里,我们称呼这个利润点叫做摩擦成本(friction cost),在金融学里我们叫这个为交易成本(transaction cost)。中间商虽然名字不高大上,但是金融行业能赚钱就行,名称只是个虚名而已。 我在文章里一直提到要透过现象看本质。这个摩擦成本就是流量业务的本质。当你了解了原理之后,就可以顺着这个思路去做其它的事情,比如现在的打车、外卖、买菜的服务,都是同一个思路。 最后还是提醒一下,勿以恶小而为之,毋以善小而不为。我们国家现在强调的是普惠金融,最近在对一些头部金融公司的处理上也彰显了国家的态度。也希望你能在普惠金融这块能有所建树,为大家的幸福生活出一点力。

    2020-12-21
    5
    37
  • 黑山老妖
    除了CFA以外,国内也有其它一些重要的证,比如CPA、基金从业资格、证券资格从业考试等等。这些考下来,就不需要做技术开发了。

    作者回复: 黑山老妖你好。我们在最开始进入金融行业做系统开发的时候也都是你的想法。我们很多人也都考过了这些认证。有些人确实转行做了业务,但是更多人留了下来。 这背后其实是有金融学原理的。 你在新闻上看到金融公司的前台业务部门薪水特别高,每年会拿几百万上千万美金的奖金。但是这是灯光聚集下的少数人。大多数人还是拿着一般的收入。 从金融学的角度分析,前台业务部门收入的波动特别大(Variance),但是平均值(Average)比开发部门高不了多少。而且,前台人员一旦失败亏钱了,就很难找下一份前台的工作,但是开发部门只要好好做,经验可以不断积累,也可以在不同公司得以发挥。 所以,如果你如果算不同职业的长期平均收益的话,会发现前台平均收益比开发人员高一些,但是前台生命周期短,总收益并不一定高。这也是我们为什么会留下来的原因。有些前台交易员想清楚了这个问题也主动转做了开发。 考证确实能帮助你走向前台,但也能帮助我们更好的做系统开发。所以在这里也建议大家能客观的看待职业选择。有光鲜的地方一定也会有阴影。不是所有人都能在金融行业一夜成名。与其说做一个分母,还不如做一些自己喜欢和擅长的工作。把事情好好做,平凡的人也会有成功。

    2021-01-03
    23
  • 木木夕Ace
    处理和钱有关的业务慌的一批

    作者回复: 木木夕Ace。每个人都有成长的过程。我在最开始处理金融产品的时候碰到的合同面值都在几亿美金,随便出点问题都是几十亿上百亿美金的误差。开始都会比较紧张,但是后来也就平常心了。 心态平常不是指不重视这么大的金额,而是说经过了一段时间之后对自己工作的系统的正确性有了一定的了解,知道它在运行的时候有怎样的一个正确度。有了信心就放心了。 我们到后来最担心的其实不是大金额的误差。金额大了之后大家一定会认真对待。我们最担心的是小金额的误差。金额太小,大家就不会重视,这样一个小的bug可能就会潜伏在系统里,以后可能会出大问题。这就是金融系统在修复bug时的性价比问题。这可能也是给你的一个思考题。如果系统发现错了一亿美金,老板肯定会叫上所有人,不找到问题不罢休。但是如果只错了一分钱,你觉得从员工和老板两种角色来思考,他们可能会采取那种态度?你又会选择那种态度?

    2020-12-21
    17
  • WideBook
    老师您好,看到这门课的时候,感觉如获至宝!我有个职业规划的问题想咨询一下。我是一名Java开发工程师,个人对金融也比较有兴趣,所以近期打算进入互联网金融行业从事开发工作。同时为了弥补金融领域知识的空白,准备考CFA,以考证的方式督促自己学习,同时获得更多的业务知识,提升金融领域的资质。这是短期也就是2021年的规划。长远的话希望用5年时间在技术和业务两方面更精进,然后转型金融行业技术管理人员。这是个人一点想法,希望能得到老师的指点。

    作者回复: Dcoder你好。首先要鼓励你的这种学习态度。 CFA是金融行业的敲门砖,学好之后能对金融行业有很全面的理解。当然了,这门考试也有一定难度,如果能坚持下来也能证明自己的能力。 CFA需要注意的是从理论到实践的转换。CFA侧重点是股票,债券、衍生品和另类投资的比重不高。同时,在介绍股票的时候也侧重于基本面分析,比较符合国外的情况。所以你在应用CFA的过程中需要考虑到我国国情,选择性的看待问题。 除了CFA以外,国内也有其它一些重要的证,比如CPA、基金从业资格、证券资格从业考试等等。你可以根据未来的发展方向来选择。

    2020-12-29
    12
  • 楼下小黑哥
    一看到这个专栏,立刻下手了,终于看到有分享偏业务方向的专栏了。 我个人是一名从事支付行业后台开发,之前刚接触的支付的什么都不懂,很多不知道怎么实现。 后面加入一家支付公司,从渠道对接开始,慢慢了解收单系统,才知道有些业务原来是这么实现的。 这一路上我发现支付业务很多东西其实做过的人都觉得不难,但是没做过,不了解的人就会觉得很难。 而网上其实有很少有这类知识的分享,所以对于刚接触的同学来说可能真的就比较困难。 老师这门课程我觉得正好可以弥补这方面的空缺,跟着老师学完这门课程,加深行业知识。

    作者回复: 楼下小黑哥你好。谢谢分享自己的感受。金融行业是一个很专业的行业,有自己的术语和逻辑。金融机构对资金量要求非常高,有极高的准入门槛。因此外界很难了解机构金融究竟在做什么。 但是普惠金融行业和民生相关,门槛相对较低,比如支付和股票等等,因此大家很容易理解这些内容。 我们会在开始的几节课介绍普惠金融和机构金融是有对接的。对接之后才是整个金融行业的全貌。因此无论是用复杂的眼光看待金融,或者用简单的眼光看待金融,都不太合适,都有盲人摸象的嫌疑。 这也是我们这个系列的目的。希望能带大家从各方面了解金融是什么,这样才能比较客观的评价业务的复杂度和设计对应的系统解决方案。

    2020-12-24
    2
    8
  • Geek_9c3134
    老师 能推荐金融系统的相关书籍或者资料吗 还有如何搭建第三方支付 需要什么 如果有源码参考更好

    作者回复: 这位同学你好。我会在这一系列结束的时候给大家推荐一些参考书目。敬请期待。

    2020-12-21
    3
    6
  • STW_wyf
    老师,可否涉及一下后台大数据量批处理设计方案呢?

    作者回复: 这位同学你好。我们这个系列主要分享的是如何正确处理事务数据,所以在如何分析数据方面没有太多的介绍。数据分析本身也是一门大学问,想要完全讲清楚需要有系统的介绍。 在这里我推荐你可以看看李智慧老师最新的数据处理课程《从0开始学大数据》。https://time.geekbang.org/column/intro/100020201。李老师在数据行业耕耘了多年,教材覆盖面全面,但是又写的浅显易懂。我在和李老师的沟通过程中一直都能学到新的知识,想必你学了之后也会有所收获。

    2020-12-21
    5
  • Monday
    我来了,大哥 算是在金融行业第四年了。。

    作者回复: Monday你好。四年的时间你应该已经经历过一些重点项目的上线了。在金融行业里最重要的经验不是新的项目上线,而是项目的成熟和更新换代。我们只有经历了一个完整的项目周期,才能体会到一些看起来很平常的决定在中长期会有怎样的影响,以及组织架构的调整会怎样影响系统架构。希望你能再接再厉,在金融行业有所建树。

    2020-12-22
    4
  • Kyle Liu
    正在做和支付相关的事情,非常期待老师的课程

    作者回复: Kyle你好。谢谢关注我的课程。支付行业发展特别迅速,随时随地都有新的业务和系统方案出现,我自己也在不断学习的过程。支付行业正在改变千家万户生活的方式,几百年后再回看,现在一定是伟大变革发生的时代。也希望我们能成为历史的一员,共同见证伟大时代的诞生。

    2020-12-23
    3
  • JianXu
    非常期待任老师的后续更新!我也借这个机会能够系统的学习一下我司的支付核心系统。更重要的是现象背后任老师的思考,那些更加本质的做系统和带人的经验。

    作者回复: 感谢健总的支持。这些只是个人对金融行业一点片面的理解,肯定也有不足之处。希望能起到抛砖引玉的作用,借此宝地向各位同行学习。

    2020-12-21
    3
收起评论
显示
设置
留言
27
收藏
68
沉浸
阅读
分享
手机端
快捷键
回顶部