当前位置: 首页 > Web前端 > HTML

【低代码实践】京东科技活动平台:魔笛入门

时间:2023-03-27 23:30:36 HTML

作者:葛阳阳,京东科技在开发过程中,一定会遇到两类问题,通用活动和定制活动。一般情况下,通用的活动方案无法满足个性化定制需求,因此我们针对不同用户开放不同的平台能力来解决此类问题,并针对业务用户开放SAAS可视化零代码模式,帮助用户快速构建活动,并针对研发工程师开放底层PaaS低代码模型,可以自由进行业务开发和定制活动,让业务开发不再受限于平台规格。既满足了高价值业务需求的支撑,又平衡了定制化业务的需求。最终,我们逐渐抽象出赛事业务的共性,耦合赛事后端服务,然后集成一个低代码平台,打造一站式赛事平台,并将其命名为魔笛。魔笛承载着我们的愿景,希望在技术领域继续探索和突破2.传统的活动开发模式金融领域的活动很多。这些活动大致分为两类,一类是简单的活动,一类是复杂的活动。简单的活动模式是固定的。它可以完成。我们通常把这类活动定义为可复用的活动,比如签到、领取优惠券、大转盘等。复杂的活动由于业务逻辑复杂、模式不固定,所以可复用性比较低,比如裂变、积分红包、和扩展黄金活动。随着业务的快速发展,活动的场景和类型越来越多。活动研发每天都在承接各种活动需求。由于资源有限,业务研发只能优先开发高优先级或高质量的活动。活动,从而限制那些低优先级或低质量活动的发展。一开始可以借调人力支持,但不是长久之计,因为资源永远是有限的2.1.高代码开发高代码开发是一种传统的解决方案,前端和服务端根据产品和UI的效果图进行开发,测试通过后发布上线。优点:可以快速支撑活动需求,研发空间大,可以高效实现活动效果?缺点:对于已经开展的活动,一旦有业务逻辑和内容需求变化,需要经历开发、测试、上线的过程。如果在线出现问题,响应和解决问题的时间会更长,成本也会更高。2.2.Activity配置开发该模式是高代码开发的高级优化。产品运营沟通运营活动在线实时修改需求,如奖励、展示内容、规则策略等,研发工程师根据产品需求抽象固化配置,再根据配置开发活动。活动发起后,活动落地页会根据后台提供的API动态读取配置,实时渲染展示活动。这种模式简化了配置,缩短了业务逻辑和内容变更的路径,满足了在线实时变更的需求。优点:该模式将活动的通用配置抽象出来,固化为活动的后台配置,帮助集团运营实现活动策略的实时变更,大大提高研发效率。?缺点:如果对非周期活动进行活动配置抽象固化,会增加开发成本,投入产出比相对较低。2.3.活动管理后台开发为了提高研发和运营效率,各业务团队开始积累通用模板和活动配置,从而产生不同的具有业务特点的活动管理后台。优点:该模式可以快速生成预制的H5页面和配置,将常用的活动模板和H5页面构建到活动管理后台,活动运营者可以在活动管理后台选择符合需求的模板,快速完成创建。劣势:业务团队通常会根据自身业务特点打造活动平台,有资源的团队会不断优化开发自己的活动模型。对于资源不足的业务团队,在活动平台的建设上投入不够。因为不同的业务团队在自身的发展和业务范围上存在差异,所以他们可能无法将自己积累的能力赋能给其他业务团队。随着营销业务的迅猛发展,该款活动背景如雨后春笋般涌现。3、如何整合形成一个统一的活动平台在分析了传统的活动开发模式后,将相似的能力和功能进行抽象和沉淀,让不同的业务团队可以在一个平台上入驻开发活动,避免了企业烟囱多的现象,并让他们联系更紧密。,打破信息孤岛,降本增效,提高内部生产力。3.1.Activity共建模式创新一个Activity由页面、组件和素材组成。页面一般为H5页面,组件由UI样式、事件、业务逻辑组成。如图所示,可以看出底层组件和业务逻辑是一个交互,我们可以把组件和业务逻辑的开发交给业务团队,再结合平台的能力完成共建。这种模式可以摆脱现有活动发展中遇到的困境,实现活动的快速对接。发展能力的目的3.1.1.基础能力搭建上面介绍的三种Activity开发方式都会用到一些基础能力,比如页面管理、组件管理、模板管理、配置管理等,每一个Activity开发完成后,都会经过测试、发布和上线,所以发布以及审批管理、用户权限管理等。如果需要验证活动页面的转化效果,需要借助A/B测试能力和数据看板能力,我们整合了这些基础能力,让业务只专注于活动本身,基本可以满足大部分的活动需求。3.1.2.活动模板市场随着活动的增多,平台会积累大量优秀的活动模板。这些模板不仅为创建的业务方服务,也为其他业务方赋能。让每个业务的创意在这个平台上流动,更好的服务平台用户。3.1.3.流程标准化虽然我们已经搭建了赛事平台的基础能力,但是赛事创建过程也会涉及到多系统的操作,比如费用、权益、赛事搭建(可视化、Babel、98k、自研)、交互游戏建筑(如任务、抽奖、裂变等)、CMS、鹰眼、奇点、银河人像(数据)、数据分析(数据)等,会导致多系统运行成本高,创建周期长,和冗余流程另外,配置人的效率低下。针对此类问题,我们可以基于赛事场景,基于标准化的流程整合成本、权益、赛事搭建、物资配送、任务接入等能力,帮助运营实现一站式赛事搭建与交付。他们是活动平台的主要用户。他们根据自己的需要在平台上选择模板,或者自主创建H5页面,利用已有的地板组件。事件登陆页面的核心组件是一些绑定到组件和事件的业务逻辑。这些组件和业务逻辑主要由研发同学提供,所以业务团队的研发同学也是平台的主要用户。因此,有必要为研发生设计一个在线开箱即用的开发平台,为研发生带来一站式的开发体验,提高开发效率。3.2.1.Activity组件开发环境组件是登陆页面的核心组件。组件开发可参考直接落地(D2C)设计稿的生产模式,无需编码能力即可开箱即用。对于存量组件,需要支持二次开发,提供一键转换工具,支持多种存量项目一键转换。编码的开发和维护需要完整的迭代记录,以及如何构建开发社区,方便平台用户交流和表达诉求。3.2.2.玩法开发环境组件是活动的核心,所以玩法是整个活动的齿轮,组件与玩法的配合使活动具有生命力。一般的玩法是由多个业务逻辑组成的,大部分业务逻辑都是通过高代码实现的。我们业务研发同学每天都在重复开发这些业务逻辑代码,大量的if..else语句和分支。如果你想改变一些逻辑和条件,你必须经历开发、测试和上线的过程。这些低价值的工作无法体现我们业务研发的价值。如何让业务研发从这些重复性的工作中脱颖而出,做更有价值的事情?图形化业务流程编排是一个可以为研发同学提供BPMN的解决方案。流程编排的开发模型。对于通过high-code开发的high-stock定制化逻辑,可以提供接口服务,将接口注册到平台,存放业务逻辑。流程编排的方式不仅提高了研发效率,缩短了交付时间,还通过接口注册的方式集成了业务逻辑。3.2.3.开发者文档统一了开发环境,可能会改变业务研发的开发习惯,因此友好而完整的开发者文档必不可少。从组件代码初始化、本地开发调试、接口MOCK、业务逻辑开发、逻辑编排等能力编写文档。最好附上视频讲解,并建立问答机制和问答群,方便对研发同学遇到的开发问题进行支持。4、赛事搭建——魔笛介绍2022年,赛事平台用户将涵盖京东健康、京东物流、京东保险、京东科技等,共计600+用户(运营+研发),支持1095项活动。目前平台支持裂变、抽奖、打赏、任务、答题、签到、招募等,并沉淀运营200+楼组件,运营多款经典活动上线,如下图.、积分兑换活动、有奖活动、产品列表、任务&裂变玩法、多种玩法组合4.1、功能架构4.2、活动搭建工作台主要模块分为活动H5页面、组件开发管理、发布管理、玩法和业务逻辑开发和管理,表单配置管理等。4.2.1.活动搭建关系结构抽象的关系结构可以帮助我们更容易理解活动搭建?活动页面:活动登陆页面,一般为H5页面?组件:前端组件?玩法:一组API/MQ集合?业务逻辑:对应于一个BPMN文件或者BFF服务或者一个外部接口?Schema配置:操作配置表单4.2.2、H5页面管理H5页面的生成主要是通过可视化构建技术,可视化构建技术是一个比较成熟的技术,也是一个我们经常谈论的技术。营销活动是构建系统最重要的落地场景。将可重复使用的组件拖放到画布上以生成最终页面。可视化构建大大解放了前端研发投入在开发低价值重复性活动上,让技术同学更多地从可重用性和可配置性的方向去思考活动的实现。页面创建:创建页面基础数据,包括页面埋点、页面标签、页面场景、页面有效期、页面成员等页面编辑:页面内容的编辑是通过视觉编排能力,所见即所得得到。也可以通过预览功能看到投放效果?页面发布:页面修改后,放到正式环境时需要经过打包发布流程,提交给页面决策者需要批准。审批完成后,就可以在正式环境中看到效果了。4.2.3.组件管理一般组件的基本结构是前端UI+服务端业务逻辑的实现,构建平台也是如此。多个业务逻辑的组合被抽象成一个玩法。一个活动组件的组成如下图所示。交互组件的开发分为前端和服务端。前端实现组件的UI风格,服务端负责开发玩法。组件管理还支持组件的多版本管理和版本发布功能。组件创建:创建组件基础数据,包括分类、样式类型、标签、组件成员等组件版本管理:组件的每一次修改升级都会产生一个新的版本,可以进行变更比较、历史回溯、快速回滚,etc.组件发布:每个版本支持单独发布,但生产中只允许一个版本生效。4.2.4逻辑管理一种常见的业务逻辑组织方式是流程图,我们都听过“一图胜千言”这句话,人脑处理视觉信息的效率远高于其他信息,所以流程图式的逻辑组织方式是一种很友好的方式。前期我们也调研了很多低代码平台,综合接入成本或者自研成本进行评估,部门内部已经有成熟的低代码相关平台。后来我们采用了BPM流程引擎的方式。MOLO的流程引擎恰好满足了我们的需求,通过可视化流程编排的方式来开发业务逻辑。后来随着业务的发展,为了满足不同业务团队的需求,我们还引入了BFF流程布局,也是一种可视化的流程图组织方式,具有比较友好的用户体验和强大的在线调试功能。为快速满足业务团队的需求,方便后续扩展,构建平台对业务逻辑层进行抽象,帮助平台快速集成多种业务逻辑实现,如接口注册、BPMN编排、BFF服务编排等.4.2.4.1接口注册模式概述?一般情况下,业务已经通过高代码的方式定制并实现了业务逻辑,使用逻辑编排的沉淀成本会比较高,业务希望快速沉淀相关能力到魔笛,可通过接口注册快速访问特点?主要支持JSF接口注册,操作配置数据主要从DUCC获取4.2.4.2BPMN服务编排模式概述?通过集成MOLO的流程引擎能力,与借助可视化流程编排,相关活动能力s可以分为可重用和可编排的逻辑单元,以后会有变化和变化,代码尽量少改动,通过拖拽的方式快速满足业务需求。?实例隔离:操作配置数据写入BPMN文件,配置数据跟随BPMN文件部署生效。BPMN文件的实例。每个活动都是一个单独的实例。控制集市:可重用的逻辑片段可以封装到控件中并共享到控制集市以供其他业务团队使用。独立集群:可根据不同业务部署不同集群?多版本管理:支持流程模板,可生成不同流程实例版本。通过多版本管理可以实现快速回滚。在线调试:支持在线调试功能,提高研发效率。触发方式:支持JMQ和接口触发方式。4.2.4.3BFF服务编排模式概述。Orchestration是另一个服务编排平台。具有更好的用户体验和强大的在线调试能力,通过不同的编排可以快速满足业务需求特点?配置隔离:运行配置数据通过DUCC获取,多个Activity将共享一个实例,但会使用不同的配置数据?接口管理:支持JSF接口元数据管理能力,各个进程的接口实例相互独立且相互独立?配置管理:支持多种配置方式,如ducc、concrete等?版本管理:支持多版本管理,通过多版本管理可实现快速回滚在线调试:强大的在线调试能力,非常友好的用户体验,提升研发效率触发方式:目前只支持接口触发方式,MQ触发方式还在建设中4.2.5.玩法管理从关系模型可以看出,玩法是业务逻辑的集合。游戏开发的标准和规范是在游戏的开发过程中形成的。4.2.6.表单配置一套完整的解决方案,让用户直接在页面可视区域填写配置表单,用户体验更加友好。独立表单配置,集成模板市场,通过SOP标准流程让运营在后台审核通过后使用魔笛推送数据到DUCC,业务系统通过平台提供的SDK获取数据4.2.7,A/Btestab实验是一个很好的数据驱动的归因工具,可以帮助企业解决很多场景下的归因和量化问题。为什么要做ab实验,比如有两个UI设计,是A好还是B好,所以需要Experiment来判断。活动平台AB功能接入试金石,实现页面AB和楼层AB的能力。该能力还在建设中,即将投入使用。、魔笛、百格(素材投放)、鹰眼(用户接入)等能力助力运营实现一站式赛事搭建与投放。前期主要围绕会前管理功能的建设和会后报告入口的统一。目前,京东科技的所有活动都将通过工作台活动上报的线上流程进行。与前端共建主库能力,引入微前端,制定前端交互协议,服务端交互标准。比如通过SOP方式连接什么样的系统,通过活动模板方式连接什么样的系统。创建事件并根据事件状态(草稿、准备、在线、进行中、结束、下线)管理事件生命周期·首页看板:统计近30天创建的事件,包括事件的状态数据.SOP模块管理:主要是各业务系统的交互能力,包括经营活动费用申请、经营活动权限申请、任务申请、页面建设、素材投放、用户接入等。待办内容?快速创建事件:在工作台中快速创建事件,可同时完成费用申请、股权配置、页面构建、规则创建、投放计划创建、到达计划创建。我的消息:访问消息4.3.2活动期间,资源位点管理主要包括资源位点管理、活动参与数据和活动数据监控等。4.3.3活动后活动活动后主要侧重于活动数据分析和活动回顾数据分析等能力4.4。用户权限系统根据不同的人群(产品、研发、运营等)分配不同的角色超级管理员:权限比较大,拥有所有系统权限权限,只有部门产品才有这个权限产品经理:拥有活动管理,活动报表、页面管理、组件管理、标签管理、模板管理、审批管理、数据看板等,数据权限按照ERP进行隔离用户操作和产品操作:具备活动管理、活动报表、页面管理、组件等功能管理、审批管理、数据看板等。运营可以通过该角色完成工作,数据权限按照ERP进行隔离。研发工程师:拥有活动管理、页面管理、组件管理、审批管理、玩法管理、业务逻辑管理等权限,数据权限按照ERP进行隔离?实习生:权限相对较少,一般只有查看权限?客服BP:有赛事上报权限,赛事上报审批权限5.写到最后赛事平台一路走来遇到了很多问题,饱受质疑。幸运的是,我们已经解决了问题。特别感谢Molo引擎团队和BFF引擎团队的大力支持。赛事平台各项功能将不断完善。也希望兄弟和团队多提意见。您的意见和建议也是我们前进的动力。让我们一起努力,让活动平台赋能更多的业务团队