摘要:介绍直播项目开发的平台架构、前台技术、数据中台和运维保障支持等实践。
新年伊始,新冠疫情令许多企业遭遇生存危机,而每次危机和逆境,也都会带来新的商业机会。宜信财富迎难而上,勇于尝试线上销售新“路数”——直播带货,实现业绩逆势增长。2020年2月,宜信财富实现规模业绩同比2019年2月提升24%、环比1月增长8%;新增客户数同比2019年2月增长82%、环比1月增长23%的好成绩。回顾过去一个月,宜信财富没有浪费这场危机,做到了“危”中觅“机”。
下面我们就带大家了解一下宜信财富逆势增加背后的技术秘密。本文主要从本次直播项目开发的平台架构、前台技术、数据中台和运维保障支持这几个方面做了简单的总结和分享,希望可以给大家带来一些思考和启发。
第一部分:宜信财富直播平台架构演进之路
在此次项目中,直播平台的架构演进主要是应用服务层的演进,包括以下三个阶段。
1、第一阶段:在项目初期,为了产品快速上线、快速验证,架构是比较简单直接的,就是“单活动架构”,如下图:
“单活动架构”快速实现了产品的核心功能,可以提供给种子用户快速验证,但随着验证反馈->快速迭代,一旦业务量上来并提供给大范围的用户使用,这种架构也就不再满足需求了,它的主要问题是:无运营管理能力,每次业务调整均需要由研发同事上线来解决。每举办一场直播活动都需要技术同学开发一次、上线一次。
2、第二阶段:随着直播活动的逐步推广,使用用户增多,直播频率也越来越高,“单活动架构”在应对业务量上涨方面已经越来越吃力。因此本次优化的思路就是解耦,让共性通用的业务字段可以进行配置管理。这个阶段在这里暂且称“简业务架构”(因为它只能覆盖业务范畴的一部分)。
“简业务架构”虽然在一定程度上解耦了基础服务与业务服务,但业务服务能力还是过于单一,不同场直播活动稍微的业务特殊变化,都会带来前端的定制化开发改造。
3、第三阶段:为了使“基础功能服务化,复用服务化能力”去进一步提升直播活动快速生成快速发布的运营效率,本次优化的思路就是“服务化”。根据之前的业务积累,构造了“直播模板孵化器”和“实现与已有运营配置中心打通”,让运营同事可以通过后台直接构建一场直播活动,并且构建成功后运营配置中心可直接生效。依据以往经验,一般一个业务平台技术发展到这个阶段,后续基本就可以依据产品的变化而迭代和开发了。所以这个阶段我们可以称之为“服务化架构”。
“服务化架构”已大大提高了可靠性和可用性,但是随着服务的深入使用和在线直播业务带来的实质用户增长数据,以直播平台为中心衍射出来的与外部系统交互的需求会越来越多。因此,此时需要技术研发人员对自己辛苦搭建的“服务化架构”进行复盘回看。需要对服务进行拆分、治理,提升它的监控能力、降低它的运维成本、思考它对外开放的标准。下一个阶段是从“服务化架构” 向“微服务架构演进”。
整个架构三个阶段的演进在一个月之内完成,目前来说在业务表现和用户体验上看是成功的。不过从来没有一个完美的架构能够一直支撑业务的发展,架构是动态的、变化的,是随着业务的发展不断演进的,不同阶段需要不同成熟度的技术架构去支持业务 ,从服务升级和技术优化两个方面共同完善我们的产品。
第二部分:宜信财富直播平台前端技术实现
前端主要处理页面的逻辑、样式的控制,以及给服务端发送用户的操作数据,本次项目主要是将直播系统接入到宜信财富app,实现app端用户观看直播,从而进一步支持财富端业务。在这里我主要说一下我们在直播项目中主要的技术点和遇到的坑。
1、带监测代码的二维码图片合成的技术实现
获取到动态带员工id的二维码,通过css布局,使背景图中围绕二维码周围的文字图片对齐,再通过canvas的技术进行合成,合成中需要调试图片大小、清晰度,以及生成后二维码及文字的准确性。
2、vue的双向绑定的特性在直播中的应用
vue.js 是采用数据监听结合发布者-订阅者模式的方式,通过Object.defineProperty()来监听各个属性的setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。我们来看Object.defineProperty()这个方法。
已经了解到vue是通过数据监听的方式来做数据绑定的,其中最核心的方法便是通过Object.defineProperty()来实现对属性的监听,那么在设置或者获取的时候我们就可以在get或者set方法里,调用其他的触发函数,达到监听数据变动的目的。(有兴趣的小伙伴可以再深入研究,这里篇幅有限只做简单介绍)
在整个直播项目中前端有很多地方都应用到了vue的机制,比如用户评论留言的展示、对用户信息的存储判断,包括是否实名制、是否绑定理财师、是否做过风险测评等信息。这里通过留言评论展示简单说一下,评论展示前端代码。
通过vue指令 v-if来判断是否有留言,msgListObj为留言数据,通过接口获取,v-for指令来循环显示出留言,nameChange为自定义过滤器,将用户姓名以姓**的形式匿名展示,过滤器代码如下:
3、埋点技术在直播上的一些新扩展(或解决的数据埋点问题)
以往只在APP里打通了渠道,埋点服务可以获取到用户在APP端登录的id,然后通过id记录到客户行为,但是在APP外,页面行为没有关联到用户。此次主要在APP外,获取了用户id,并且关联到埋点服务。
4、直播中遇到的一个问题
首先描述一下整个问题的经过:
第一次出现的问题:在某一天的回放视频播放过程中,突然画面切换了,导致视频内容不正确,发现问题后第一时间排查。发现同时间有新版发布,但是发布版本中没有任何关于直播流内容的修改,通过回退了版本,暂时解决问题。
第二次出现的问题:发布版本修改的内容部分客户端生效,还有一部分不生效。结合上一次的问题,我们排查了前端代码、线上代码、git版本,都没有查出问题。最后发现,手动清理CDN缓存,就解决了不生效的问题。
在这里简单介绍下什么是CDN。CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
定位到问题原因,主要是因为在直播使用的域名,为了缓解服务器缓存压力,采取了CDN缓存机制,缓存页面路径中的html、js、css等文件,缓存时间为2天,但是在频繁上线操作的情境下,CDN的缓存会有负面影响,就是由于缓存,用户看到的内容不是最新的内容,而是缓存的内容。
为了解决这个问题,我们在每次发布版本的时候都会针对现有的地址清理缓存,然后在时间允许的情况下,重新生成一个新的链接,确保没有缓存。针对每天直播任务的频繁上线发版,我们最后开发了一套后台直播配置系统,把直播中需要的各种资源都从后台接口获取,使直播真正成为一种模板形式,完全通过配置即可,不用再频繁上线发布版本,从根本上解决了CDN缓存的问题。
其实这期间还发生了很多很多的事情,也第一时间解决了很多的问题,很多事情可能不值一提,也有很多事情一发生就牵动好多人的心绪,不论过程如何,就目前看来整个的支持来看是成功的。
第三部分:数据中台在直播项目中的实践
宜信财富在财富管理行业直播带货的实践,获得开创性成功,目前已经举办30+场直播,并带来了巨大的收益,同比去年销量不降反而有提升!线上对比线下,有非常明显的优势,产品服务可以借助互联网得到更广泛的传播,传播力度也有极大的提升,专家可以同时服务更多的客户,是建立客户信任的最佳时机。
其中,精准营销、数据化运营是必不可少的环节,宜信财富数据中台也获得了绝佳的实践机会,主要包含以下四个方面:
- 精细化运营,利用客户画像,精准触达客户,减少客户骚扰;
- 直播前、中实时看板,使管理决策心中有数;
- 直播后数据集市建设,实现全场景直播数据应用;
- 直播分析,对参与客户的人群画像、活跃度、转化率等方面进行分析,从而进一步优化第一方面的策略,形成数据运营闭环。
1、精细化运营
借助精准运营工具,以及数据中台客户标签,实现客户精准人群定位和全渠道传播预热;决策者通过线下长期积累的客户需求经验,精准总结了各类客户人群,比如:全职太太、子女教育、家族传承学院等;
再根据客户渠道偏好、时间偏好、兴趣偏好等制定精准的运营策略,保证在最适合的时间、给有需求的客户营销正确的内容,从而提升客户体验和转化率。
2、直播实时看板(数据中台ADX+Davinci)
使用端到端竖管的模式,对接直播相关各业务系统的数据,包括神策行为埋点数据、直播预约数据、开户注册数据、交易打款等数据,借助数据中台的实时流处理工具,监测源系统数据库日志变化,在流上开发逻辑,实现端到端数据打通并形成看板,减少仓库层流程,提高数据使用效率,使数据及时可用。
(直播看板,来自网络截图)
3、数据集市建设
传统数仓分层结构,ODS、PDM、GDM、DM。
- PDM:主数据层,核心包括客户、事件、活动、资产等;
- GDM:公共数据集市,客户属性变化表,客户交易状态切片表,客户指标标签表等;
- DM:各层管理决策的多维报表、功能系统报表、数据科学家分析报表等。
4、客户标签体系
客户标签体系就是基于大数据挖掘(如统计算法、机器学习算法、关系网络分析、LBS分析、文本分析等)技术,通过对企业级数据仓库以及信息源中的客户属性、特征和信息(行为指标、偏好、价值指标、心理指标等)进行加工和运算,所得到的客户标签化信息,例如“有房一族”、“有车一族”、“有娃一族”、“出国消费”、“高档小区”、“高端商场”等标识。
从宜信财富的标签体系中,根据直播数据,对参与客户的人群画像、活跃度、转化率等方面进行分析,发掘和识别出高价值潜力客户,进行存量客户提升,防止潜在客户流失,从而进一步指导和优化宜信财富的精细化运营形成数据运营闭环。
总结:在日常经营管理中,一线销售人员很难快速地对大量数据的处理得到复盘结果,也缺少识别高价值潜力客户的工具和手段,同时有关客户画像的认知和了解也处于初级阶段。因此,高效的智能化数据分析复盘十分有必要,此次数据中台赋能财富直播是一个很好的数字化实践案例,希望以上的内容可以为企业大数据战略布局及开展基于客户标签体系建设的数字化营销应用提供有益的借鉴。
第四部分:直播项目运维保障
在疫情期间所有的线下拓客都停滞的状况下,宜信财富上线新的功能:硬核直播带货,疫情期间平台上几乎每天都会有一场直播。截至目前,几乎每一场直播都得以顺利流畅地进行,背后的功臣,就是我们整个的直播运维保障团队。
运维作为业务发展的后腰团队,很少为用户所关注,但却是支撑产品基础系统稳定运转的重要力量。今天我们就和大家说说运维保障团队为直播产品和正常服务保驾护航都做了哪些方面的努力。
首先介绍一下直播的流程。通过下图做一个简要的介绍,首先看左侧两图的部分,在一台满足推流条件的电脑上安装OBS直播推流软件,把要展示给大家看的内容,专业术语称为“源”,如微信视频、PPT、图片、视频文件等等在OBS中调整好布局,形成场景,合成为可以在互联网传播的视频流,通过网络(此处指OBS电脑所在的网络,一般是家庭宽带和公司办公用网)上传到视频云服务器(VDN,在全国乃至全球有多个节点,实现终端就近连接视频服务器观看,减少跨国或是跨地区带来的网络不稳定、质量不高等问题),然后咱们的客户和同事就可以通过手机上的宜信财富APP、财富夜话小程序、星火金服APP进行观看啦。
上面的介绍听起来好像也挺简单的,别急,还有很多事情没有说呢:
观众对于直播卡顿的耐受度越来越低,尤其是对商业价值更高、观众期望值更高的企业直播来说,直播过程中如果出现页面打不开、延迟高缓冲长等各种突发小状况,都会成为影响企业直播营销效果的安全“大问题”。
其中,最容易影响直播稳定性的一大原因,就是直播发起后是否正确推流。我们的运维伙伴在直播期间稳坐“导播椅”,眼盯屏幕,耳听声音,寸步不离;期间要根据说话内容切换到PPT或是视频,还要及时切回来保证音视频和画面的切换正确;由于目前是远程办公,电脑和显示器的配置、网络带宽的速度和质量参差不齐,也会导致直播卡顿等,因此每次直播,运维的伙伴都会提前进行两次或以上的测试,参与直播或测试的人员来自于不同的国家或地区,对于开播前的准备和网络流畅度等,都需要协调时间、多轮沟通、多次测试,这些都是每场直播前的标配任务。另外导播工作所用的硬件,均是自有的,尤其是显示器,为了更好地帮助画面调整,也从普通的22寸变成了34寸的大屏显示。
为了给大家提供更好的视听体验,直播画面的展现也是很重要的一环,把不同的元素放在一个布局里,调整成满意的可以展现给大家看的画面,这样的调整每次都要多次沟通和微调。
说了这么多,给大家配几张图吧,可以更直观地了解下:
上面谈到的都是线上直播,线下也有直播,相比来说,线下有场地或舞台的直播,所用的设备更全、更专业,直播过程也更稳定。从下图就可以看到,参与直播保障的人力也会更多。
和咱们平常所看到的球赛或是大型晚会直播类似,只是摄像机多少的区别。(如果大家想了解更多可以私信小助手哦)。好了关于运维方面的内容我们就说到这里。
总结
事实上,数据中台等技术只是宜信数字化的一部分,作为在金融行业头部的企业,宜信拥有很多领先的金融技术和成熟的科技团队。以强大的技术实力和实践能力为基石,宜信技术团队为本次直播开发了稳定的平台并提供了全方位的运维保障服务,有力地保障了宜信财富在特殊时期通过直播实现财富业绩逆势增长。未来宜信技术团队也会不断地创新,通过更多场景化的应用,提升我们的科技能力,助力宜信通过数字化方式快速实现品牌提升和业绩增长。
由于“突发疫情”而催生出如此频繁的视频直播,但也开辟了财富端获客的“第二战场”,这也给大家一个深思的“机会”,线上获客、视频直播获客能否长久可行?而作为技术人,我们又要提前做些什么样的思考和行动?
来源:宜信财富技术团队
作者米志华,方建国,郭树源,谭文涛,孙李强,刘春颖,刘桥