mPaaS云平台运维系列之—移动发布产品介绍

本文涉及的产品
对象存储 OSS,20GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
云解析 DNS,旗舰版 1个月
简介: 实时发布服务(Mobile Delivery Service,MDS)是 mPaaS 平台的核心基础服务组件之一,提供版本升级包、热修复包、H5 离线包的管理和发布服务,同时支持开关配置、白名单、发布规则管理功能。在客户端集成实时发布服务功能后,用户可以在 mPaaS 插件中生成新的包,然后在实时发布控制台发布新包,客户端收到新包并进行升级。实时发布服务还支持通过白名单进行灰度发布,可以使用高级过滤规则,比如指定机型,来进行更精准的灰度发布。

1.1    产品介绍

实时发布服务(Mobile Delivery ServiceMDS)是 mPaaS 平台的核心基础服务组件之一,提供版本升级包、热修复包、H5 离线包的管理和发布服务,同时支持开关配置、白名单、发布规则管理功能。在客户端集成实时发布服务功能后,用户可以在 mPaaS 插件中生成新的包,然后在实时发布控制台发布新包,客户端收到新包并进行升级。实时发布服务还支持通过白名单进行灰度发布,可以使用高级过滤规则,比如指定机型,来进行更精准的灰度发布。

1.1.1  功能简述

如图1-1所示,目前移动发布服务支持以下功能:

1. 多种资源类型

1App的发布包

2H5离线包

3)热修复包

2. 多种任务类型

1)正式发布

2)灰度发布

3)回滚(目前支持热修复)

3. 多种灰度模型

1)白名单

2)时间窗口

4. 多种过滤条件

1)城市

2)机型

3OS版本

4)网络

5App版本

 

image.png

图1‑1 MDS产品功能图

1.1.2  功能特点

移动发布服务具备以下功能特点:

1.灰度发布

在正式发布之前,可以通过白名单来做小规模发布(比如内部员工)以验证新包的功能是否达到预期。还可以进行时间窗灰度发布,在规定的时间段内发布给规定用户人数。如果达到预期就可以进行全网推送。

2.高级过滤

在进行灰度发布的时候还可以利用高级规则来定义更为精准的白名单人群,比如可以只发给小米手机的用户,多个过滤规则可以叠加,只有在所有的过滤规则都符合的情况下才会推送。

3.实时回滚

在热修复场景下,即使进行了灰度发布,正式上线的时候还是难免会发生问题,这个时候就可以进行实时回滚,自动回滚到发布前的版本。目前仅支持热修复场景。

4.安全验签

为了保障安全性,热修复有自定义的验签流程,保证脚本来源的正确性。mPaaS 插件中提供生成热修复资源包并对包进行加签的功能。

1.1.3  价值优势

移动发布服务的优势有以下几点

1.支持多产品、多任务、多维度发布管理

APP支持,同时支持正式升级、热修复及 H5 离线包以及实时在线推送。

2.智能灰度能力,多种升级策略

内部灰度、外部灰度、人群地域、机型网络等多种规则可供选择。

3. 增量离线包更新能力

减少数据冗余及设备带宽占用,在移动端网络条件不稳定场景下可体现优势。

4.高灵敏度、高可用性

基于升级客户端RPC接口能力,提供高可用的触达能力。

1.2    产品架构

图1-2所示,MDS主要由两个应用组成,分别是mdswebmcube。它们分别负责不同的功能,mdsweb用来提供数据下载通道,mcube提供核心的灰度规则和业务服务。以版本更新链路为例,主要涉及以下链路。

 

image.png

图1‑2 MDS产品架构图

1.RPC请求链路

在手机App发起一个RPC请求(比如App版本更新请求),首先请求会先经过负载均衡到达mPaaSgw网关应用,mPaaSgw通过查询注册中心ZKmcube发布的服务(这里以发布版本更新服务为例),mPaaSgw进而将请求转发到mcubemcube会根据当前RPC请求header等信息,判别当前请求是否在灰度or白名单内),mcube会查询数据库,检查数据库信息是否有更新的版本,如果有则返回对应更新包的相关信息。

2.资源下载链路

客户端在拿到RPC请求返回后,获取到了更新包相关的信息(例如:版本号、下载地址等),客户端根据更新包的下载地址,解析并请求到mdsweb的外网地址,mdsweb收到下载的请求会先检查自己本地的缓存里是否有请求所的更新包,如果有的话就直接返回给客户端,如果没有的话,则会到对象存储中,获取对应更新包并返回给客户端,同时mdsweb本地也会将此更新包进行缓存。

