APPKIT打造稳定灵活高效的运营配置平台

在从0到1打造运营配置平台的过程,我们遇到了很多“坑”。特别是在早期“刀耕火种”的时代,对于入口的配置,往往是通过“hardcode(硬编码)”的方式写死在代码中。所以必然会遇到很大的问题,这主要体现为以下两方面:

对于新的运营配置需求,研发同学需要开发对应的配置页面,然后转给运营同学进行配置的管理,最后运营人员对资源进行配置上线,其流程如下:

对于每个运营配置需求都要经过需求评审、页面开发、配置管理、上线的流程。同时,对于配置页面的开发,少则需要1到2天的开发工时,研发成本高。问题总结如下:

在早期,运营配置上线流程需要研发同学参与。产品提出运营配置需求,研发同学通过修改代码对配置进行变更,然后通过代码上线进行发布。整体流程如下:

这种上线机制存在以下几个问题:

针对以上问题,我们希望通过设计一个通用的解决方案,去解决上文阐述的各种运营资源管理的问题。我们把这个整体的项目称之为APPKIT,寓意是App的运营配置工具(Kit)。通过不断的实践和总结,我们希望能从三个维度解决上述问题:

随着业务的不断迭代,无论采用怎样的数据字段组成,都无法满足业务变化的字段(这里是指像标题、副标题、图片、跳转链接等)要求。对底层数据进行JSON化,其对应的数据字段完全可动态扩展,从而满足业务不断迭代的需求。JSON化随之也会带来运营位字段管理的问题,我们通过字段管理的工具来解决这个问题。

设计一套整体的流程管理机制,解决运营的投放、审核、发布和回滚的问题。通过流程化的机制,我们实现了“事前”、“事中”、“事后”的三级管理。

首先,在运营配置上线前,通过测试用户的预览功能,可以预览上线后的实时效果。同时,通过穿越功能可查看将来时段显示的效果。防止出现上线后链接出错、视觉效果达不到预期等问题。

其次,在流程阶段,引入审核机制,通过视觉和内容两方面的审核,保证投放数据的准确性。

最后,在运营配置上线后,如果发现问题,可以通过快速回滚,最大限度地实现“止损”。

对于运营数据,无论是通过数据库的落地方案、还是通过分布式缓存的方案,都无法彻底解决服务中心化和服务抖动的问题。通过接入的SDK化,可以做到数据的本地缓存更新机制,解除对中心化服务的依赖,大大提升服务的稳定性和性能。同时整个APPKIT服务变成可水平扩展,在扩展过程中也不会影响中心服务的稳定性。

APPKIT运营配置系统整体框架如下(数据流向如箭头所示)。从功能角度,大体上分为四层:数据层、服务层、接入层和监控层。

数据层作为最底层的数据存储,其保存了最基本的运营后台数据、流程数据和线上数据。对持久化的数据,我们采用MySQL进行存储;对于缓存数据,我们采用了Redis的解决方案。这样数据层形成基本的两级存储结构:MySQL保证了数据的持久性,Redis保证了数据获取的速度。

谈到数据层,这里我们遇到了存储上的一个小问题。按城市运营的每条数据,都需要存储具体的城市ID列表,其在数据库里的存储为“1,2,3,4……”这样字符串。而这种数据存储在业务请求和条件过滤过程中,存在着如下两个问题:

美团、大众点评运营的城市成千上万,如果每条运营的投放数据都包含大量的城市列表信息,对机器内存势必产生一定消耗。

城市的过滤逻辑大体是这样:用户所在城市与从数据库获取到的城市列表(“1,2,3,4……”)进行匹配,在每次匹配过程中都需要做字符串“split”的切割操作。这种操作的特点是流量越大,对机器CPU的消耗越大。

解决方案:基于以上两点考虑,再结合Java语言提供的BitSet机制。我们从数据库里取出城市列表数据后只做一次“split”切割操作,将数据转化为BitSet类型。这样在实际过滤过程中只需要通过BitSet的get机制就可以判断运营投放的城市是否包含了用户所在的城市。通过BitSet机制,我们既解决了大数据存储对内存的消耗问题,又解决了城市过滤的性能问题。

