• 回复
  • 收藏

关于你我贷技术这六年!

运营技术4867   社区管理 楼主 2017-8-16 16:58:57 显示全部楼层 来自:上海
  由于管理层的决定,让我们几位技术负责人平常抽时间深入前线,了解用户的声音,快速响应,提升用户体验, 所以最近大家看到有不少技术在论坛解答 , 通过这段时间接触论坛 , 确实感受颇深 , 恰巧前段时间我们这边内部出了本录咱们你我贷技术历程,觉得有必要和大家分享下,内容我就不删减了,因为这个比较接近原稿的,内容有点长,不通畅地方还望多担待 :)。


技术这六年

  主编:白隐
  编辑:醒了 、渡厄、燕青、泉刀、路飞、吕布、问天、北斗、小白、萧湘子、小明、四郎,芷若,莫愁
  顾问:顺溜、茕茕立、天行健,月老

  留存历史 展望未来

  一群人    一条心 一辈子   一件事   感动自己   影响他人


N001-目录















参与人数 2宝石 +3 收起 理由
独行者 + 1 赞一个!
NWDQYSNT + 2 赞一个!

查看全部评分总评分 : 宝石 +3

回复

使用道具 举报

大神点评(163)

玉石   超级富豪 2017-10-18 18:18:26 显示全部楼层 来自:四川成都
太长了,走马没有观花,一拉而过,浏览了了几个字眼,看到了艰辛和不易

点评

我坚持看到这里,太长了。看到了起步,努力,艰辛和刻骨铭心的记忆,不容易,点个赞!  详情 回复 发表于 2017-11-11 22:05
回复 支持 3

使用道具 举报

运营技术4867   社区管理 楼主 2017-10-18 18:17:59 显示全部楼层 来自:上海
N003-第一章 奋斗
互联网金融的崛起

★ 奚振华


回想起最早接触P2P这个概念,是从新闻联播里来的,那个新闻介绍了一种新的小额贷款模式,这种贷款模式和银行里的不一样,是一种纯线上的借款服务。在此线上贷款的用户,普遍借贷资金在几千元。如果违约,网站会公布借款人的信息,如照片、姓名和身份证号。据介绍,在此网站借款的用户主要是短期资金周转,或者为了几千块钱不想麻烦亲朋好友,向熟人借钱,在人际关系处理上会遭遇麻烦。这也是最早的P2P发展雏形。那时是2012年初看到的新闻,而后幸运的是,就在7月,我通过周格的介绍进入到了你我贷。


       刚进你我贷,从人数上感觉不像是创业公司,那时员工总数在350不到,但仔细看下部门,人员占比主要在贷款部,理财部和客服部,后勤部总的加起来50人不到。你我贷成立于2011年6月,在P2P行业里算得上是比较老牌的了。相比起早在06,07年成立的P2P,严定贵先生把握的时机是比较好的,以及下的决心是非常大,这次创业是把自己居住的房子卖掉,才有了启动资金,也是严定贵先生的第二次创业。也许这一切,对于奔5的他来说是对自己人生经验的运筹帷幄吧。


       为何说严定贵先生把握的时机是比较好的呢?个人认为,因为互联网的金融元年是2013年, 严定贵先生提早了2年进行布局,做好了充足准备,打下了扎实的基础。但如果过早的进入,会非常难熬,一方面是没有足够多的业务来维持企业的生存,另一方面是没有风投会介入进来。
       提到互联网金融元年,这一年发生了很多事,比较典型的是,余额宝在6月17日正式上线,而在18日一天就突破了100多万,这个数字对于当时是非常惊喜的,现在可能对于你我贷来说也许只是个零头而已。而对于余额宝背后的天弘基金来说,就是风口上被吹起的”猪”,被互联网+金融这个概念吹起。而被这阵风吹起之后,对于原来在国内的公募基金里排不上号的天弘基金来说,截止2016年12月31日,在规模上三年蝉联行业第一,达到8450亿元。这就是互联网带动传统行业的力量。


       P2P是互联网金融的模式之一,其他还有第三方支付,众筹,门户金融理财等等,对于传统的金融业,互联网金融对银行,基金,保险,券商造成了一定的冲击力,自互联网元年之后,银行已无法再躺着赚钱,互联网金融正在重塑整个金融生态。




忙碌的创业期

★奚振华


在IMO上,吴老师发了个信息,”小奚,快来下会议室”。于是,我按IMO上的地址去找会议室。兜了一圈才找到,因为我们刚从科技大厦搬了新的办公地点——宏嘉大厦。刚进到会议室,他们灯也没开,里面站着的是吴老师,周格,APING。看他们发愁的样子,估计是有重要任务要商量怎么去安排。那是2012年11月的样子,来你我贷也2个月了,期间做了一些销售团队通过不同的业绩计算出提成,最后结算出薪资的系统开发工作,以及通过富有平台,做了些代收代付的开发等等,对系统里面的一些主要的数据表有了一定了解。这次要开发的功能是债权转让,即针对线下理财会员合同到期需要转让债务标的的功能。那时债权转让相关的借鉴网上查不到,而整个会议讨论下来,只获取到了他们的想法,而具体的细节,如流程,程序的设计,如何展现需要会后自己去琢磨,回想起当时,一个人对现有系统及自己的方案闷头研究了3天,最后跟吴老师确认这套线下理财和债权转让方案的可行性。


