现场实操破解开发瓶颈,「2023 百度云智大会·智算大会 开发者沙龙」不容错过! 了解详情
写点什么

关于网上积分,你不知道的一些事

  • 2017-12-10
  • 本文字数:3414 字

    阅读完需:约 11 分钟

关于业务、架构,我们一直在聊电商平台或社交平台等系统的相关内容,有一类平台我们平时见得比较少,但是却在各个活动中扮演了重要的角色,那就是“用户运营平台”,像我们常见的商城中的转盘抽奖、积分兑换等活动,很多是由这种平台来外接去支撑的。

兑吧正是这样一个平台,它的定位是做用户运营的服务平台,业务包括积分商城管理、活动配置、签到等可以帮助 APP 提升用户粘性和活跃度的运营服务。InfoQ 此次采访了兑吧的技术副总裁武彻,以兑吧为例,请他带我们简单了解这种类型的平台。

武老师告诉我们,这种类型的平台在功能、用户情况和技术实现等方面相比常见的电商、社交等平台有一些特别之处。

与常见的电商、社交等平台相比,兑吧平台在功能上的特点是:多样性与时效性。

多样性是指活动工具的多样性。目前日常运作的活动工具达 60 多款,包括用户非常喜爱的大转盘、砸金蛋、刮刮卡等。这是根据积分业务和用户的行为决定的。

如果仅用一款,或者几款活动工具来运作积分业务,时间长了,用户很容易产生疲劳,所以需要有大量的、创新的活动工具,让用户保持新鲜感。再者,兑吧平台对接了很多用户体量很大的 APP,这些 APP 需要一些个性化定制活动,这些活动工具进一步提升了多样性。

常见的活动工具:

时效性是指兑吧平台在节假日,会给各个 APP 平台制作应景的活动工具。比如中秋节、国庆节、9 月份开学季、暑假等等。这些活动工具有很强的时效性,过了节日就会下线。

从用户行为来看,兑吧提供 SaaS 服务平台,把积分商城通过 H5 的形式,接入到各个 APP 中,用户通过访问 APP 中的“积分商城”入口,跳转到由兑吧提供的积分商城,在商城页面中可以进行“抽奖活动”、“兑换”等活动。

以外卖 APP 为例。用户在 APP 上购买了下午茶,签收、点评后获得了 20 个积分。访问 APP 的“积分商城”,来到兑吧提供的积分商城服务,并拥有 20 个积分。用户看到一个“消耗 10 积分参与 iphone8 抽奖”活动,参与活动后,消耗 10 个积分,剩余 10 个积分。当用户返回 APP 的时候,就剩下 10 个积分了,“积分商城”在维护着用户的积分数据。

业务多样性和时效性,对技术的最大挑战就是如何快速支撑业务,保证用户体验。一开始,兑吧发布一个活动,需要经历这些流程:

  1. 设计并制作一套活动工具
  2. 运营在此活动工具的基础上进行活动信息配置和部分展示内容配置
  3. 发布后,获取活动的数据,进行页面呈现

活动工具的发布,需要经历:设计、前端制作、后端套页面、测试、发布。

同一个类型的活动工具,仅仅修改颜色,或者部分元素修改,技术也需要花 2 个工作日左右。而我们的多样性业务属性又决定了每周有大量的定制化活动工具需要设计、发布。

目前,我们采用模板化技术,内部叫“手脚架工程”,来提升开发效率。如下图所示:

现有的活动工具中,html 部分内容,可以通过页面内配置来获取内容信息,比如:主题图、活动规则。把活动工具,拆成模板和元素。把公共的 js 模板化,背景图、活动图、颜色、活动规则等多变的属性变成元素,而存储元素的这个文件,作为这个活动工具的配置文件。类似于:

每个活动都有一份默认的配置文件,当活动被保存时,根据配置文件的内容生成一份此活动特有的副本。当活动页面被加载时,相关元素读取副本中的内容,进行页面渲染。流程图如下:

这样做的好处是,同样类型的活动工具,只需要通过不同色彩和图片的搭配,可以展现出不同的活动页面,满足各类定制化需求。模板化之前,我们每周只能支持 20 多个需求,模板化后,支撑的需求量已经达到每周 60 多个,解决了业务多样性的问题。

其中的积分业务是大多数人都会遇到的场景,但是大家对它背后的东西又是很陌生的,可能会比较好奇和感兴趣,武老师为我们具体介绍了这块业务的情况。

兑吧的积分业务,主要是帮助开发者(APP),消耗已有的积分,比如把 APP 上通过签到,购买商品等行为产生的积分,在兑吧的积分商城进行兑换、抽奖等活动,消耗积分,形成积分的良性循环。