服务层向下对底层数据进行操作;向上为接入层获取数据提供接入能力。其提供四个服务能力:运营后台、开放平台、数据服务、APPKIT-SDK,如下表所列:

接入层主要为运营人员、业务研发提供接入能力。通过运营流程化为事前、事中、事后提供保障。一个运营资源从制作到最后在C端展示,需要经过运营人员的投放、测试预览、审核及发布的中间流程。这里对于一些敏感的运营资源,需要通过安全部门的审查。安全审查主要涉及到敏感词的处理、敏感图片的检测等。对运营配置平台来说,它完全是一个“黑盒模型”。这里主要涉及到两种情况:

APPKIT-SDK运行在业务机器上,这里就涉及到多台机器的数据一致性问题。同时,随着业务接入运营数据的增多,SDK对机器内存势必有一定消耗。基于服务的稳定性考虑,我们对SDK运行时的投放内容进行监控,其主要监控两个指标:运营位数及每个运营位的配置总数。这样做可以带来以下几个好处:

首先,我们对运营数据做需求拆解。对于这块数据,每个“节点”(对应每个位置:如美食,技术上我们称之为“节点”),其基本的运营诉求如下:

上面这个运营场景算是非常经典、复杂的一个运营场景了,如果这个问题解决了,其他问题自然就会迎刃而解。

我们做一下进一步的技术分析:

首先,这里有节点,每个节点(Node)有其相应的内容(Content),节点与内容是“一对多”的关系。这里的内容,我们指的是如标题、图片、跳转链接等信息,虽然是“一对多”的关系,但最后在同一个城市、同一个版本下(可选择)只显示一条内容。为什么有这样的需求?举一个简单的业务场景实例,以外卖为例,在新版本10.0的时候做了一个全新的外卖频道页面,其链接信息与老版本的完全不同,这里我们就需要按版本的不同配置两条不同的内容信息。

其次,节点与节点之间有两层关系,其一为“平级关系”,如美食与外卖的关系,这种关系就是一种简单的列表关系;其二为树关系(Tree),如外卖与下午茶之间的关系。这里我们将角标(下午茶)视为一个节点,因为角标也需要按不同维度进行过滤,因此下午茶成了外卖的子节点。其实这里有一些特殊的地方,如果角标不需要按城市、版本等维度进行运营,那很简单它就是一个内容信息(类似标题)。

针对上面的技术分析,我们提出了一种节点(Node)-内容(Content)-树(Tree)模型,简称为N-C-T模型。如下图所示:左边为抽象的数据模型,右边为以上实例的实现。

N-C-T数据模型设计的非常简单,其中C和T部分都是可选择的,这样使得其灵活性比较强,可以应对业务变化的大部分需求。注意,这里我们只是对业务需求的宏观表现形式进行建模,对于具体Node和Content里的有哪些字段(标题、副标题、图片、跳转链接),这些都是JSON化的存储格式,可以满足任意字段的扩展。

这种Banner位,套用我们上的数据模型,它其实是一种只有一个Node节点、多个Content节点的模型。这也是一种典型的应用场景,为此我们总结了两种应用场景。

其实,大部运营场景都可以套用以上两种经典的运营组合。

将运营资源的管理进行流程化,具有以下几个好处:

对于流程化的实现,我们是将数据域切分成三个不同的部分:后台数据、流程数据和线上数据,如下图所示:

后台数据:我们可以简单理解为草稿数据,这里的数据多用户可同时进行操作,也不会对线上数据有影响。

流程数据:当用户后台数据编辑完成后,对数据提交一个发布流程,数据进入流程数据区域;这时可对数据进行测试预览、审核等操作。

线上数据:这块数据是C端用户真正获取到的数据,当流程数据审核通过后,数据会自动同步到线上数据域,完成上线操作。

整个上线流程如下:

为了能平稳上线,我们设计了一个测试预览功能。当数据处于流程中时,用户可以通过扫描二维码加入到测试用户名单,可对处于审核流程中的数据进行预览,用美团、大众点评App查看上线后实时效果,其实现的数据流如下:

稳定性是一个运营配置平台最重要的能力,没有稳定性,其他任何功能都会失去实际意义。运营系统的稳定性经历了不同的迭代时期,总结起来,可概括为以下三个阶段:

