2012 年,正值 P2P 火遍中国的时候,宜信做为中国首家 P2P 平台,已经在这个领域耕耘了 6 年。2015 年美国时间 12 月 18 日上午 9 点 30 分,宜信公司旗下在线 P2P 网贷平台宜人贷正式登陆美国纽交所,成为国内互联网金融登陆海外市场的第一股。
宜信创建于 2006 年,总部位于北京,是一家从事普惠金融和财富管理事业的金融科技企业,在支付、网贷、众筹、机器人投顾、智能保险、区块链等前沿领域积极布局,通过业务孵化和产业投资参与全球金融科技创新,公司创始人兼 CEO 是唐宁。
以下内容是记者对宜信技术研发中心数据库架构师韩锋的采访。
第一次见到韩锋的时候,他的穿着很随意,这也是大多数 IT 人员的常态。1999 年毕业的他,在 IT 圈里已经算是一个老兵了。
在职业发展初期,他一直从事软件开发工作,后来逐步对数据库产生了浓厚的兴趣。在工作后的第七年,韩锋做出了一个决定,从软件开发转型为 DBA。
从最开始的数据库基础运维开始,到后面的优化、设计、架构。现在主要精力是从事与数据相关的架构、开发、管理工作。
17 年的 IT 生涯,他经历过传统软件开发商、通讯类外企、互联网企业、电商平台等多种类型公司。对他而言,丰富的职业经历,使他收益颇多。不仅仅是技术上,更多的是综合能力的提升。
除此之外,他还常活跃于各种技术社区。作为一个技术布道者,他也非常愿意将技术传播给更多的人。闲暇之余,他还笔耕不辍,将自己多年的心得汇集成书。
韩锋介绍说,宜信作为一家金融科技企业,技术的重要性不言而喻
。
目前公司 IT 基础设施及数据库等等,正处于如下阶段:
-
基础设施的发展
,走过了物理机、虚拟机、容器化到云化的过程。
-
硬件平台上,
计算层是以 X86 为主,存储层逐步放弃使用商业存储,改为分布式的解决方案,部分场景下也使用了超融合架构。
-
数据库方面,
主要以 MySQL、MongoDB、Redis 为主。
-
大数据方面,
使用了 Hive、HBase、ES、Spark、Storm、Impala、Kafka 等。
针对云战略层面,
公司有自己的一些规划,目前仍以私有云为主,只将部分业务放在了公有云上,但仅限于少量的非核心业务。宜信也在筹划自己的金融云战略。
对于超融合技术,
使用目的是为了提高宜信上线服务的效率。超融合可以提供很好的弹性,但其性价比并不高,且在弹性达到一定的规模后,会受到限制。在特定非发展阶段,如果中小型公司想快速扩张业务,用超融合还是比较合适的。
在数据库方面,
公司越来越多业务考虑用开源数据库解决方案,特别是 MySQL,也包括一些 Redis、MongoDB 等 NoSQL 方案。
对于大数据领域,
从早期传统的数据分析报表,到 BI 分析、数据挖掘、机器学习等等,宜信正在不断摸索实践,探索在金融领域如何提供更好的服务。旗下宜人贷的“极速模式”,正是风控模型在大数据领域的成功实践。
作为数据库的一个老兵,韩锋经历了很多很多。他特意强调,数据是企业的命脉,数据库的重要性如何强调都不过分。
他以一次数据库迁移为例,向我们说明了 DBA 工作的不容易及给我们带来的种种启示:
-
详细的技术方案。
在整个迁移过程中,最消耗精力的是梳理整个迁移流程:包括制定规范、迁移流程,跟所有相关部门核对方案。
-
实施计划。
具体到实施计划要尽可能的详细、完善。例如,有很多应用会连接到数据库,但有些 IP 地址并不在登记信息范围内。
因此,在迁移准备期就需要注意排查。这一工作是非常消耗精力的,也表明先前工作存在不完善的地方。
-
部门合作。
与相关部门核对迁移方案、做好沟通、协调工作。
-
做好预案。
在迁移前,团队做了很多的预案,包括正常迁移流程,以及出现问题后备用的迁移流程,以及备用的回退方案。
在正式迁移前,团队大概一周演练一次,前前后后演练了四五遍,每次都是半夜去演练。
演练完之后立即做好记录,包括它的操作步骤,一步一步地去细化,最终形成了一本厚厚的迁移文档。最后,真正迁移的时基本上不用敲命令,只需把脚本粘过来就可以了。
韩锋再次强调,在过去,专利、技术或者运营模式是企业的命脉,而未来数据也是企业的命脉之一,如果企业没有掌握数据只能被动发展,所以数据管理就显得尤为重要了。
对公司而言,数据不仅仅只保存在数据库中,它可以存在不同的地方,以各种形态存在。它可能是一个文件,可能是多用户上传的资料片、图片,还可能是用户的一些语音。这些数据不仅它的位置是分散的,形态是不一的,价值也是不一样的。
面对纷繁复杂的数据,如何进行数据管理呢?
常见的管理方法主要分为三类:
-
自上而下。
传统的企业,银行、证券、金融类往往会这么做。即成立一个类似于建模室或者数据模型部门这样的组织,然后会有专业的人帮助他们做模型设计,做规范。
这样的办法对数据的控制力度会很大,但是,会有些不灵活,而且人力投入过高。
-
自下而上。
像很多互联网公司,通常会有自己的一套系统,针对业务模式自下而上进行管理。
-
从中间出发。
也有些公司,从开发入手,引进一些建模工具,通过它往上推出业务模式,往下构建物理模型。
以上这些方法放到宜信中都会有问题。宜信不像传统企业,它的发展速度比较快,所以会有大量的业务需要变动,用自上而下就行不通。
而自下而上大都用于单一业务系统,这些是基于数据仓库的,而宜信的数据仓库没有统一,很多开发宜信是不建模的,所以从中间做数据建模也很难。
目前,他正摸索一种适合宜信发展的数据管理方式,从大方向考虑,会选择从下而上的方法去做。出发点把公司内部数据中共享的、非独有的拿过来,然后再去收集各自领域的数据,最终逐步形成统一的数据视图。
韩锋将 DevOps 在宜信的应用阶段,简化为“四化工程”。所谓“四化工程”,是指如下四个层次。
很多企业的 DevOps 实施中,也都大致经历了类似的四个阶段。
“文档/标准化”阶段:
这一阶段,往往是企业经过了初期的“人肉”模式后,随着规模的扩大,运维遇到很多问题。
因此,原有的手工操作被逐步规范下来,形成操作标准,并通过文档化的步骤,将标准沉淀下来。后续操作,人员只需要遵循文档即可。通过这种方式保证了运维的质量,提升了响应效率。
“脚本/工具化”阶段:
尽管在第一阶段,实现了指定标准文档化,但运维工作仍然需要大量人工成本。当运维量进一步增大后,如何减少手工操作,加快运维效率就成为重点。
因此,在这个阶段,将文档化的标准操作,通过脚本或者工具的形式固化下来,可以大幅提升运维效率。
“自动/平台化”阶段:
虽然通过工具脚本是可以完成运维工作,但仍然需要人工触发。为完成某一具体运维场景,往往需要人工执行一系列的脚本或工具调用,这也耗费了大量人工成本。
为了进一步提升效率,考虑引入平台自动化。通过梳理运维工作,将一系列工具、脚本整合到统一的平台中,即可完成整个运维操作,甚至可与监控等系统联动,实现自动化运维动作。
“智能/云化”阶段:
这一阶段更多是从运维智能性及资源提供的形态角度出发。在自动运维的基础上,通过引入智能分析能力,可预测故障发生,主动采取运维动作。可评估整体资源使用,更合理地分配使用资源等等。
至于云化,由于是将基础设施抽象出来,在运维层面能提供更大的灵活度,可更好的满足业务快速发展及最大化成本收益。