写点什么

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

  • 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:522437

评论

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

落实《中国人民银行业务领域数据安全管理办法》,极盾科技是怎么做的?

极盾科技

数据安全

全新升级!腾讯云大数据ES Serverless服务开启日志分析新体验

腾讯云大数据

elastic

etl engine 监控面板 为管理者掌握平台运行情况,决策执行方案提供即时数据支撑

weigeonlyyou

数据交换 物联网 数据采集 ETL Kafka ETL

一种轻量级定时任务实现 | 京东云技术团队

京东科技开发者

定时任务 系统稳定性 轻量级 企业号 8 月 PK 榜

什么是数字化?数字化转型概念是怎么兴起的?

优秀

数字化转型 数字化

站在营销的角度浅谈直播行业

山东布谷网络科技

直播 直播app 直播APP源码

EPM时代,国产化替代夺回话语权

智达方通

企业管理软件 EPM 智达方通 全面预算管理 智达方通EPM

FastAPI简介:快速理解Python Web框架的新标杆

Liam

Python 程序员 后端 web开发 FastApi

代码随想录Day36 - 贪心算法(五)

jjn0703

高性能网络建设指南,《智算中心网络架构白皮书》开放下载

Baidu AICLOUD

大模型训练 高性能网络 RDMA

GaussDB技术解读系列之SQL Audit,面向应用开发的SQL审核工具

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

如何为物联网设备注入“华为云+鸿蒙DNA”?

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

华为云与医药企业共话AI 助力医药行业数字化转型和创新发展

新消费日报

方法论揭秘|研发数字化转型,这家保险企业做对了什么?

万事ONES

在 React 中渲染大型数据集的 3 种方法

高端章鱼哥

Web windows React

盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容

山东布谷科技

软件开发 源码搭建 iOS SDK 一对一直播源码 弹性扩缩容

权威认证 I ONES 连续5年通过可信云企业级 SaaS 服务评估

万事ONES

LeetCode题解:剑指 Offer 56 - I. 数组中数字出现的次数,哈希表,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

数字化转型背景下经管大数据课程教学能力进阶提升训练营,线下培训圆满收官!

ModelWhale

人才培养 学科交叉 师资培训 教育数字化

中国出海企业如何防范恶意退货欺诈

Geek_2d6073

LED透明屏清晰度受什么影响

Dylan

广告 案例 信息 LED显示屏 屏幕

华为云第二期线下meetup·北理工站圆满落幕

华为云开源

开源

如何通过Python线程池实现异步编程?

互联网工科生

Python 线程池

蓝牙智能设备数据采集平台化方案 | 京东云技术团队

京东科技开发者

数据采集 企业号 8 月 PK 榜 蓝牙智能设备

医疗知识图谱问答——文本分类解析

北桥苏

Python 聊天机器人 neo4j 图数据库 知识图谱

数据智能:加速企业数字化转型

软通咨询

数据智能 #人工智能 数字化咨询

第二期开源答题挑战,看看你是什么级别吧!

开放原子开源基金会

开源 挑战 答题

软件测试 | mysqlhotcopy(MyISAM表热备份工具)

测吧(北京)科技有限公司

测试

华为开发者大会2023即将召开:HarmonyOS 4 小艺或将迎来全新升级

最新动态

NFTScan 正式上线 zkSync NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\

MIAOYUN获评“2023年度一云多芯稳定安全运行优秀案例”

MIAOYUN

解决方案 信创 中国信通院 信创云 可信云大会

关于网上积分,你不知道的一些事_架构_雨多田光_InfoQ精选文章