这是APPKIT最早期的经典方案,它的实现也非常简单,如下图所示:

C端用户通过业务接入层获取数据,业务接入层通过服务调用获取配置后台数据(APPKIT服务),配置后台数据服务读取缓存数据。如果缓存数据不存在,则从数据库中读取数据,同时将数据库数据同步到Redis缓存中。这是经典的数据获取模型,但它有以下几个缺点:

针对以上经典方案的缺点,我们做了进一步的改进,对配置后台数据服务做了一层本地内存缓存,如下图所示:

样做可以解决数据调用的部分网络时延问题,同时Redis缓存的抖动也不会影响整体服务的性能。不过,这个方案也有其自身的缺陷。

为彻底解决缓存方案的问题,尤其是服务中心化带来的流量、容量等问题,我们将运营数据的获取、Web缓存的管理集成进SDK。如下图所示:

这样的话,无论接入再多的业务,也不会对中心服务产生过大的流量压力和容量压力。SDK同时也解决了服务间调用的网络时延问题。所有同步数据的网络调用都是通过后台线程异步完成,不会影响业务线程的正常处理逻辑。

不过,SDK方案也引进了如下的新问题:

为了解决数据的时效性和一致性问题,我们引入了监听更新机制,如下图所示:

运营人员在运营后台操作完成后,提交上线流程,流程发布后通过ZooKeeper的变化监控发送一个变化事件;SDK通过监听变化事件,拉取变化后的运营数据更新到本地。这里,为了防止这种监听机制失效,我们也做了一个兜底策略:每分钟定期进行一次数据同步。这样保证数据最迟一分钟内就能实现同步。对于SDK本地缓存,我们设计了监控上报机制,如下图所示:

缓存方案与SDK方案的效果对比如下:

注:SDK方案的平均线为0.0是因为统计时舍入引起的,真实值其实非常小。

本文通过美团点评移动运营平台的实践,详细介绍了我们在打造稳定、灵活、高效的运营配置平台过程中遇到的问题和挑战,同时本文也提供我们的解决思路:通过数据JSON化,运营流程化,接口SDK化分别解决了运营平台的灵活性、高效性和稳定性。APPKIT帮助产品、运营和研发提升C端的开发和运营效率,加速产品的迭代进程。