在细节及一些算法的讨论确认后,便着手开发了起来。因为当时要的急,我把债权转让分了两部分开发,一部分是1次转让,第二部部分是N次转让,难点在第二部分。于是我先把线下理财和一次转让先上了,N次转让等等再进行开发。由于当时人员不多,吴老师说,这几个任务先开发一下吧,N次转让需要理财产品最低3个月到期后才会进行2次转让,这个先放放。于是开发起了一些其他的棘手任务,开发到4月份的时候,发现这些棘手任务永远也开发不完,完结一个又来一个。而我这时掐指一算,离上次债权转让上线已经2个多月过去了,感觉心慌,不对劲,去数据库查了下最近一次的2次转让是什么时候,查完一脸懵逼,是5月3日,好吧,节日没了。于是我赶紧通知吴老师,手上的还未开始开发的任务需要往后压了,否则来不及开发N次转让了,而这个N次转让,我还没开始想怎么个实现,并且他比1次转让在算法实现上复杂很多。但最终还是赶在了4月29日上了线,当时还没有测试,所以都是自测的,其实自测才花了1天吧,尽管自己测试的对情况有一定了解,但心里还是比较慌,因为通过这个功能,每天会有几十,几百万的资金自动流入到不同账户。


所以我的五一并没有过好,失眠了几天,躺着一直在思考有没有偏差的细节,以及如果出问题,该如何解决。过完节,5月4日,我赶紧查看债权转让监控数据,因为这是昨天开始就进行转让了,如果出问题,会出现两种情况,一种是理财合同到期后,总金额不对,还有一种就是到期后,没法结算。但幸运的是,这些情况都在用户无感知的情况下,都被我及时修复。当时我的解决方案是,我每天会把所发生的转让数据检查过去,发现一个问题,解决一个问题。到后面转让的数据越来越多,我每天就坚持花三个小时抽随机抽里面的一部分数据进行验证,像这样坚持了3个月,其实一个月基本就趋于稳定,主要是不抽查这些数据的准确性,心里就不踏实。尽管已经快过去了4年,但那段岁月还是印象深刻。


       总的来说,在任何一家公司还处于创业期的时候,各项资源都是匮乏的,需要每一位团队成员都要有强大的主观能动性,公司就像自己孩子,要有不求所图的奉献。而在工作原则上,讲究的是要新,要快,快速迭代,从而对商业逻辑能得到快速的验证。




技术的选型

★奚振华


你我贷最开始的网站并不是自己开发的,也就是PHP 1.0之前,是吴老师找了一个用PHP写的开源CMS软件自己进行的二次开发而来。而CMS系统主要的模块有,用户管理,文章分类管理,文章管理,网站框架管理等等。因此对于最早期的P2P官网来说,只需要在原有的CMS系统的基础上,前端增加支付提现,投标,标的显示等功能,后端开发代收代付,借款产品,理财产品,进件,审核,发标以及其他一些企业日常管理的功能,如薪酬核算,报表等等模块。


       企业从成立到过了半年,公司人员从几人到了几十几百人,IT部的建设迫在眉睫,那时吴老师已经招募了APING,从事PHP的开发。由于基于开源CMS开发的P2P网站,在代码的隐秘性上不够安全,于是就开始开发你我贷的1.0版本。当时APING用的是ThinkPHP框架开发的你我贷1.0,差不多这个版本沿用了2年。后面公司挖来了李盛超团队,想做第三方支付的业务,但因某些原因没有做成,就整合进了PHP团队。此时大家开始着手考虑,如何借助于JAVA语言使系统更为强大?起初的方案是这样设计的,CodeIgniter+RPC+Spring+Ibatis+MYSQL架构的,也就是说,MVC放在PHP的CI框架中,做业务开发,而JAVA则作为底层组件及数据持久化,对外提供服务。这样既能体现PHP快速开发的优势,也能通过JAVA保证系统的稳定,而PHP系统部署的时候,是不需要重启服务的,只需文件覆盖就行,用户无感知,因为它是解释性语言。但后来这种方案被否决了,主要的原因是PHP开发人员实在太难招,而JAVA开发人员相对就多很多。以及两种语言的开发团队,在人员调动上也很难管理,于是就干脆全部由JAVA代替。


       写到这里,也许会感觉公司在技术方面折腾了不少,但实际上,真正的折腾才刚刚开始,后面你我贷系统的2.0,3.0,4.0,每个大版本的升级,都经历了诸多事情,背后都付出了巨大的努力和汗水,也许到这里才是一个全新的起点。



回复 支持 2

使用道具 举报

