文档章节

美柚:最懂女性App背后的混合云架构与大数据服务

_夜枫
 _夜枫
发布于 2017/03/15 10:19
字数 3867
阅读 32
收藏 0

直播视频:

dfed582b166ce5232213a035052465f36c7cf64b

(点击图片查看视频)

 

幻灯片下载地址:https://oss.aliyuncs.com/yqfiles/5b0a3ac1717e9f25bfd528e1abb60f9c.pdf

 

3月25日云栖社区在线实时分享顺利结束,本次美柚带来的分享包括如何充分利用现有机房服务器资源与阿里云产品组建混合云架构,实现快速部署与大数据的处理与计算服务。同时也详细介绍了美柚在多维度用户数据分析处理和大数据智能挖掘技术的实践经验。本次视频直播的整理文章、视频、幻灯片整理完毕,如下内容。

 

混合云

 

2dae422850860cfa99a5f3f35ff21287fd7442d2

图一美柚混合云

 

在2013年美柚成立之初,行业内云生态圈并不是十分完善。因此,最初的架构采用自建机房的传统开发方式,至今为止,托管机房内服务器数量达300台之多;同时,为了迎合大数据发展的趋势,美柚也搭建了自己的Hadoop、Spark、Storm、Kylin等对应的大数据处理平台;在数据库方面,采用MySQL、MogoDB、Redis、CounchBase等主流数据库。在2014年,接触阿里云之后,逐渐采用阿里云的产品,从最开始接触公测的ADS到现在使用的ECS、MaxCompute、RDS、分析型数据库、TAE、阿里云云盾等等,目前美柚形成了混合云的模式,既有一定规模的托管机房,也积极的使用阿里云的产品。

 

72dd323a4b81997237d5add6d3062e5113eae749

图二 服务分布

 

云上设施和云下设施分工各不相同。因为最初的架构是在托管机房上建立的,所以现在主要的App接口、社区、广告系统、用户中心、柚币中心以及包括App和社区的运营后台都部署在托管机房;同时搜索、推送、实时监控、反垃圾等最初建立起的基础服务也是部署在托管机房里面的;此外,托管机房内也有一些如Spark、Hadoop等大数据处理平台,但集群规模相对较小。

美柚的整个官网全部部署在阿里云上,同时美柚电商柚子街也是基于阿里云建立的,包括整个电商平台和运营后台、招商系统。此外,还基于阿里云搭建了BI系统。最后,为了缓解自建大数据集群的规模较小的情况,积极采用阿里云大数据平台对数据进行分析和处理计算。

 

混合云之间的数据交互

 

a8b699925f9f58b8ae355fd04ef81975068bc058

图三 混合云之间的数据交互

 

上图是托管机房和阿里云之间的数据流通情况,可以看到每天会有一部分数据包括业务日志、数据库的增量数据会从托管机房流向阿里云。数据流向阿里云的ODPS后,在ODPS内进行一些数据计算和算法模型的训练。然后再将计算的结果导入ADS和RDS中,其中导入的ADS支持BI系统,并且ADS能够多值列查询和毫秒级的实时响应,有利于生成BI报表;另一部分数据存入RDS中,不仅降低了存储成本,同时也提高了数据的安全性。经阿里云计算和处理后,部分数据还需要回流到托管机房的数据库和数仓内,回流的目的是因为现在还有一些比较重要的服务还在托管机房内部署,并且从机房调用可以极好的缩短调用的延迟。每日从自建机房流向阿里云的数据量相当大,对于一些重要的数据如用户数据,在自有机房和阿里云上进行了双活,首先从业务数据库先同步到自建机房的HBase集群中做一个备份,然后在阿里云上也做了一个备份,这些数据以一小时为间隔进行同步,以此确保重要数据的安全。

从机房到阿里云上采用逐类更新的方式,准实时的数据依旧在托管机房处理;对一些大数据计算和实时性要求不是很高的数据将其流向阿里云,借助阿里云超强的计算能力和超大的集群规模进行计算处理,同时这些数据会在T+1日进行更新。

 

API实时监控

 

5f70f2a750fae45bd17f3ed269281f56de59c632

图四 API实时监控

 

随着美柚不断发展,系统逐渐受到一些恶意攻击,包括恶意抓取、DDoS攻击等,因此API实时监控显得不可或缺。目前通过使用阿里云盾DDoS高防IP,有效地抵御部分网络攻击,并可以进行流量清洗和分析。在此基础上,美柚还自主研发了API实时监控系统,监控系统的数据是来自托管机房的实时处理计算平台,通过监控系统可以实时观察服务端响应时间、处理数目以及各个接口的调用分布。通过全链路实时监控服务质量,保障用户极致体验。同时作为一个移动互联网公司,美柚将API实时监控从传统的服务部署转向移动化,在移动端Android/IOS进行实时业务监控与预警,使得开发和运维在任一地点任意时间都能对实时业务了如指掌,可以第一时间发现问题所在。

 