由于MDS这块主要都是文件的下载,特别是全量请求的时候,App请求并发量很高,如果全部都打在后端mdsweb可能会把mdsweb打挂掉或者把行方带宽打满,通常都会在mdsweb前面加一个CDN用于降低mdsweb的并发压力,避免其被打挂掉的可能。

在添加CDN后,下载更新包的请求会先请求到CDNCDN会先检测自己本地缓存是否有对应的更新包,如CDN发现本地缓存中没有对应的更新包,此时会回源到mdsweb 拉取对应的更新包,同时CDN也将该更新包缓存到本地,这样下次同样请求该更新包,CDN就直接把更新包的返回给客户端。

3.管控链路

用户mAppCenter(也就是mPaaS移动开发平台)做一次版本发布,上传一个更新包的,mAppCenter会将更新包和相关信息,经nginx路由转发到mcubemcube拿到此更新包和相关信息后,先把更新包存储到对象存储中,同时把更新包的相关信息和在对象存储中的OSS存储地址,一并存储到数据库中。当用户mAppCenter控制台设置一些灰度发布策略,白名单之类的信息,这些信息会存在缓存中及时生效

1.2.1  服务依赖

MDS在运行过程中自身也依赖一些其他组件,比如数据库、缓存、动态配置、对象存储等,各依赖介绍如下:

1. 启动依赖

MDS启动时,会请求mAppCenter拉取元数据,与数据库中的数据做对比,将差异量入库(RDS/OB)。数据库挂掉会影响MDS提供服务。

2. 运行时依赖

运行时依赖以下部分:

1mAppCenter会聚合MDS的前端页面,前端界面上的请求会经由mAppCenter nginx路由到MDS

2)所有离线资源都会最终落到HDFS/AFS/OSS

3)灰度发布依赖缓存(TbaseHbase等)

4)所有客户端流量都经由MGS对外提供,升级、热修复、离线包及开关功能都走RPC

5)客户端走RPC获取到静态资源时,如果配置了CDN会先经由CDN,如果CDN查找不到则回源到MDSWEB

6DRMZK提供动态配置能力,比如MDSWEB(或者CDN)的内外网地址均由动态配置推送

1.3    网络架构

如图4-3所示,App的请求经过DNS域名解析服务器,经过F5证书卸载到达外网spanner,由HTTP/80mpaasgw,通过DUBBO/TR协议到mcubemcube根据TBase 缓存信息查询灰度策略,之后到数据库OB中查询对应信息,并返回给客户端App 请求。另外这里提供的spanner一般不具备证书卸载的功能,所以通常情况,证书卸载放在dmz F5上实现,到达dmz spanner已经是http请求。

App拿到资源下载地址后,走资源请求链路。同样经过DNS->CDN->F5->outer-spanner->mdsweb->HDFS/AFS如果客户配置了CDN客户端首先从CDN获取,CDN发现无此资源时,回源到mdswebmdsweb先从本机缓存查询,如果没有,则访问HDFS,返回并缓存。

 image.png

图1‑3 MDS网络架构图

1.4    产品特点

1MDS有三个资源请求路径,分别如下:

资源更新,手机端通过RPC请求访问由MGS暴露的MDS服务,检查是否有资源更新。

资源上传,各种资源包的上传,都通过mAppcenter路由到mcube,并最终存入对象存储中。

资源下载,所有资源包的下载路径都由mdsweb暴露,下载路径会在上传时由mcube生成。

2MDS的管控聚合在mAppcenter控制台上,页面上的请求都会经mAppcenter里的nginx路由。

3)当有配置变更时,直接先写入数据库,然后定时刷新到内存中。

4)灰度发布时的白名单等信息会从缓存中读取。

1.5    常用日志

如图1-4所示,包含了MDS常用的运维日志目录,可用于日常运维问题排查使用。

image.png

图1‑4 MDS常用日志介绍

其中经常使用的日志说明如下。

1. 报错日志

1日志路径

/home/admin/logs/mcube/common-error.log

2所属应用

mpaas-mcube

3说明

错误日志。每一行日志都是错误信息,直接查看即可。

4)查询方式