THE END
1.大众点评代运营模块2.节省时间与精力:商家无需投入大量时间和精力去学习和操作大众点评平台,可以专注于自身的业务发展。3.提升运营效果:代运营团队会根据商家的实际情况和市场环境,制定个性化的运营策略,提升商家在大众点评平台上的曝光率和用户口碑。4.数据驱动决策:通过代运营团队提供的数据分析服务,商家可以更加清晰地了解用户需求https://baijiahao.baidu.com/s?id=1818108724765526154&wfr=spider&for=pc
2.携程酒店用户点评分析抓灼店行业的“口碑力量”△点击查看大图 用户点评已经成为酒店行业中不可忽视的力量。对用户口碑的全面理解和积极应对,将会深刻影响酒店的发展。我们期待看到酒店业抓住这些机遇,关注顾客日益增长的各类需求,不断创新,不惧挑战,实现全行业的突破与进步。 来源:携程酒店程长营 https://mp.weixin.qq.com/s?__biz=MzA3NjkzOTczOQ==&mid=2651279466&idx=2&sn=5ba71c3f96061044060b124a3fc3dc3b&chksm=85116701fcecf3d8f0fffe4b533cc7ec56f0b3f73747dffa17992e390d8d25bd170e6b2ca780&scene=27
3.大众点评android项目架构大众点评界面分析大众点评产品分析报告 产品分析目录 大众点评产品分析报告 一、体验环境 二、产品定位 三、用户需求分析 3.1 用户画像 3.2 用户需求 3.3 使用场景 四、市场现状 4.1 行业分析 4.2 市场数据 五、产品分析 5.1 产品结构图 5.2 产品流程图 5.3 产品核心功能分析 https://blog.51cto.com/u_12947/8776973
4.大众点评LV6会员,为大家拆解大众点评会员运营体系本文分析的思路: 将从会员级别规则,橙V会员制,内容算法推荐,勋章体系,会员积分,产品视觉交互等来解构分析一下大众点评内容社区运营体系;最后从自己作为忠实用户和产品经理的角度,结合产品发展趋势,提出一些建议。 体验分析版本:大众点评APP V10.24.10 ,iOS版本 https://www.36kr.com/p/1725226467329.html
5.市场APP需求分析生活服务类(如:墨迹天气、美团、大众点评等) 其他 *6. 是否喜欢综合性较高的软件 是 否 无所谓 *7. 您觉得以下哪些要素,对手机APP体验是非常重要的?(多选)【最少选择1项】 内容吸引、实用 名字、图标不错 界面精美 信息更新快 所耗流量小 互动性强 其他(可自由填写) *8. 您认为一个实用的手机Apphttps://www.wjx.cn/jq/6514273.aspx
6.人体成分分析:了解你的体态降状况和营养需求打开App查看高清大图 百祀 2023年9月23日 关注 人体成分分析是通过测量人体的组成成分,如肌肉、脂肪、骨骼等来评估个体的体态和健康状况。这种分析可以帮助人们了解自己的身体状况,并根据结果调整饮食和锻炼计划,以达到更好的健康效果。 在人体成分分析中,常用的测量方法包括生物电阻抗法、皮褶厚度测量和水下称重等。https://m.dianping.com/ugcdetail/188579355?sceneType=0&bizType=29&msource=baiduappugc
7.互联网app商业计划书11篇(全文)互联网+视频电商平台 APP项目商业计划书 目 录 第一章 项目概况 4 1.1 项目名称 4 1.2 项目简介 5 1.3 项目核心优势 5 1.4 战略规划 5 1.5 融资方案 5 1.6 财务评价 5 第二章 行业和市场分析 6 2.1 我国网络购物市场发展状况 6 2.2 湖南省大学生网络购物市场分析 9 2.3 长沙大学生网络购物市场分析 10https://www.99xueshu.com/w/filesfcgl7hb.html
8.采集一点大众点评APP中的信息采集工具采集一点大众点评APP中的信息,由雇主发布的采集工具招标任务#986844,欢迎前来接单,任务主要是:<p>需要采集指定区域,指定内容的大众点评APP中的信息存入到数据库</p>https://m.epwk.com/task/986844/
9.商城APP推广营销策划方案(通用10篇)(2)、更新时间:勤迭代,新版本上线 App Store 会给推荐 (3)、下载量:最近下载量和当天下载量.下载量要成增长趋势 (4)、点评打分:注意刷评论和刷量技巧,否则受到市场处罚 (5)、活跃用户数(比率):做好内容推送,分析日志,优化产品3、市场适时首发 https://www.360wenmi.com/f/filewe6slm94.html
10.大众点评产品分析没心没肺的日子里,还好有美食4.0 用户分析 4.1 用户数据 4.1.1 性别数据 来源:易观千帆 大众点评的女性用户较多,推测原因可能是: 1. 根据《经济学人》对女性消费习惯的研究,女性消费者做购买决定时,更喜欢查看他人评论和志趣相投的朋友的评价,而大众点评的点评内容和社交功能就满足了她们的需求。而男性消费时则目标明确,较少受到他人评价的影https://www.jianshu.com/p/c243333a2739
11.大众点评网为一般消费者团购消费者后台商家分别开发了三个大学职业搜题刷题APP 下载APP首页 课程 题库模板 题库创建教程 创建题库 登录 创建自己的小题库 搜索 【单选题】大众点评网为一般消费者、团购消费者、后台商家分别开发了三个版本的软件产品,以满足其差异化的需求,这种产品成为()。 A. 用户画像 B. 产品矩阵 C. KOL D. 账号矩阵 https://www.shuashuati.com/ti/146aef16cec74da1a077d2c9b4ca4f5ba3.html
12.商业模式分析:健身房的行业潜规则99%的健身小白真实需求到底是什么? 和传统健身房相比,超猩还有哪些优势? 以单车、泰拳、黑科技等为主题的个性化健身工作室是未来发展趋势吗? 一、实地探店超级猩猩 重新加载 课程:超级猩猩没有App,所以一般在小程序约课,也可以在美团和大众点评购买代金券再去小程序兑换约课券使用,目前超级猩猩只有才深圳、广州、https://www.douban.com/note/723018035/