大数据智能挖掘

 

687517fe2cca8722ff362434f2ce0e92f3cc2d41

图五 大数据助力社区电商生态

 

上图是美柚大数据智能挖掘的大致框架,作为一个社区电商一体化的公司,美柚利用大数据挖掘打通整个生态系统。以用户为中心,通过对用户的深入分析,形成用户画像,深入理解用户需求,个性化的改造社区使其更有温度、更具黏性。同时基于对用户的理解,使得社群电商能够进行精准化的推荐,深入了解用户的需求。基于对女性用户的理解,对用户做了多维度的划分,品牌商和广告主精准的投放广告,可得到更高的收益。

美柚采用两套系统存储用户数据,在阿里云上,用户数据主要存放在ADS上,将用户特征存放在ADS的多值列中;在自建机房内,采用Kylin中的Cube来存放用户的基础维度的特征,便于快速的查询。

 

多维度用户数据

 

美柚BI系统显示其用户遍布全国各地,包含港澳台,用户年龄段从70前到00后均有,其中95后居多,用户身份有少女、备孕、怀孕、辣妈,形成了完整的女性生态系统。

5a83b9fbde04f3cf5c1a3291eaf8030d17127dd5

图六 多维度用户数据

 

美柚基于女性生态系统,形成大量的多维度的女性相关数据。用户的经期、体重、体温、孕期日志记录数据,加上社区内收集的用户的浏览、发帖、回复等数据,同时再结合用户的婚姻、年龄、星座身份、手机设备等基础信息,还有一些社交媒体上抓取的重合数据,补充完整一个用户全部数据。基于上述完整的数据,形成用户画像,深入洞察与服务女性,做最懂女性的App。

 

e765a18b41b6b3f068099e82195af891e9e94c21

图七 用户记录分析

 

上图是具体的用户记录分析。最左边是用户的好习惯,通过用户在App上记录的好习惯,建立任务系统,鼓励用户继续将好习惯保持;中间图表记录了女性不舒服的状态,上面有很多选项,同时用户也可以自定义自已的情况,通过对图表的的跟踪,可以对女性的健康状态进行分析;右边的图表显示了一些私密信息,做到个性化定制,满足不同需求。目前美柚月活跃用户中使用记录的占比达到84.8%,通过数据分析可以帮助宝妈们科学备孕,关爱女性健康。

 

37a011aa3a8e01abc36629ad93e782b9b11fc4eb

图八 多维度用户标签

 

通过对女性在生态系统的分析,制定多维度的用户标签。其中基础属性标签包括女性的年龄、婚姻、身份、星座等。行业标签是基于对用户行为的分析和第三方数据的补充形成的;兴趣标签,可以帮助理解用户在社区和电商平台行为记录。目前美柚总共具有200多类用户标签,通过这些标签可以形成非常丰富的用户画像。

 

大数据应用

 

3e1fac210bc15ff0bfbc93842e9675e905a884e5

图九 产品地图

 

上图是大数据产品地图,图中包含了美柚利用大数据衍生的产品。其中已上线的BI系统,是通过大数据分析形成的报表类,它能够加深对系统的理解和辅助下一步业务决策的进行;另一个是反垃圾算法,通过大数据算法对一些垃圾广告智能识别、处理。还有实时业务监控、首页推荐、个性化推送、个性化搜索等功能。同时情感分析、舆情监控、关联推荐、SSP、DMP、Ad Exchange等功能还在开发中。

 

87a401d7fdb85d233e37f38ae83bd1758f7e9278

图十 反垃圾算法

 

这张图展示了美柚利用大数据进行反垃圾算法的整体框架,主要包含两部分。虚线上方是反垃圾算法的训练流程,最开始是基于NLP自然语言处理进行,首先对文本数据(垃圾贴和正常贴)进行分词,这些分词需要定期更新,然后再对帖子进行特征处理和选取,将提取之后的特征送入分类器模型训练,其中分类器包括贝叶斯分类、逻辑回归分类等,通过训练输出分类模型的结果。这些训练最初是在自有机房进行的,后来随着数据量的增加,已将部分模型训练迁移到阿里云上。

虚线下方是机房内实时计算的处理流程,用户发帖和回复之后,将其写入Kafka消息队列,首先会对白名单用户过滤,然后一是依据分类模型的训练效果,对文本进行识别和分类,对垃圾帖和非垃圾帖进行判别;另外的方式就是通过Simhash算法对文本相似对度进行计算,进行相似贴统计,最后通过这些策略汇总,生成整个反垃圾算法。近期美柚对该算法又做了进一步的迭代,对用户的昵称、发帖时间间隔、发帖行为进行分析,更好地进行了预防垃圾帖。

 

