大咖说:如何借助腾讯云简单、高效移动开发
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
一直以来,如何能够更快速地构建高性能,高扩展的移动应用一直是移动行业的热点。在传统模式下,开发者通过手动集成所需的各种移动服务,和后台紧密配合去打造精品移动应用。传统模式会造成一些问题:不同的集成和初始化方式,导致代码的散乱以及维护成本的提升,对后台服务的强依赖降低了移动开发者的单兵作战能力,让整个开发体验不闭环。
腾讯云,腾讯移动分析,腾讯移动推送信鸽,崩溃监控bugly,腾讯计费米大师联手推出移动开发平台,打造移动开发新模式: 移动开发即服务(mobile as a service),首创零代码集成,基于配置的云端一体化闭环开发体验。
然而,虽然很多开发童鞋也都接触过腾讯云的这些服务,但是对如何利用这些服务,在腾讯云平台上打造新的移动开发模式,更简单、高效、高质量的进行移动开发仍然不是特别清楚。
为此,5月28日,腾讯云举办云+社区沙龙,邀请到了五位腾讯云的技术大咖,为开发者详细讲解了在全新的腾讯云移动开发模式下,如何基于腾讯云为移动开发者提供众多基于云的移动服务,帮助开发者简单、高效、高质的完成移动开发工作。
移动开发即服务
传统模式下,移动开发者所能得到的服务通常会以单个产品或者能力的方式提供,比如推送就是提供推送的服务,分析提供的就是分析的服务。这种模式,也许在单个产品下,能做到极致,也能提供良好和方便的接入、使用、管理体验。但对整个移动开发来讲,这种提供单一服务的模式会导致整个移动开发体验不流畅、不完善,各个产品之间的割裂会导致整个移动开发的节奏也是割裂的,无法完整的做到一个事情从头到尾只在一个平台上做,所以腾讯云提出一个全新的模式,移动开发即服务。
腾讯云移动开发平台业务负责人胡泽锐在沙龙中就腾讯云的移动开发即服务进行了详细的讲解。胡泽锐表示,移动开发即服务,包含两个概念,第一是要为开发者提供完整的移动开发生命周期服务。二是要为移动开发者尽量提供最好的使用体验。
腾讯云移动开发平台实际上是腾讯云和腾讯内的各个产品合作,深度整合的产品。如果只是看功能的话,这些产品都不是什么特别新的东西,在腾讯公司内部广泛应用的,在公司外部也有类似的产品提供了对应的服务。比如NTA、bugly、计费米大师,应用宝等等。
腾讯云移动开发平台把这些产品做了一个深度整合,形成一个整体,以一种全新的开发模式和体验提供给开发者。该平台具有三个关键点。
首先,易用。即移动开发平台为开发者提供了丰富、可读性很强的文档支持。其次,效率提升。这个提升包括两方面,便捷的接入,齐全的功能。第三,高留存。从统计数据来看,开发者在腾讯云移动开发平台上最终的留存率可以达到50%。
之所以腾讯云移动开发平台可以达成这样的成绩,是因为抓住了移动开发者开发应用的痛点。实际上,开发者在开发移动应用时,主要的痛点在于代码散乱、沟通成本高、研发效率低下,而开发者的核心需求则在于把精力放在核心业务上。这就意味着对一些通用的需求,其实都应该由平台来提供,移动开发者则只需将主要的关注点放在如何满足核心业务上。
因此,对于移动开发平台的设计,则应该从下面几方面来考虑。
1、架构思维,帮助开发者以架构师的思维构建移动应用。
2、傻瓜式应用,使用的方式应该越简单越好。
3、灵活搭配,即各种功能在开发的任何阶段即插即用,按需使用。
基于这样的考虑,腾讯云移动开发平台为开发者提供了一个零代码集成,基于配置、云端一体化闭环的开发平台,覆盖从研发、测试、发布、运维到运营的移动开发生命周期全流程,从而可以帮助开发者简单、高效、灵活的开发出移动应用。
腾讯信鸽海量移动推送服务的构建
移动消息推送,作为用户触达的一种方式。基本上是开发者在开发移动 App 时的一项标配功能。然而受限于终端环境、基础设施、后台服务能力等等因素,要做到百亿级消息推送、推送效果实时跟踪,还是有不小的技术挑战。如果再进一步,只给用户推送他感兴趣的内容,做精细化运营,则需要借助大数据和机器学习平台,在推送系统中加入 BI 的能力。
腾讯信鸽高级工程师甘恒通介绍说,对于消息推送来说有三个主要环节,第一个环节是检索出需要推送的目标用户,第二步是选择合适的通道进行消息的分发,最后是终端收到消息后进行展示。对于移动推送服务来讲,最基础的是需要在终端、后台、数据服务三个层次做精做细。
而终端所面临的挑战,主要是:
-
Service 的保活
-
终端发布后的运营能力
终端 Service 保活,最朴素的做法,是为每个 App 起一个独立Service、建立一个长连接。这种方式实现相对简单,但是对用户来讲,会消耗更多手机的资源。信鸽移动推送为了兼顾服务质量和用户体验,使用的是共享通道的方式,更加省电、省流量。信鸽服务了公司内外很多大体量活跃 App,这些 App 能够有效提升 Service 存活率。
至于终端发布后运营能力,主要有如下 3 个维度:
-
App 粒度调度能力:可以通过后台云控,实现用户无感知的配置下发、通道切换等操作;支持 App 粒度的云端调度。
-
准确的统计数据上报。对推送来讲,有正向效果,也有反向效果。然而要拿到准确的统计结果,需要注意很多细节。比如,国内有不少定制 ROM,调用接口在通知栏展示消息,消息是否真的展示给用户,可能会受机型的限制;另外,也没有很统一有效的标准查询接口,查询用户是否打开推送。这里要想拿到准确的统计数据,就都需要深入了解终端环境,做些技术上的优化实现。
-
SDK 质量监控。为了保证终端的质量,腾讯信鸽构建了一套从Crash上报、报警、在线修复的Crash平台。这样能严格保证终端的质量。
腾讯信鸽包含了终端、接入层、后台逻辑层,存储、数据分析平台、消息网关这几大部分。对于数据分析平台来说,给用户提供实时的效果跟踪,多维分析的能力。整套系统构建在Docker云化基础之上。经过这一两年的建设之后,信鸽现在初步形成了一个高性能、架构可伸缩、易于运维的系统。
而腾讯信鸽的使用,具有一定的经验和技巧,甘恒通在沙龙上介绍了两点。一是推送性能,即怎样推的更快。二是运维效率,即怎么改善运维效率。
此外,甘恒通还介绍了这套研发体系的三大优点:
1.保证版本一致性,减少人工打包、解包带来的版本交付件(程序、脚本、配置文件等)不一致的问题
2.环境隔离,一体化流程引入配置中心,开发、测试、运维使用不同的配置中心,根据不同的场景分别管理版本的配置信息,并且使得运行实例的配置可方便定制和追溯
3.并行编译和测试,一体化流程充分利用了gaia硬件资源的虚拟化,原有流程的编译和测试在有限的、固定的物理机上进行,优化后可以在任意的虚拟机器上并行进行,相当于开发人员和测试人员每个人都有一套独立的开发和测试环境,不在受限于机器的数量
另外,信鸽还支持很多增值服务,包括精确推送、数据、支撑平台以及可视化操作等。
移动端数据存储与分发
如果开发者从终端的角度来看待数据存储的场景的话,可能会有很多的从业务场景,比如头像、图片、音频、视频、短视频等非结构化的数据,而这些数据和URL需要去适配很多的接口。而如果这些适配都需要移动开发者与后台对接的话,移动开发者可能会有非常多的事情需要处理。从终端来说,移动开发者希望能够得到统一的仓储服务,真正能把数据看作是透明的,只需关注URL进行处理。
腾讯云存储业务终端负责人董朝介绍,腾讯云有一个整体的COS服务,是一个对象存储服务。数据传送上来之后,会在COS的系统内部整体仓储起来,并配合腾讯云已有的,如CDN的能力帮助用户去分发。这样,对于终端的开发者来说,只需要一个SDK,剩下所有的事情都可以交给腾讯云托管。
COS系统具有很高的可用、可靠性,数据的可靠性达到11个9,数据的可用性、输入可访问性达到3个9。而且COS系统还具有鉴黄、安全防护等通用功能,可以帮助移动开发者大幅减少在这些通用功能方面的时间消耗。
COS系统具有三层架构,在第一层的数据接口层,移动开发者通过API、SDK、控制台等常用的方式使用服务,从这个意义上来说,其可以简单地归结为一个使用界面层。
第二层是分布式的高可用集群,即应用接入层,除了API层,上面还有一个应用接入。应用接入会把鉴黄、水印等通用服务接入进来。这样就可以给开发者提供一个通用的能力,开发者可以自主去选择需要的能力,然后把这些能力集成进去,服务端就不再需要再次开发这些功能。
在传输层,主要解决的就是上传和下载的问题,上传主要是KTS和数据稳定性的问题。此外,还有关键的下载分发的问题,而在COS系统中有成体系化的CDN加速策略、动态加速策略,能够让数据更快的从云端下载。
不过,谈到数据存储,权限与安全应该是用户最关注的问题。因此,在此方面,COS系统引入了一整套的访问控制的策略(CAM)以及临时密钥的方法来确保存储系统的安全。COS系统基于腾讯云之上,有一整套的分布式系统处理整个COS服务。在存储落地的过程也考虑了很多的问题,比如安全性的问题,系统支持服务端加密,同时也支持客户端加密,服务器非对称加密这些策略,当然,像常见的版本控制,跨区复制等存储系统通用功能也在COS系统的服务之列。
目前,整个COS的产品在世界各地都分布有节点,这意味着如果服务需要出海或者跨国服务的话,COS将是一个非常好的选择。
围绕着COS-SDK产品的开发,董朝分享了制作COS-SDK上的一些经验,他表示,SDK是作为一个服务的界面,而COS服务更多的是后端服务,它很多的考虑点不是在终端上,所以需要把服务进行封装,更好的供用户使用。而好的SDK需要具备三个特征,即好用,快速上手、高性能。这些词语落实到SDK具体的形态上,实际上可以把SDK分成几个模块。第一个是最核心的,即代码或者二进制编码,是分发形态。第二个是SDK和用户交互的API,第三个是文档和Demo,只有把这三个模块都做好,才是一个好的SDK。COS-SDK的制作,就是遵循了这样的规则,因此可以为移动开发者提供优良的使用体验。
腾讯移动分析与产品运营
腾讯移动分析高级工程师杨列昂就腾讯移动分析与产品运营与到会的近二百名观众进行了交流。杨列昂表示,根据移动APP的需求层次,可以归纳成 4 个不同的发展阶段:
最开始要看指标和报表,要汇总来自不同平台的数据;到了APP初具规模,开始有付费和盈利模式,企业就进入了精细化运营的阶段。这个阶段更加关注付费转化、流失等用户行为。接下来就是有针对性的做营销推广,引流新用户。如何把控广告的投放、APP的下载、最终完成注册和付费的各个环节,如何衡量营销的效果,成为这个阶段关注的问题;做完前面这些步骤以后,还可以更进一步,利用大数据的手段解决细分行业的痛点难点。输出一套行业的标准化解决方案,帮助新来的企业快速突破运营问题。
这整个过程,就是从了解业务整体状态,到针对性的关注特定人群,然后采取行动,最后成为行业专家的过程。
腾讯MTA分析系统可以帮助用户尽快成为行业专家,MTA除支持移动端主流的两大系统Android和iOS外,还支持Html5。腾讯也有专门针对Html5的分析产品。还有一些App,比如微信内部承载了H5容器,也就是常说的Hybrid App。除此之外,腾讯还使得Native和H5的数据实现了互通,H5借助App的上报通路即可实现更稳定的上报。
在微信小程序诞生之初, 腾讯就推出了相关的统计分析服务,在智能家居、智能硬件领域,腾讯也推出了相应的产品和软件开发包。
不过,在介入MTA时,用户经常会问一个问题:如何知道用户的分布状态。这就不得不提腾讯的移动用户画像。腾讯的业务线非常广泛的,在社交、新闻、文娱、金融等各个领域,都有很多的布局。很多App有数亿甚至数十亿的用户规模,每年产生千亿级的数据流损。如何对这些数据做一个有效的规整,打通数据孤岛,的确是一个难题。
实际上,数据经过连接、分析,最终将得到一个标准化的结果。其中既包括结构化的数据,也包括一些非结构化的数据,再经过整个的处理流程之后,就转化成腾讯多维海量的一个数据资产。这其中涉及到很多的算法和特定的领域问题,其中最基础的,就是涉及到设备特征的识别。在设备识别方面,安卓系统虽然可以通过API获取IMEI的标识,但在山寨机和终端模拟器的影响下,分析统计结果也会存在偏差。
基于以上事实,腾讯推出一套方案,通过移动端的设备识别,设备指纹信息,在服务器端加密下发的方式,解决了在不同场景下设备识别的问题。这称之为MID。另外通过一套离线的分析系统,可以把设备、刷机、重置设备而重复分配的MID关联起来,从而实现最终的一致性。
当企业进入到一个精细化运营的阶段,这时候最重要的是归因分析。腾讯提供了多种手段方法,比如细分流失用户的特征,通过一些方式来建模,最后去对潜在流失用户做一个预测等等。
在营销推广环节,腾讯从人群选取、广告投放、效果跟踪、流量清洗几个维度来改善这个过程。
在人群选取上,MTA提供了基于规则、基于算法的用户分群方式。可以有针对性做个性化营销。
同时,MTA系统和 SPA、WIN 等广告平台打通,支持在腾讯几乎所有流量上的广告定向投放,也可以用 Lookalike 的方式,扩散获取新用户。
用户分群数据,也提供了导出的方式。支持将数据导出到业务自有平台,方便做进一步经营分析以及沉淀数据资产。如果分群的效果不满意,或者希望拓展新的用户,MTA也提供了lookalike的形式,通过和大盘用户的关联,叠加的排序,可以找到目标人群在不同兴趣类目上的关联度,可以注意到在一些平常认知不到的类目。
更为重要的是,MTA不仅是对接了top10的平台,包括腾讯、爱奇艺、百度、今日头条、陌陌等一些标准的广告渠道,还支持了定制化的平台对接。因为这个渠道对接,在PC端通过用cookie关注数据,因为流量端、分发中心和应用激活分属在不同的层面或者App,很难串联起来的。腾讯提供了两套方案,一是渠道安装包的可扩展的动态签名方案,在下载安装包的过程中实时对应渠道的安装包。还有一种采用关联算法,通过采集到了IOBS信息、指纹信息来搜集下载安装、激活这两部分的行为。
最后,App 流量推广,无法回避流量作弊的问题。腾讯也在积极开展流量作弊的分析工作。流量清洗的模块,简单可以分为 3 层:特征层、识别、应用。
巨额利益驱动,黑产的发展也以实现机器智能化。可以用很低的成本,模拟正常用户的行为、甚至是后续的活跃数据。常规的规则和模式识别,已经无法满足诉求。未来的对抗网络,以及神经进化网络,可以辅助更好的识别模式。从黑产常用手法,做有针对性数据、系统建设,可以取得更好清洗效果。
实际上,单一企业,无法满足所有用户诉求,未来将会有更多的协同合作。以 腾讯MTA 为桥梁,对接基础设施、商业咨询、数据服务,将可以加速企业获得大数据的能力。从而让企业从大数据受益、给用户提供更优质服务。
米大师如何助力产品打造千亿级营收
对于开发者开发移动应用而言,移动支付是他们绕不过去的一道坎,而米大师就是这样一个支付平台。而实际上,腾讯庞大的收入和复杂的业务后面,米大师是整个腾讯的计费结算的唯一平台,承载了所有的腾讯游戏业务,如日活大几千万的王者荣耀,吃鸡、CF等;还有腾讯云和效果广告;包括微信小程序支付、QQ钱包支付。
腾讯计费架构师段克晓表示,米大师的成功绝非一朝一夕之功,而是经过了15年的打磨,这期间经历过了运营商计费,云支付开放平台,移动支付米大师和开放四个阶段。
段克晓介绍说,米大师首先是一个全平台的支付SDK入口,通过网络路由和系统容灾,选择一个最近最快捷的接入点进入支付系统,经过风控安全交易,完成扣款后,需要进一步将交易落地到DB,对于海量交易,需要分布式存储架构,防止存储服务宕机。和支付系统并存的就是数据服务,需要对用户的历史交易,用户的画像特征进行分析,为用户推荐最优的交易方式,最优的营销活动。任何系统的异常都要能进行可视化监控告警。直观上,整个腾讯计费系统由在线交易,数据服务和运营平台三大系统组成。
实际上,计费系统的需求也是多变的,因此,需要不停的拓展功能,拓展不同的支付渠道。新功能和新特性要上线时,最好是能通过沙盒环境或者白名单进行灰度验证再发布。因此米大师系统架构按功能分层,模块化,可进行垂直和水平方向的扩展。
对于交易来说,最重要的就是可靠性保障,米大师通过实时交易、订单流、账单流的三级策略,来保障扣款异常情况下的交易一致性。而为了进一步保障交易的一致性,米大师通过对交易系统的数据同步采集、撮合、分析和告警,无论是伪造票据流水,还是篡改DB,通过稽核平台都能够同步发现,与交易系统形成互补。
同时,米大师系统模块在设计时都要求有跨多机房部署能力,容灾难度更大的是数据层,以米大师自研的金融级数据库TDSQL为例,主要由网关、DB、zookeeper和scheduler几部分组成,DB一般是1主2备,也可以扩展为1主多备;DB节点和zookeeper节点分别部署在不同机房。
这样单机或者单机房出现孤岛网络的情况,都可以继续保证数据服务有效进行。
虽然在概率上几乎不可能出现深圳多机房同时不可用的情况,但计费数据是公司非常核心的数据,所以腾讯在上海搭建同样架构的数据存储层集群,异常情况下,可以直接将支付流量引导到上海提供服务。
通过这样的容灾设计,数据层单机或者单机房出现孤岛网络的情况,都可以继续保证数据服务有效进行。虽然在概率上几乎不可能出现深圳多机房同时不可用的情况,但计费数据是公司非常核心的数据,所以腾讯在异地搭建同样架构的数据存储层集群,异常情况下,可以直接将支付流量引导到异地SET提供服务。
针对节假日的交易洪峰问题,米大师构建了分布式交易引擎,支付子系统按场景、业务、流量进行解耦,核心业务分SET部署,SET之间物理隔离,活动期间将大流量调度到独立SET,确保其他业务交易正常,并对独立SET进行一键扩容应对业务洪峰。
而且从现网数据采集到TDBANK上报再到TDP实时计算,整个过程实现了秒级别的处理,实时计算结果再存入内存KV,但基于内存的存储空间是有限的,为了能查看更长周期的监控数据,并用更长周期的数据来进行告警推荐,采用了“冷热数据分离”,这样就可以轻松保存半年的细粒度数据和永久保存天数据了。
支付系统另一个无法绕过的坑就是风控。风控主要是数据采集和分析,并将分析结果应用与支付流程。米大师通过事前发现、事中检测、事后审计的方式,覆盖整个支付交易链路。比如,在设备方面。一方面通过设备标识区分用户常用设备信息,另一方面根据数据挖掘获取设备黑名单,实时拦截黑名单设备的交易请求;通过用户位置信息,判断该笔交易是否代充。
此外,米大师从交易数据、游戏行为、设备等维度,建立500多个风控策略模型,准确识别异常交易场景,有效防范渠道汇率差套现、第三方低价代充、羊毛党恶意刷单等风险,充分保证应用实收。米大师交易风控平台,目前日均恶意交易拦截达千万次,为接入业务挽回损失百万元以上。
而为了跟随全球化的部署,米大师重构了计费引擎,实现了全球的一套分布式架构,这套架构可以支持到在线请求按需加载,目前已经接入全球80多个支付渠道,覆盖180多个国家地区。而米大师的接入很简单,只需三个步骤:商户号申请、接入配置、集成SDK,一次接入后,即可享有7大能力,比如全场景能力、账户服务、风控能力、数据服务、商户服务、腾讯权益。
基于十余年服务多行业、各生命周期产品的计费运营经验,米大师建立了全面的互联网增值服务营销体系,通过对付费数据和用户画像分析,根据用户兴趣、付费习惯、支付能力等,提供针对用户的个性化营销活动推荐,帮助开发者节约运营成本,提升活动价值。
比如,按照消费能力发放不同额度的抵扣券,根据消费习惯发现该用户在每月某几天消费比较频繁可以主动推送营销精确触达用户。
开发者使用米大师营销系统,可自助化完成首充、满赠、限次、打折、红包、抵扣券等营销活动类型配置,0代码轻松上线营销活动,并可以快速查看营销效果,完善营销内容,实现营销效果的最大化。
段克晓的精彩演讲,为本次沙龙画上了一个圆满的句号,而从现场观众参与的热情程度和火热气氛中,腾讯云移动开发即服务为开发者带来的远不止一场沙龙活动那么简单,更深层次的是对移动开发者在开发理念和模式上带来了巨大的冲击和改变!
现场资料:
董朝:打造云存储服务:移动端数据存储与分发.pdf
甘恒通:腾讯信鸽海量移动推送服务构建.pdf
胡泽锐:移动开发即服务——腾讯云移动开发平台技术分享.pdf
杨列昂:腾讯移动分析与服务架构.pdf
段克晓:助力产品打造千亿级营收——腾讯计费(米大师)支付服务之道.pdf
问答
如何在云服务器已有的开发系统下搭建开发环境?
相关阅读
杨列昂:腾讯移动分析与服务架构
微服务架构云端应用
移动开发之css3实现背景几种渐变效果
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1139894?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~