整体对接图

积分,有非常丰富的业务。下面用积分兑换这一场景来帮助大家理解,开发者 APP 的积分,是怎么在兑吧的积分商城玩转的,这背后又涉及到了哪些系统?一图胜千言,用图的形式来展示积分的兑换业务。


功能流程图

目前,兑吧的平台全部采用 SOA 架构,一次积分兑换,会涉及到好几个业务系统,这些业务系统又是采用分布式部署,来保证 7*24 小时提供服务。详细的技术实现,请看下图:


时序图

具体到兑吧的平台系统,武老师向我们介绍了其早期的架构设计和后来的演进过程。

兑吧的系统功能架构主要分成 3 个阶段。

第一阶段:单体架构。和很多创业公司一样,公司成立初期,我们选择了 java 的 Grails 框架。业务探索期,grails 单体架构发挥了很大的作用。简单、易上手。

第二阶段:SOA 架构。随着业务量的不断增加,单体架构慢慢暴露很多问题。首先,代码工程越来越大,所有的业务代码都在一个工程里面,每次部署,发布都是一件非常漫长、痛苦的事情。

其次,随着团队的壮大,大家都在一个工程里写代码,研发效率低下,在一个工程里,大家的依赖是代码,或者接口级别。A 同学写完了代码,依赖了 B 同学的代码,但是 B 同学还没写完,不能一起提交,需要等待。

在提交的过程中,经常会出现代码冲突,抢开发环境的事情。如何解决这些问题呢?首先要从架构中进行拆分,把原来的单体应用,拆成分布式的多服务应用。这个时候,整个平台的业务访问量已经达到亿级别,业务也处于高速发展期,拆分服务,相当于给高速行使的跑车换轮胎。架构可以拆,但是不能影响业务。让业务在无感知的情况下,完成架构的演进。

我们的解决方案是:技术上,尽量选择成熟的方案,缩短技术探索周期。最终我们选择了 springboot+dubbo 的 SOA 方案。业务上,先保持原来的单体工程不变,继续提供服务。在原来的单体工程中,先拆分出相对独立的商品中心,再慢慢拆分出来活动中心、商城中心、库存中心以及一些非业务属性的基础服务。

历时 1 年左右,到 2017 年的第二季度结束,完成了从原来的单体架构演进到 SOA 架构。研发效率和系统稳定性,都得到了很大的提升。

第三阶段,容器化架构。经过第二阶段的架构改造,目前我们的系统非常稳定,在此基础上,我们也在调研新技术,利用容器化,进一步提升研发效率,降低研发成本。

而在架构演进过程中,从单体架构到 SOA 架构,遇到了很多坑,把其中几个分享给大家,如果大家也处于架构升级和演进的阶段,可以从中吸取经验,减少踩坑。

1、 基础服务。监控和日志是最基础、最重要,也是最容易忽视的服务。我们从单体架构迁移到 SOA 架构的时候,一开始没有监控系统,都不敢动手。不清楚迁移后服务怎么样?是不是稳定?接口的性能如何?响应时间怎么样?

监控系统就像雷达,没有雷达系统,都不敢贸然让战斗机飞出去。所以在系统完善的过程中,一开始,就要搭建一套完备的监控系统和日志系统。我们的监控系统是开源的 CAT 实时分析平台,可以清晰地看到各个系统调用,接口性能等参数。日志系统是 loginsight,基于 ELK 的一整套日志解决方案。这两个系统,在我们迁移架构,日常系统完善过程中,发挥了很大的作用。

2、 系统未动,业务先行。系统的拆分,要基于业务的拆分。一开始,从这么庞大一个单体应用中要拆分出系统来,我们无从下手,拆什么,都是动一发而牵全身。既然无从下手,就开始讨论业务架构,划分业务边界,再来拆分系统。经过充分的讨论,我们发现“商品”这个业务,相对独立,可以第一个拆出来。慢慢的,业务架构的边界就清晰了,系统架构也成型了。

3、 技术要有前瞻性。如果非要等到架构撑不住了,再去优化架构,那真的太晚了。从单体架构,演进到 SOA 架构的时候,我们就有点吃力了。业务快速增长,老系统要维护,新系统要拆分,这是一场与时间赛跑的游戏,对技术团队的挑战非常大。所以从 SOA 架构演进到微服务架构,我们吸取了经验。在业务稳定增长,系统平稳期,就开始进行架构选型。

嘉宾介绍