tumuwuya   活跃之星 2017-8-16 17:33:27 显示全部楼层 来自:
首先感谢你们的努力。正因为有了你们,我们才能安心。
其次,本文确实有点长。所以我先回复,然后再慢慢细看。
参与人数 1宝石 +1 收起 理由
朱朱 + 1

查看全部评分总评分 : 宝石 +1

回复 支持 2

使用道具 举报

吃嘛嘛香   发帖之星 2017-8-16 17:54:54 显示全部楼层 来自:上海
真多,留着慢慢看看
回复 支持 1

使用道具 举报

运营技术4867   社区管理 楼主 2017-10-18 19:41:09 显示全部楼层 来自:上海
N004-第二章 重构之路

五、微服务4.0

★奚振华  

2016年7月,老白正式提出微服务4.0建设的目标。而微服务在当时冒出了一些相关的文章,但是案例并不鲜见。包括我们也去听了一些微服务相关的讲座沙龙等等。但当我们在讲座上提问后,发现对方其实也还是在摸索阶段,手上也并没有相关的成功案例,而我们把平时所遇到的问题提出时,对方也是模棱两可,我们也未能获取到一些较好的方案。于是在后面的微服务规划及开发的过程中,对于网上的文章,也就是让自己的思维发散点,最终还是需要在当我们自己遇到问题时,去琢磨,去思考,去探索。


而我们这次为何要改造成微服务,主要是以下2个痛点:

1. 团队越来越庞大,就网站这一块,由原来几人已经发展到接近50人,可以想象这50人日常开发对于堆砌的功能如何之多,所以大部队行动起来也就没法日行千里了。

2. 服务化3.0还是不够彻底,大模块之间耦合虽然已经解开,但各个大模块内部还是一锅粥。


所以基于以上两点,我们最终的目的是要将庞大的团队,将系统拆分成小分队,回归到日行千里的状态,团队自治,百花齐放。

在拆分规则上,自然跟业务领域要联系紧密。原则上,就是将相对比较独立的,且从前端到后端由专门的队伍全权负责,包括数据库都独立出来。(而核心业务还在ORACLE,其他业务切到了postgresql),这样无形中也强制责任明确了,小队伍专心投入,将各自服务做精。但这当然也在无形中带来些麻烦,如增加管理,运维,沟通,维护的成本,同时在对于事务的处理上也增加了难度,需加强内部公共约束,提高队伍素质,保证服务稳定及自动化建设,以及通过补偿及两阶段提交等方式折中解决分布式事务,尽量走最终一致性。而在数据库层面进行了垂直扩展后,至少短期内解决了数据库单兵作战的问题,性能方面提升的同时能做到真正的故障隔离。


如在运营系统内部,我们根据业务特性进行了拆分。拆成以下几大块: 1. 会员中心 2. 活动中心 3. 微信平台 4. 优惠券中心 5. 离线平台 6. 合作中心 7. 开放平台 8. CMS系统


但可喜的是,在我写这篇文章的时候,最后一个4.0系统,会员平台在昨日已经成功上线,2017年5月20日。

至此,会员4.0系统的上线,代表着运营研发这边,整体的微服务已经雏形出来,后面还剩余了对前端包的拆分及业务监控的建立。



1112.png
4.0 架构图


点评

????  详情 回复 发表于 2018-6-24 03:12
回复 支持 1

使用道具 举报

财迷心窍   世界首富 2017-8-16 17:04:41 显示全部楼层 来自:陕西
感谢分享

点评

好迅速好迅速  详情 回复 发表于 2017-8-16 17:05
参与人数 1金币 +3 收起 理由
小财神 + 3 解决零回复,赞一个!

查看全部评分总评分 : 金币 +3

回复 支持

使用道具 举报

运营技术4867   社区管理 楼主 2017-8-16 17:05:51 显示全部楼层 来自:上海

好迅速好迅速:lol
回复 支持

使用道具 举报

漫步者   活跃之星 2017-8-16 17:28:54 显示全部楼层 来自:上海
文章好长,慢慢看
参与人数 1金币 +1 收起 理由
小财神 + 1 解决零回复,赞一个!

查看全部评分总评分 : 金币 +1

回复 支持

使用道具 举报

炳凡   世界首富 2017-8-16 17:44:32 来自手机   显示全部楼层 来自:上海
文章好长,卖
回复 支持

使用道具 举报

炳凡   世界首富 2017-8-16 17:45:40 来自手机   显示全部楼层 来自:上海
文章好长,正因为有了你们,我们才能安心投资。
回复 支持

使用道具 举报

梨涡浅笑   活跃之星 2017-8-16 17:50:53 显示全部楼层 来自:山西晋中
先留个记号,以后慢慢看
参与人数 1宝石 +1 收起 理由
朱朱 + 1

查看全部评分总评分 : 宝石 +1

回复 支持

使用道具 举报

金融光头   活跃之星 2017-8-16 17:53:24 来自手机   显示全部楼层 来自:共享地址
为什么这么长,就不能分十几个帖子发吗?
回复 支持

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版奖励规则

HOT • 推荐

关注0

粉丝21

帖子155