全新APP京东极速版 从0到1的能力搭建

1472次阅读  |  发布于4年以前

冬雪初融,莺燕回归,迎着春天的气息,在互联网各大巨头争相推出简化版之时,2020年伴随着新冠疫情的发展,京东,迈着敏捷轻盈的脚步,毅然撸起袖子破圈入局。经京东零售市场营销部发起,京东零售平台业务中心主导、联合京东零售技术与数据中台、京东物流集团及京东数字科技集团的多地团队协同,精心出品满足不同市场消费者诉求的轻量级“京东极速版APP”,旨通过围绕低价、简单、好玩能赚钱的核心思路,打造浏览更顺畅、信息更直接、玩法更简单的京东APP产品,多维度为用户营造简单、流畅的美好购物体验。

难点与挑战=

对于接到一个重要性、紧急度极高(高质量交付从0-1全功能APP)且能为用户带来极简购物体验的高价值任务,团队是兴奋的,同时也是紧张的。虽然面临的是全新 APP从0到1的建设,虽然时间非常有限,虽然在疫情期间团队互不见面,虽然主站APP的任何工作不能受损,但是我们毅然决然的迎难而上。

从项目管理把控上,基于特殊场景制定特殊管控方案,第一时间明确各职能1号位、打通多团队协同最关键的信息通道,制定整体里程碑的同时明确技术架构选型。带领涉及到的38个产品条线,14个异地团队,统一目标、高效协同。疫情阶段,团队面临着海量需求,在确保主站需求不受损的前提下,克服重重阻碍,攻坚技术难点。过程中面对诸多挑战以及频繁的多条线变更,协调确保了众多团队严格按里程碑推进,在大家的共同努力下做到了无一延期。因并行前置建设打通版本发布工具全链条的工作,统一各团队发布节奏确保了京东极速版APP版本发布的顺畅,成功准时于4月26日双端提审上架。(Android客户端:4月26日上架,iPhone客户端:4月29日上架)。

可以在短时间内打造全新APP使项目成功,首先在项目内做到将项目时间,需求范围,资源等 “变量”变为“不变量”,制定了很多项目规约,扫清项目阻碍。

项目规约

用10%的时间确定范围、工时、明确里程碑

用20%的时间锁定PRD、解除主要依赖项、完成详细排期

凡变更必审批

凡新增必有承接团队

集成冻结前,服务端必上线

变更、问题、BUG日清

“谁违规谁负责“机制

项目里程碑

在紧张的节奏中,各团队紧密合作,在全体业务、产研团队的共同努力下,按时保质地完成了全新App从0-1的全流程建设,体现了京东零售平台业务中心-平台业务研发部的研发测试团队的技术能力和效率,沉淀了宝贵的最佳实践。

设计亮点

接到项目,设计团队迅速地将业务述求拆解成产品体验方向,从设计关键词中抽离出设计语言并付诸落地,在执行过程中反复推敲体验细节,才有了最终的设计产出。以下是设计大师主要的设计方向,我们所有的努力都是为了给用户营造简单、流畅的美好购物环境。

技术沉淀京东极速版继承了京东APP(下文简称“京东主站”)全部模块中的38个核心模块,另加极速版特有的差异化首页体验和新增5大营销互动活动(现金签到、推推赚大钱、砍价免费拿、红包大富翁、天天抽奖)给用户全新的购物体验。主站庞大的核心功能如何在短时间内完成的架构搭建、研发、测试及版本发布上架的呢?一起来解读京东零售平台业务中心-平台业务研发部的经验沉淀吧。

01基础架构搭建

明确产品需求和背景,结合京东主站现有技术方案,梳理、讨论京东极速版Server/iOS/Android所需的基础架构,技术框架搭建主要围绕以下几项工作展开。

02网关-SOA-前端全流程梳理

考虑到应用的安全性和多应用数据监控,针对极速版重新申请应用【Apple、Android、H5】。而后端针对京东极速版重新发布API并服务部署,同时由网关侧对接口进行访问授权。客户端则新增网络中间件,并按照网关验签规则增加传参,网络凭证校验通过后,再由网关分发到各SOA处理。对于流量、异常等监控,网关、SOA则可以通过端、应用等多维度进行监控部署和查看。

03Server部署

Server端通过cap重新申请域名、配置应用基本信息、建立主机和实例,重新发布应用。而对于API部署,则按照网关规则重新申请并由网关授权访问,而上游需要调用的来源client和调用地址,则以可配置化方式进行访问。考虑到多应用同服务支持,则增加多应用版本映射关系并实现版本映射的可配置化。ZK配置中心中拆分应用新建ZK节点和配置【业务配置(configCenter节点)、机房配置(groupCenter节点)、灰度配置(verify节点)和限流配置(groupCenter→nginx)】,对于扩容的机器,不同网段重新申请数据库访问授权。对于logbook,则接入新应用IP并设置logpath。JIMDB中拆分集群或在缓存key中混入应用标示以独立监控并减少修改成本。对于操作/系统异常跟踪等,则通过追加系统变量-Dappid=AppKey或修改监控点,来拆分ump、jvm监控。应用上线前,及时在ump面板中批量添加相应监控分组,并在ump中配置关键监控点,合理设置好报警阈值,对于关键qps监控点需配置秒级监控。大促前夕对相关监控进行限流预演,以确保监控可用。

04客户端框架搭建