武彻,目前在兑吧负责基础架构团队,主要负责架构选型,性能优化,系统稳定性等工作。2010 年加入阿里巴巴淘宝网,负责淘宝网的性能测试和性能优化,经历了 10 年~12 年的双 11 性能压测以及性能自动化平台 PTS 的研发工作。2013 年,加入来往团队。历任来往 Android 客户端负责人,来往项目总负责人。2014 年,加入钉钉团队。钉钉初创团队成员,历任钉钉的开放平台项目负责人,smartwork 项目 & 技术负责人,带领项目组从零开始孵化钉钉考勤、签到、日志、审批等办公协同平台。2016 年,离开阿里巴巴,加入兑吧。

2017-12-10 16:522376

评论

发布
暂无评论
发现更多内容

支付宝小程序云托管, 1 分钟即可完成支付宝开放产品服务端部署

TRaaS

支付宝小程序 代码云托管

简单的剪贴板工具 PasteNow中文激活版

胖墩儿不胖y

Mac软件 剪切板工具 剪切板软件

如何打破资产盘点壁垒,用友BIP资产云来支招!

用友BIP

资产盘点

做好数据治理,推动国有企业数据资产化加速落地!

用友BIP

数据治理 数据资产入表

Mac看图软件:XnViewMP for Mac

加油,小妞!

看图软件 XnViewMP

Sublime Text 4下载- Sublime Text 4.0中文注册版

芷水微澜_cde4d8

Sublime Text 4 Sublime Text 4 破解版 Sublime Text 4下载 Sublime Text 4注册版

XnViewMP for Mac(看图软件) v1.6.2激活版

芷水微澜_cde4d8

XnViewMP XnViewMP破解版

音色逼真、韵律自然的AI人声克隆限时福利!

阿里云视频云

云计算 视频云

数据库系统概述之常用数据库

小齐写代码

PasteNow for mac(剪贴板工具)

展初云

Mac软件 剪切板工具

iOS信号量造成线程优先级反转 | 京东云技术团队

京东科技开发者

ios 优先级反转 企业号11月PK榜 ios信号

华为云开源 | 线下meetup • 中国人民大学站

华为云开源

云原生 时序数据库 AI大模型 Meetup 华为云开源

互动LED电子大屏幕成为商显市场的头牌

Dylan

人脸识别 3D vr LED显示屏 AR、

测试人员在 Scrum 中的角色是什么?

敏捷开发

项目管理 Scrum 敏捷开发 自动化测试 bug管理

Red Giant Trapcode Suite for Mac(红巨星粒子插件) 2024.0.2激活版

芷水微澜_cde4d8

Red Giant Trapcode Suite

服务器如何搭建虚拟主机

Geek_f19a80

服务器

Trapcode Suite for Mac(红巨星粒子插件) 2024.0.2激活版

展初云

Mac 3D粒子插件 红巨星粒子插件 Red Giant Trapcode Suite

发挥云计算潜力:Amazon Lightsail 与 Amazon EC2 的综述

亚马逊云科技 (Amazon Web Services)

云计算 API Amazon EC2 VPS Amazon Lightsail

Red Giant Trapcode Suite for Mac中文版 红巨星粒子插件

加油,小妞!

红巨星粒子插件 Red Giant Trapcode Suite

2024深圳国际触控面板及技术展览会

吹吹晚风

第八期 |《实时洞察 智能运营一用友企业绩效管理白皮书》解读

用友BIP

企业绩效

Keep It for Mac(专业笔记工具) 2.3.4激活版

芷水微澜_cde4d8

Keep It Keep It破解版

UltraCompare 23 for Mac文件比较工具

展初云

Mac 文件对比工具 UltraCompare

Dapp开发

区块链技术

提升编程效率:软件工程师必备的10个Git命令

南城FE

git 前端 软件工程 后端 代码

UltraCompare for Mac(文件比较工具) 23.1.0.23中文激活版

芷水微澜_cde4d8

UltraCompare

Vue3设计思想及响应式源码剖析 | 京东物流技术团队

京东科技开发者

Vue 前端 源码阅读 VUE 3.0 源码 企业号11月PK榜

iOS APP包分析工具 | 京东云技术团队

京东科技开发者

ios 包体积 企业号11月PK榜 ipa

协同办公零代码领先实践之企业用品管理

用友BIP

协同办公

和小伙伴们仔细梳理一下 Spring 国际化吧!从用法到源码!

江南一点雨

Java spring

app小程序开发的重点在哪里?|企业软件定制网站建设

Geek_16d138

小程序开发 软件定制 app定制开发

  • 扫码添加小助手
    领取最新资料包
关于网上积分,你不知道的一些事_架构_雨多田光_InfoQ精选文章