更多云场景实践研究案例,点击这里:【云场景实践研究合集】联合不是简单的加法,而是无限的生态,谁会是下一个独角兽
在空格初始创业阶段,人员十分缺乏,但依靠着阿里云,空格只用两周便实现APP上线,并且空格APP上线仅仅60天就获得1亿A轮融资。空格APP充分利用了阿里云的能力,在搜索、推荐和数据挖掘业务场景下的开展了探索实践。空格整体架构上广泛采用了阿里云产品,从网络层到服务器集群,再到数据库以及监控分析系统,空格无处不在借助着阿里云的能力。
“在空格初始创业阶段,人员十分缺乏,但依靠着阿里云,空格两周便实现APP上线。空格整体架构上广泛采用了阿里云产品。”
——刘博
空格APP(杭州美哒网络)技术合伙人
采用的阿里云产品
- 阿里云云服务器 ECS
- 阿里云负载均衡 SLB
- 阿里云DDoS高防IP (云盾)
- 阿里云数据库 RDC
- 阿里云分布式关系型数据库服务 DRDS
- 阿里云内容分发网络 CDN
- 阿里云开放搜索 OpenSearch
- 阿里云大数据计算服务 MaxCompute (原ODPS)
- 阿里云云监控服务
- 阿里云数据传输服务 DTS
- 阿里云日志服务 LOG
为什么使用阿里云
阿里云服务中数据库、分布式存储、在线缓存应有尽有、各服务间数据互通,稳定性可靠性有保障。
阿里云服务仅需开通ODPS,资源弹性、无需担心平台运维,计算框架丰富。
阿里云服务开通OpenSearch,自行配置即可完成,开发成本极低。
阿里云服务运维简单,无需专职运维团队,安全及稳定性高。
阿里云服务开通服务简单,几乎无运维成本。
使用阿里云服务后团队可专注于业务迭代。
关于 空格
空格是一家针对个人服务者的创业平台。在空格中,消费者可以买到手工美食、手工定制、家政、画画、陪玩、咨询等各类使用服务。同时空格作为面向个人服务的创业平台,有一技之长的用户可以随时将自己的技能和时间变成服务进行出售。空格上线仅仅60天就获得了1个亿的A轮融资,平台服务人次超过10万,还得到了中央电视台《焦点访谈》的关注。
阿里云在空格
空格服务端整体架构包括在线和离线两大部分。在线服务端的前端包括用户服务端集群、商家服务端集群和IM PUSH集群;在线服务端的后端由搜索/推荐引擎集群组成;架构底层的存储采用传统的MySQL数据库。离线服务端由日志搜集系统、离线计算平台、实时流计算平台、监控系统以及数据BI中心组成。
空格服务端整体架构
空格整体架构上广泛采用了阿里云产品。在网络层采用了阿里云云盾和负载均衡SLB,利用云盾有效拦截了DDoS等网络攻击,采用负载均衡进行流量智能分配。服务器集群由ECS服务器搭建而成。数据库方面最开始使用的是单机版的RDS,随着数据量的增长,需要进行扩容,通过采用DRDS进行分库分表,很简单地解决了数据库扩展问题。同时采用CDN来存储图片和静态的网页,起到网络加速的效果。在搜索方面采用OpenSearch,快速地搭建搜索引擎,避免了流量激增的情况下运维成本大幅度增加情况,仅需在索引配置上对相应参数进行调高或者调低便可实现扩容。服务端离线部分采用阿里云日志服务,实现在线日志实时收集并同步到离线计算平台,打通了离线到在线再回流到在线的过程。离线计算平台主要采用ODPS,可满足大规模的计算需求。其监控系统采用阿里云云监控产品,对服务器、数据库的关键指标实时监控报警。数据BI中心底层框架搭建采用的是DPC/DTS数据同步服务。
阿里云产品使用范围
为什么选择阿里云?
空格基于阿里云的搜索场景
搜索业务框架
上图是空格的搜索业务架构。最上层是对搜索有需求的服务端,包括用户服务端、商家服务端、CRM管理系统以及IM/PUSH服务端在内;应用层(业务层)是该业务架构的关键,业务存储方式分为分布式缓存和分布式表格存储;应用场景层包括关键词搜索场景、类目搜索场景、IM消息搜索场景等二十多个搜索场景;底层采用阿里云的开放搜索OpenSearch为支撑,同时OpenSearch无缝衔接云数据库RDS与ODPS,做到数据互通。
两种技术方案比较
阿里云技术方案与普通工程技术方案相比,业务层仍保持一致,但在SearchNode节点上有很大的不同,如果是自建节点,不仅需要考虑到分布式架构和业务间的隔离,还需要考虑离线的大文件与搜索引擎的衔接,同时还需要企业自行开发全量Dump和Build流程,以及建立起索引全量的实时调度,这一切将直接导致运营成本和技术复杂度的增加。更为关键一点,服务索引的在线实时需要更新做到秒级以内,自建搜索引擎实现难度系数很大。但如果采用云技术方案,一切变得很简单。阿里云的OpenSearch将服务器的扩容、全量更新、实时更新、切换调度全部屏蔽掉了,使用者只需简单的配置即可建立新的索引,底层采用RDS和ODPS可实现内部之间数据互通,做到无缝链接。
搜索方面采用阿里云OpenSearch服务,是因为其优势很多。在线方面:具有简单的API接入方式,通过HTTP+Json的服务接口与在线服务对接;内部支持复杂语法和排序规则;同时还有丰富的辅助功能,如查询分析(同义词,停用词,模糊匹配)、下拉提示等。离线方面优势体现在:通过简单配置即可创建索引,无需写代码;字段增删,修改操纵简单;并且与RDS、ODPS无缝衔接,自动管理DUMP数据;可灵活配置索引构建任务。实时更新方面:RDS、ODPS数据源支持实时索引更新,无需构建实时更新系统。运维方面:无需自建分布式集群;无需管理数据备份及冗余;无需考虑扩容。
空格基于阿里云的推荐场景
推荐场景特点
目前空格推荐业务场景具有以下要求:
- 千人千面,根据用户信息和历史行为进行个性化推荐;
- 大数据,可进行离线和实时计算,并且数据量远超传统的数据库可处理范畴;
- 分布式,可实现分布式服务、分布式计算;
- 弹性扩展,能快速扩容服务能力,应对业务发展;
- 迭代迅速,业务迭代速度极快,两周左右更新一个版本。
推荐服务整体架构
针对上述需求,空格结合阿里云服务构建了如上图所示的整体推荐服务架构。数据集成方面,采用阿里云日志服务、采云间和数据传输,将数据传输到离线的ODPS;结合ODPS对数据进行大规模预处理和加工,之后通过自建模型训练进行机器学习,将训练的结果推送到OpenSearch,实现在线检索服务。
空格基于阿里云的数据平台
数据平台架构
如图所示的是空格的数据平台的整体架构,该架构底层通过采用阿里云的ODPS、RDS、日志服务、云监控、采云间一系列服务组合做支撑,搭建了底层的离线计算框架和实时计算框架;中间层的产生的数据主要是系统数据、应用数据、业务数据;应用层针对不同需求产生与之相对应的是运营数据、渠道数据、用户数据、监控数据;这些数据通过API输入给服务层的数据门户、算法Ranking/QR、Open API系统。
空格手机门户案例
如图所示的是空格的门户系统实例,底层数据准备,采用ODPS+采云间计算流程,再到RDS数据同步,实现数据开发和同步;前端展示,基于Bootstrap + Echarts单元框架,开发自适应手机门户页面,PC和手机都可以自如访问;同时对接到钉钉[微应用],便于使用访问,进一步提高了观察数据的效率。
总结而言,阿里云服务于自行构建系统相对比,具有相当大的优势。首先数据集成方面:自建系统需自行搭建各类数据服务,打通各类数据管道;而阿里云服务中数据库、分布式存储、在线缓存应有尽有、各服务间数据互通,稳定性可靠性有保障。计算处理方面:自建系统需要自行搭建计算平台,资源缺乏弹性;而阿里云服务仅需开通ODPS,资源弹性、无需担心平台运维,计算框架丰富;引擎方面:自建系统搭建成本高,索引构建复杂,新业务迭代迟缓;阿里云服务开通OpenSearch,自行配置即可完成,开发成本极低。运维方面:自建系统运维复杂,搜索节点历来是故障重灾区;阿里云服务运维简单,无需专职运维团队,安全及稳定性高。成本方面:自建系统搭建耗时、运维成本高;阿里云服务开通服务简单,几乎无运维成本。效率方面:自建系统拖累团队精力、业务迭代缓慢;使用阿里云服务后团队可专注于业务迭代。
阿里云服务极大降低企业系统自建时间和人力成本,使得系统集成高效简单,并且为企业提供健全的配套基础服务,其完整的基础服务保证了系统及数据间互通,高稳定性的保障解放了运维人员的压力,同时阿里云提供了高效的技术支持,短时间内解决企业遇到的难题,促进企业的快速发展。
关于空格的更多实践详情:空格App亿元A轮融资背后:云上多场景技术架构实践与经验
原文发布日期:2016-03-17
云栖社区场景研究小组成员:贾子甲,仲浩。