Android/iOS一致采用主框架做加法,各业务做减法,先基础后业务的原则进行开发。Android/iOS分别通过Aura、iBiu搭建基础框架,Android则以jdlib的BaseActivity\BaseFragment\BaseApplication为出发点,完成最小依赖子集的迁移和搭建并提供宿主工程进程初始化实现,iOS则以JDB-基础控件完成配置表、工程的初始化。基础框架搭建过程中,优先确定需要的基础服务能力,如:移动配置、崩溃监控、用户反馈、第三方分享等, 而后优先集成网络、图片、三方工具、加密、通天塔、鹰眼、移动配置、统一控件、DNS等基础服务,待基础服务体系完整之后,各业务再添加依赖并持续集成。整个框架内,Android/iOS各模块之间只需通过DeepLink/JDRouter的方式实现通信,即各模块相互独立完整、可产品化输出。

针对客户端外部引流服务,ULink则重新申请域名并部署,各平台、客户端则根据域名新增配置。而针对OpenApp引流服务,极速版内统一修改Scheme,各WEB服务重新接入京东极速版引流组件,而由服务端下发或客户端内固定的协议跳转链接,则逐个检查并按照新Scheme修改、验证。

对于客户端网络通信,极速版内新增网络中间件,初始化DNS、网络凭证、API前缀等关键信息,并按照网关验签规则实现加密和过期访问。通过应用标示、functionId、端等实现客户端和网关、服务端的跨应用交互。对于极速版和京东商城公用的服务,则保持functionId不变,只需在极速版应用内申请授权访问即可,而服务端则可通过应用标示来进行应用区分。

京东主站有着成熟的模块组件化架构,各模块有成熟和完善的组件可以复用到极速版并根据需求进行增、减。但基于首页、登陆、消息中心、通天塔等公共模块对全新京东极速版需要区别于主站并与主站保持互通。

从UI的设计到交互均简化且差异化主站,作为 全新App的“脸面”,仍需保留电商主要的元素组成,如搜索三扫入口,首焦、顶部分类、百宝箱、核心楼层、feeds的页面结构来保证高效的快捷的流量分发效率。对比主站首页,极速版的首页将简化达80%以上,凸显简单、流畅。基于以上原因,我们决定在保留基础能力的前提下,按照以下顺序“重新”开发首页。

1. 借用基础能力将主站首页中封装的缓存、网络、埋点、跳转、轮播组件以及工具类借用到极速版APP,这些基础能力在主站经受多年的考验,所以从使用成本和稳定性上来考虑借用这些基础能力既能大大节省开发时间,又能保证质量。

2. 对首页其它功能部分重写。除了基础能力部分,主站首页对每个功能支持的都非常细致和完善,再加上历史包袱,如果这部分功能直接拷贝到极速版的话不仅会将极速版变得不极速,也会增加接入成本,所以我们对这部分功能进行了重写。

  1. 分离顶部分类,导航,固定在顶部,对搜索暗纹等功能简化

  2. 重写首焦,百宝箱,核心楼层(抢购,新人)等

  3. 简化为你推荐接入逻辑,去除支持为你推荐多tab能力

3. 简化首页周边功能

  1. 简化App启动流程:由“功能引导”—“隐私授权页”—“启动广告”—首页 简化为:“隐私授权页”—首页。

  2. 更换启动图实现方式:应苹果的要求,将极速版的启动图改为storyboard的方式实现。相比客户端,服务端同样面临着任务重,开发周期短的问题,同样现有系统的组件化能力必须得到尽量多的复用:如监控、降级、限流、缓存、抓图、素材圈选等组件。除了通过复用基础组件,同时更多的工作量在于差异化处理。

京东主站无线统一登录系统早已平台化,提供了各种前端SDK,可以快速实现搭建一个APP的登录模块,并根据各个APP做精细化的流控,同时提供了多样化登录方式:包含但不限于账号密码、手机号登录、APPLE登录、微信登录、授权登录等可迅速满足全新京东极速版APP的需求和进度要求。

基于主站消息中心基础功能,消息服务端复用主站消息架构、以及业务逻辑,快速提供接新的接口,客户端复用部分主站消息中心模版,删减部分冗余沉重业务逻辑,主站消息推送接入中台新消息推送服务,便可快速搭建消息推送和展示模块功能;组件化的组件颗粒度经过极速版的快速支持,对组件进一步的细化和抽离,提升了组件的内聚、复用性和独立性,方便开发维护和对外快速赋能。

页面搭建系统,目前已支持集团内部17个独立业务线,已具备强大的平台化能力。基于已沉淀的平台化能力,快速响应业务需求,高效支持了极速版项目。目前已提供极速版App丰富的基础模板、成百上千的样式组合,便于搭建出千变万化的营销页面。同时,联合营销投放平台,在支持千人千面的基础上,根据极速版目标用户特性,优化算法,智能推荐商品。

测试方面秉承资源合理分配,旨在不影响京东主站APP的迭代周期前提下完成极速版APP测试,节约项目成本。线上化平台快速支持,旨在支持多应用维度全流程工作效率数据化,提升项目各环节工作效率。质量及缺陷日报每日同步,关注并跟进问题解决情况,旨在及时发现问题、排查问题、解决问题,保障顺利交付。基础能力测试前置,旨在保障基础服务、减少业务模块测试工作、方便数据收集保障测试期间及APP交付后,崩溃、异常等数据收集场景正常。

iOS端全新APP能在苹果渠道提审后快速过审与主站多年的版本发布经验密不可分,自4月26日及4月29日Android和iOS上架后,双端UV同比增长迅速,崩溃率平均保持在0.08%左右,在仅有的20天测试阶段达到质量可观的效果,虽然存在部分产品体验问题,我们会持续保持版本优化。

一个全新APP的诞生,一群有梦的年轻人,操着专业技能,带着诚信、拼搏、感恩、协作、担当的信念实现着客户为先正确的事情,那么下个故事会更精彩,京东极速版未来可期,敬请期待~

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8