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