使用 cat common-error.log | grep xxxx 命令搜索关键字(“xxxx”为关键字)。或者使用 less common-error.log 进入文件,之后按照关键字查找定位异常信息。

5日志格式

[时间戳] [requestUri] ERROR [className] [keyword]

6)格式说明

 如表4-1所示,为报错日志格式表。

4‑1 报错日志格式表

名称

描述

时间戳

日志输出时间

requestUri

请求的路径

className

异常类名

keyword

代码中抛异常时打印的日志信息

 

2. 升级日志

1日志路径

/home/admin/logs/mcube/mcube-upgrade-data.log

2所属应用

mpaas-mcube

3说明

升级包RPC信息日志。记录基础升级包的每一次RPC请求上下文,用于排查灰度命中情况。

4日志查询方式

使用 cat mcube-upgrade-data.log | grep xxxx 命令搜索关键字(“xxxx”为关键字)。或者使用 less mcube-upgrade-data.log 进入文件,之后按照关键字查找。

5日志格式

[时间戳] [/// - ] INFO MCUBE-UPGRADE-LOGDATA - [null,563]upgrade,[productId],[productVersion],[osVersion],[clientIp],[utdid],[channel],[netType],[city],[mobileModel],[mobileBrand],[clientPosition],[prisonBreak],[resultStatus],[upgradeVersion],[newVersion],[apiVersion],[existingVersion],[fullMD5],[downloadUrl],[userId],[secene],[silentType]

6)格式说明

如表4-2所示,为升级日志格式表。

4‑2 升级日志格式表

名称

描述

时间戳

日志输出时间

[/// - ]

请求路径。但RPC请求没有路径,因此为空。

productId

Appid + workspaceid + 手机系统类型

productVersion

客户端当前版本号

osVersion

操作系统版本号

clientIp

客户端ip

utdid

设备id

channel

渠道来源

netType

网络类型

city

城市

mobileModel

手机型号

mobileBrand

手机品牌

clientPosition

客户端位置

prisonBreak

越狱标志

resultStatus

Rpc结果状态码

upgradeVersion

全量版本号版本

newVersion

最新版本号

apiVersion

对应的服务线上版本号

existingVersion

是否存在这个版本的标识

fullMD5

升级包md5

downloadUrl

下载地址

userId

用户id

secene

场景

silentType

提醒方式

 

 

 

相关文章
|
5月前
|
移动开发 安全 物联网
润开鸿与蚂蚁数科达成战略合作,发布基于鸿蒙的mPaaS移动应用开发产品
润开鸿与蚂蚁数科签署战略合作协议,发布基于鸿蒙的mPaaS移动应用开发产品,旨在打造多元化创新应用场景解决方案,尤其推动金融行业基于鸿蒙的应用开发。mPaaS鸿蒙原生版提供“交钥匙”方案,降低开发门槛,提高效率。双方合作将加速行业鸿蒙原生应用发展,助力国产化数字化转型。
104 3
|
3月前
|
弹性计算 人工智能 运维
OS Copilot产品体验测评:运维辅助的革新
阿里云推出基于大模型的Linux智能助手OS Copilot,专为Alibaba Cloud Linux设计,旨在通过智能化功能革新操作系统体验。
128 35
OS Copilot产品体验测评:运维辅助的革新
|
2月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之运维中心中的运行日志可以保留多久
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之运维中心无法打开该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之运维中心无法打开该怎么办
|
2月前
|
数据采集 SQL 运维
DataWorks产品使用合集之运维中心的详细日志是一直wait,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
存储 运维 DataWorks
DataWorks产品使用合集之如何把运维中心数据集成里面各个任务的执行时间拉取出来
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
运维 关系型数据库 流计算
实时计算 Flink版产品使用问题之作业运维界面无状态启动并指定时间和代码里指'scan.startup.mode'='latest-offset',哪个优先级更高
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
弹性计算 人工智能 安全
|
3月前
|
人工智能 运维
学习若依的好地方,若依社区,好的运维,社区,也可以运营自己的社区,可以用于投放软件产品和海报展示,有空可以研究怎样运行社区,好的标题设计
学习若依的好地方,若依社区,好的运维,社区,也可以运营自己的社区,可以用于投放软件产品和海报展示,有空可以研究怎样运行社区,好的标题设计
|
4月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之如何访问周期任务运维
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
29 0

热门文章

最新文章

下一篇
无影云桌面