更多云场景实践研究案例,点击这里:【云场景实践研究合集】联合不是简单的加法,而是无限的生态,谁会是下一个独角兽
对于隶属于消费金融行业的趣店而言,对于系统架构设计的需求是与其他互联网公司不同的,首先在数据层面,消费金融行业对于数据的安全性要求是非常高的;其次,金融监管上还存在着两地三中心的容灾要求。对于像趣店这样的创业团队而言,由于成本问题,自建IDC显然是不现实的,所以趣店在创业之初就选择了上云。如今,趣店对于阿里云存在着深度依赖的关系,只要有需求一来,技术团队首先会去思考阿里云有没有这样的服务,这样的方式帮助趣店将精力集中在自己的业务本身,使得产品能够迅速得以迭代。
“对于创业团队而言,创业项目从0到1的这个过程一定要以最快的方式实现,所以在发展初期时,可能没有太多的精力去维护趣店的基础架构,所以就需要依赖于阿里云强大的支持。选择借助阿里云实现上云是趣店创业将近三年以来选择的比较正确的一条路,这条路帮助趣店基于阿里云实现了对于产品的快速迭代。”
——徐章健
趣店集团总架构师
采用的阿里云产品
- 阿里云云服务器 ECS
- 阿里云负载均衡 SLB
- 阿里云对象存储 OSS
- 阿里云云数据库 RDS
- 阿里云云数据库 Redis 版
- 阿里云云数据库 PostgreSQL 版
- 阿里云消息服务(原MQS)
- 阿里云容器服务 Container Service
为什么使用阿里云
初创公司的技术资源非常有限,需要聚焦于自身的业务发展。阿里云具有较强的服务能力以及较高的可靠性和稳定性,并且能够提供较强的基础组件服务能力。此外阿里云还有较高的市场评价或者说是口碑。
关于 趣店
趣店是面向5亿非信用卡人群的金融科技公司。趣店集团成立于2014年3月,前身为“趣分期”。趣店集团依托统一且独特的风控和大数据体系,同时与国内多家第三方大数据平台合作,能够多维度、全方位识别用户信息。2016年1月,趣店集团荣获2016胡润新金融50强称号。2016年10月,金融科技百强榜单(Fintech1002016)发布,趣店居全球第二名。
为什么选择阿里云?
趣店集团的产品从一开始就是构建在云上的,其实在刚开始上云的时候,趣店的确调研了很多的云服务提供商,最终选择阿里云是基于如下几个方面的考虑:
服务的能力、可靠性以及稳定性,对于任何一个企业或者是创业团队而言,这都是比较看被重的方面。
基础组件或者说是基础的服务能力,这里面包括核心的RDS数据库支持,Redis以及MQ等等这些服务。这些服务可能有的云厂商能够提供,但是很多厂商却不能。而阿里云拥有这一系列非常丰富的产品,其基础组件的产品线也非常完善。对于像趣店这样的创业团队而言,初期最需要关注的是业务的发展,可能没有太多的人力、物力和财力去做基础架构,这时如果云服务提供商能够为创业团队提供更多的基础服务的保障,当然会被优先选择。
市场评价或者说是口碑,趣店也非常看重阿里云的口碑,这一点也是值得创业团队关注的。
所以趣店最终选择阿里云其实是对于服务能力、基础组件以及市场评价这样的几个指标进行综合性评定之后做出的选择。
趣店基于阿里云的架构优化历程
趣店为了快速地推进业务发展,在技术上采用了LAMP架构。这样的基础架构从整个业务层面来看,核心就在于后端的存储。因为对于LAMP架构的应用而言,PHP开发起来会非常快速,无论是性能还是开发成本而言都是比较不错的,需要注意的是,一定要更多地关注DB层面,首先就应该建立DB的规范。而随着趣店业务的发展,就不断地会有一些更大的挑战和新的需求出现。因为架构设计已经在云上了,此时就需要开始思考如何通过阿里云帮助企业将业务推动得更快,所以在这个过程中趣店就使用了阿里云很多其他的服务,比如使用Cache进行加速,使用MQ服务进行解耦以及进行异步化等等,在这个过程中,阿里云的各个产品线和服务是逐步地被趣店的产品使用起来的。
从整个过程来看,可以说趣店对于阿里云存在着一个深度依赖的关系。只要有需求一来,技术团队首先会去思考阿里云有没有这样的服务,有的话就会去采用。对于创业团队而言,创业项目从0到1的这个过程一定要以最快的方式实现,所以在发展初期时,可能没有太多的精力去维护趣店的基础架构,所以就需要依赖于阿里云强大的支持。选择借助阿里云实现上云是趣店创业将近三年以来选择的比较正确的一条路,这条路帮助趣店基于阿里云实现了对于产品的快速迭代。
趣店云上架构的性能及安全考量
双11对于趣店而言,其实也是一个非常大的考验。趣店每年会进行三轮的全链路压测,大约会在3月份、8月份和10月份,全程为双11做准备。
因为流量会存在脉冲,有时会出现流量的波峰。那么为了应对这样的大流量,趣店会对于一些原本长链路的服务进行扁平化处理,在架构层面进行一些调整,比如加入MQ进行解耦和削峰,当流量过来时,先在MQ中进行缓存,后端基于不同的处理能力加上不同的Worker,将MQ中的消息向后端的RDS和Redis进行分发,这样做的核心目的就是为了保障后端服务的稳定性,保证后端不被这波流量击垮。最后一部分,就是在RDS或者说DB层面,也需要进行专项的优化。
对于Redis的性能而言,面对双11的挑战是没有问题的。阿里云Redis的扩展性以及集群的模型对于性能天然上就有非常不错的支持,而Redis本身的引擎也非常强,所以性能方面的整体是比较不错的。
对于安全层面而言,趣店目前在做三个维度的安全:
链路层面,目前趣店使用了阿里的云盾服务来保证请求的安全。
引擎层面,阿里云数据库服务的底层会对于数据进行加密,即便被脱库,对方得到的也只是加密后的文件,需要有密匙才能进行解析,所以能够实现引擎层面的安全。
核心业务层面的字段加密,这部分与业务的关联关系会更重一些,比如金融行业的几个要素:身份证、密码以及手机号等等这些都是要进行字段加密的。
总结而言,趣店对于传统型数据库的需求一部分在于可靠性上,需要两地三中心的模式,需要主区域存在多个可用区,而在异地则需要实时的备库,而趣店借助阿里云的RDS实现了两地三中心的策略。另一部分的需求则在于数据库的可扩展性上,核心诉求集中在对于业务无限扩展以及海量并发数据的支持上,这部分可以使用阿里云的分布式数据库DDRS实现。另外最核心的问题还是安全,包括链路安全、引擎存储安全以及字段的安全,字段安全主要依靠业务方面实现,而链路和存储部分的安全则可以借助阿里云提供的服务实现。
而趣店对于新型数据库的诉求集中在稳定性和性能部分,也许阿里云的Redis服务在最初公测时期的稳定性表现并不算特别优秀,但是最近一年,阿里云的Redis数据库进行了大幅度的提升,进行了包括系统架构上的优化以及与大的中台系统进行合并等,整体上迅速提升了稳定性。
趣店的阿里云使用经验分享
从趣店的角度而言,在成长初期的时候,不适宜引入中间件这样的技术组件,首先因为初创公司的技术资源是非常有限的,所以需要聚焦于自身的业务发展,对于基础架构的投入不可能会非常多。在这种情况下,如果要引入中间件或者技术组件,就需要深入地了解其内部的机制,对于出现的问题需要能够跟进,如果不能达到这种能力,那么就最好就不要引入中间件,特别是存储中间件。如果在业务能够接受的情况下,就去云上通过像Redis集群这样的服务去实现,这样其实就往往能够满足需求,如果还有更高的需求,比如像容灾、主备这些需求,在业务的架构层面就需要进行更多的思考,不能完全依赖于Redis,因为任何一个版本的Redis或多或少都有出现问题的概率,针对这样的问题一定要在业务层面采取一定的预防措施。
关于趣店的更多实践详情:趣店:从0到1,数据高安全性挑战下的上云实践
原文发布日期:2017-03-02
云栖社区场景研究小组成员:贾子甲,仲浩。