如何借助腾讯云简单、高效移动开发
一直以来,如何能够更快速地构建高性能,高扩展的移动应用一直是移动行业的热点。在传统模式下,开发者通过手动集成所需的各种移动服务,和后台紧密配合去打造精品移动应用。传统模式会造成一些问题:不同的集成和初始化方式,导致代码的散乱以及维护成本的提升,对后台服务的强依赖降低了移动开发者的单兵作战能力,让整个开发体验不闭环。
腾讯云,腾讯移动分析,腾讯移动推送信鸽,崩溃监控 bugly,腾讯计费米大师联手推出移动开发平台,打造移动开发新模式: 移动开发即服务(mobile as a service),首创零代码集成,基于配置的云端一体化闭环开发体验。
然而,虽然很多开发童鞋也都接触过腾讯云的这些服务,但是对如何利用这些服务,在腾讯云平台上打造新的移动开发模式,更简单、高效、高质量的进行移动开发仍然不是特别清楚。
为此,5 月 26 日,腾讯云举办云+社区沙龙,邀请到了五位腾讯云的技术大咖,为开发者详细讲解了在全新的腾讯云移动开发模式下,如何基于腾讯云为移动开发者提供众多基于云的移动服务,帮助开发者简单、高效、高质的完成移动开发工作。
移动开发即服务
传统模式下,移动开发者所能得到的服务通常会以单个产品或者能力的方式提供,比如推送就是提供推送的服务,分析提供的就是分析的服务。这种模式,也许在单个产品下,能做到极致,也能提供良好和方便的接入、使用、管理体验。但对整个移动开发来讲,这种提供单一服务的模式会导致整个移动开发体验不流畅、不完善,各个产品之间的割裂会导致整个移动开发的节奏也是割裂的,无法完整的做到一个事情从头到尾只在一个平台上做,所以腾讯云提出一个全新的模式,移动开发即服务。
腾讯云移动开发平台业务负责人胡泽锐在沙龙中就腾讯云的移动开发即服务进行了详细的讲解。胡泽锐表示,移动开发即服务,包含两个概念,第一是要为开发者提供完整的移动开发生命周期服务。二是要为移动开发者尽量提供最好的使用体验。
腾讯云移动开发平台实际上是腾讯云和腾讯内的各个产品合作,深度整合的产品。如果只是看功能的话,这些产品都不是什么特别新的东西,在腾讯公司内部广泛应用的,在公司外部也有类似的产品提供了对应的服务。比如 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 为桥梁,对接基础设施、商业咨询、数据服务,将可以加速企业获得大数据的能力。从而让企业从大数据受益、给用户提供更优质服务。
评论