通过阿里云提供的丰富的开发套件和算法库,大大缩短了美柚从想法到产品的时间。

 

QA环节:

 

1、美柚目前采用的是混合云架构,未来有可能将全部架构迁移到阿里云上吗?

答:美柚采用混合云的一个原因是因为公司在13年就已经发展起来,自有机房已经具有一定的规模,由于阿里云的高性能、高计算,才采取了混合云的架构。短时间内,依旧会保持混合云的架构,一方面是希望技术团队继续发展大数据计算的能力,另外一方面是否全面迁移到阿里云上,还是根据以后的业务发展做决定。

 

2、美柚上面的帖子可能会有亿万的浏览量,美柚App是如何应对如此之大的阅读量的?

答:在提升移动端体验做了很多的事情,移动端对延迟非常敏感,首先在客户端做了很多优化,在缓存和页面加载上都追求极致;其次,参照阿里的手淘,搭建了HTTP DNS,防止运营商劫持,同时也能缩短DNS的解析时间,在服务端也进行了很多优化,对数据层进行分离,使用高效的缓存。

 

3、美柚有多少专职运维人员?

答:美柚目前专职运维人员只有三个,借助于目前的混合云架构,通过阿里云的运维监控、运维报警等机制,使得运维人员在自建机房和云上运维游刃有余。

 

4、美柚目前的美柚女生助手、柚宝宝孕育等五个App在架构有什么区别?

答:最开始研发的几个App的接口都是放在自建机房的,去年新上线的电商App是完全搭建在阿里云上的。

 

5、美柚如何处理高并发的场景?

答:以社区为例,每天的发帖回复量都是很大,每天晚上的九点到十一点是一个访问高峰。为了应对高并发场景,在服务端,进行了很多分层和模块化的设计,比如将数据层和业务层进行分离;在开发语言的选择上,使用轻量级语言PHP在社区做一些业务级别的实现;复杂的、异步、延迟比较大的处理下沉,用Java和C++进行实现。

 

6、Node.js在美柚的使用场景?

答:Node.js用的相对较少,主要用于前端和后端的分离,去年年底才开始使用,目前还处于尝试阶段。

 

关于分享者

 

黄益聪 美柚技术总监

 

美柚通过社区+工具+电商为广大女性提供一站式综合服务,满足女性群体交流沟通、知识获取、购物三大需求。《互联网周刊》发布2015年度APP分类排行榜,美柚位居女性APP第一位。同年12月,在清科集团、投资界主办的2015中国最具投资价值企业50强评选中,美柚凭借在女性市场的卓越表现从3000多家报名企业中脱颖而出,获评“2015中国最具投资价值企业50强”,截止到2015年7月,美柚用户超过1亿,日活跃用户500万。

相关系列文章:

本文转载自:https://yq.aliyun.com/articles/11259

_夜枫
粉丝 10
博文 506
码字总数 0
作品 0
朝阳
后端工程师
私信 提问
1亿妹纸大姨妈的神器美柚:上云要切合业务需求,更要货比三家

美柚 ——中国女性垂直APP中的佼佼者。 今天,我们有幸采访了美柚的VP黄益聪先生,听听他来分享下美柚如何基于业务以及又是如何货比三家来选择云服务商的故事。 Q: 对于您自身的业务,有什么...

YUYONGTAI
2017/07/11
0
0
云场景实践研究第41期:柚子街

作为美柚旗下的电商导购项目,柚子街在上云之后,数据的响应速度得到提升,用户体验得到提高,同时降低了运维成本。本文将带领大家一同了解基于阿里云柚子街所搭建的电商引流的后端架构。 “...

场景研读
2018/02/06
0
0
美柚引流宝妈女粉,淘宝客微商不用引流脚本也能日吸500+

这篇文章是针对于引流女性粉丝,特别是宝妈粉而特别出的一篇文章,希望能给各位淘宝客、微商等需要引流女性宝妈粉的朋友们一些思路。 这个技巧主要还是从粉丝客户群入手。 由于客户群是宝妈女...

卢松松博客
2018/06/26
0
0
App丛林法则:如何抓住“女人心”

手机、钱包、化妆包,在女性出门必带的三样法宝中,哪样更重要?或许有超过一半的人会选择手机。在手机上觅宝贝、在手机上比价、在手机上下单、在手机上和闺蜜分享战利品……如今的手机,就像...

科技创造
2014/10/09
151
0
OSC 职位推荐:程序员如何才能更了解女性

常听程序员 GG 抱怨女人心,海底针。其实也没那么难懂啦。要想更加了解女性,当然就得多接触她们,那去哪能接触到更多的女性吗?对,就是去美柚,一个专做女性社交的社区。 而在美柚,你除了...

oschina
2015/08/13
3.5K
27

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
630
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
34
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
19
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
57
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
62
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部