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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
mPaaS订阅基础套餐,标准版 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品基本概念。

1.1    产品介绍

移动网关服务(Mobile Gateway ServiceMGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。

1.1.1  功能简述

如图1-1所示,目前MGS已有的功能分别是:API注册、API配置、API限流、API授权、API模拟、API缓存、API测试、API分析、数据加密。

1API注册:可以在移动开发平台上轻易、快速、方便的注册API,可以快捷的开启、关闭API

2API配置:可以移动开发平台上快捷的调整API的配置,比如超时时间、缓存等等。

3API限流:常用于大促、活动,类似双十一等,主要为了防止客户端短时间高并发大量请求打挂服务器。

5API授权:是指一个API在调到网关之后,网关再调客户服务器上进行鉴权的一个服务,当授权通过后请求才能打到服务端。

6API模拟:客户端发起请求到达网关后,网关模拟服务端,直接将模拟的数据返回客户端。

7API缓存:在大并发的情况下,网关将客户请求的结果缓存在本地,在缓存过期之前,可以直接返回给客户端,可以提高整个并发的流量,提升客户端请求速度的体验。

8API测试:网关模拟客户端的请求,将模拟数据发到服务端,用于测试服务端。

9API分析:API分析提供常用的API的统计数据(比如API调用量、API报错量、平均调用耗时、API调用同比、API报错同比、API耗时同比)。

10数据加密:设置通信报文的的加解密配置,提高整个客户端到服务端的攻击门槛,保障数据通信的安全性。

image.png

图1‑1 MGS产品功能图

1.1.2  功能特点

移动网关是连接移动客户端跟服务端的桥梁,移动客户端通过网关来访问后台服务接口。移动网关能够实现以下功能

1自动生成客户端的RPC调用代码,用户不需要关心网络通信、协议以及使用的数据格式。

2将服务端返回的数据自动反解生成Objective-C对象,无需额外编码。

3提供数据压缩、缓存、批量调用等增强服务。

4统一进行异常处理,如弹出对话框、Toast 提示框等。

5支持RPC拦截器,实现定制化的请求与处理。

6实行统一的安全加密机制和防篡改的请求签名验证机制。

7限流管控,保护后台服务器。

1.1.3  价值优势

移动网关服务的优势在于以下几点

1简单配置即可适配多种终端,连接异构的后端服务。

2自动生成移动端SDK,实现前后端分离,提升开发效率。

3支持服务注册、发现与管控,实现服务聚合与集成,降低管理成本和安全风险。

4提供优化后的数据协议与通讯协议,提高网络通讯质量和效率。

1.1.4  应用场景

移动网关服务有以下几个应用场景:

1. 开放移动服务能力

随着移动互联网、普惠金融的迅猛发展,企业越来越迫切地希望将现有成熟的后端服务开放出去。接入移动网关服务,无需额外工作,即可形成移动服务能力。

2. 一套服务,多端输出

移动互联时代,服务需要支持多样化的终端设备,这往往极大地增加了系统复杂性。企业只需在移动网关中定义服务,便能支持多种终端接入。

3. 异构服务,建立标准统一的对外服务接口

企业往往存在多种语言和结构的后端服务,只需遵循一定的标准接入移动网关,就可以对外开放标准统一的服务接口。

1.2    产品架构

MGS的产品架构图,图1-2所示。首先APP的请求会经过一个负载均衡设备,这个负载均衡设备可能是F5ALBSLB等软负载产品,经过负载均衡之后会把请求转发到mPaaSgw应用,mPaaSgw再根据这个API在开发平台配置的后端服务的URL和配置的协议类型,通过对应的协议转发到对应的后端的业务服务器。mPaaSgw一般会部署多个容器,每次请求会通过负载均衡的机制,发送到对应的mPaaSgw上。然后mPaaSgw和后端的业务服务器根据不同的协议选择不同的注册中心来做服务发现,例如使用TR模式的话则选择SOFA-Registry作为注册中心使用dubbo模式的话则选用Zookeeper作为服务注册。在实际使用中,更多情况可能使用HTTP协议,那就不需要再做服务注册了,只要在网关注册API的时候配置后端业务的HTTP器地址即可。

image.png

图12 MGS产品架构图

mAppCentermPaaS的管控控制台,也就是移动开发平台。在mAppCenter上可以配添加、配置API接口,之后配置的API信息会经nginx路由转发到一台mPaaSgwmPaaSgw会将数据更新落库,同时ZK会有一个通知操作,通知所有的mPaaSgwmPaaSgw会拉取最新的数据库配置更新自身缓存,避免因缓存旧数据而导致错误。

通过此过程可以到看到mPaaSgw自身也依赖一些其他组件,包括数据库、监控、ZK、动态配置。数据库主要是负责存储网关的各类配置数据,例如API分组的信息、API的配置信息、是否开启缓存等,在阿里云底座下使用的是RDS,在AntStack底座下使用的是OceanBase

其中MGS监控主要是通过网关对在线API请求的日志,实现在线监控、错误数监控、耗时监控等情况的监控

动态配置主要是用于动态的调整一些运行时配置,例如日志的打印级别、动态调整一些参数等等,根据实际的部署模式,可以选择用SOFA中间件的SOFA-DRM或选择Zookeeper 去做推送。

WAF流量清洗,因为MGS对请求的requestbody做了加密,所以WAF放在MGS前面获取不到原文数据,很多功能就变成了摆设。所以目前已输出的环境下是WAF一般做流量镜像,部署MGS客户后端业务之间做流量镜像

1.3    网络架构

如图1-3所示,首先入口是手机AppApp的请求经过DNS域名解析服务器,经过防火墙F5进行证书卸载,转发到DMZ区的外网spannerspanner直接拿到HTTP的请求信息,再路由转发到mPaaS应用区的mpaasgwmpaasgw应用再通过DUBBP/TR/HTTP协议,把请求转发到后端的业务上面。mpaasgw会根据请求信息的情况进行处理,如是客户自己的业务请求,则转发到行方应用区,如是mPaaS的框架请求,则通过DUBBP/TR协议转发给mPaaS的内部组件进行处理。由于应用都是部署在内网,所有请求使用HTTP协议就完全满足了,当通过mAppCenter访问mpaasgw时,是指定80端口,经内网spanner后从8081端口转发到mpaasgw

image.png

图1‑3 MGS网络架构图

1.4    产品特点

1MGSmPaaS中唯一会影响业务的服务,为了最大化可用性,有如下保障措施:

MGS要求至少两个实例保证最基本的高可用;

MGS进程有守护进程,假设MGS进程意外崩溃,可以马上拉起;

MGS运行时不依赖数据库,因此即使数据库出问题,MGS依然可以正常服务。

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

3)当有配置变更时,除了会写入数据库,还会通过动态配置服务进行推送,实时更新所有节点内存中的数据。

4mPaaS其他组件的RPC服务也会通过MGS暴露。

1.5    常用日志

MGS常用的运维日志目录介绍如图1-4所示。

image.png

图1‑4 MGS常用日志介绍

 

1. API摘要日志

1日志路径

/home/admin/logs/gateway/gateway-page-digest.log

2格式

时间 - (请求地址,响应,结果(Y/N,耗时,operationType,系统名,appId,workspaceId,结果码,客户端productId,客户端productVersion,渠道,用户ID,设备ID,UUID,客户端trackId,客户端IP,网络协议,数据协议,请求数据大小,响应数据大小,TraceId)

3)样例

2022--01-12 11:15:57,700 - (/mgw.htm,response,N,14ms,com.alipay.gateway.test,-,2A9ADA1045,antcloud,6666,-,-,-,-,WbYn8BX+5YQDAAIukHtlhSMt,f6223958-08d5-4e2a-aa2b-3f1a8b5aa6f7,f6223958-08d5-4e2a-aa2b-3f1a8b5aa6f7,100.97.90.85,HTTP,JSON,26,0,79c731d5150518615768657974443)

2. API详细日志

1)日志路径

~/logs/gateway/gateway-page-detail.log

2)类别

请求日志:[request]

响应日志:[response]

当日志级别为DEBUG时,会将requestDataresponseData打印出来。

3)格式

请求日志如下:

日志打印时间 [客户端IP][TRACEID] 日志级别  - [日志类型]operationType=RPC操作码,appId=客户端APPID,workspaceId=客户端workspaceId,requestData=请求数据,sessionId=-,did=设备ID,contentType=内容类型,mmtp=是否开启 mmtp 协议,async=是否异步调用

响应日志如下:

日志打印时间 [客户端IP][TRACEID] INFO  - [日志类型]operationType=operationType,appId=appId,workspaceId=workspaceId,,responseData=返回数据,resultStatus=返回码,contentType=内容类型,sessionId=会话ID,did=设备ID,mmtp=是否开启MMTP,async=是否异步

4. 样例

请求日志如下:

2021-1-12 15:37:10,208 [100.97.90.113][79c731d51513841830208829314258] INFO  - [request]operationType=com.alipay.gateway.test,appId=2A9ADA1045,workspaceId=antcloud,requestData=***,sessionId=-,did=WjtkmWe1uHsDADl7BEleyK2L,contentType=JSON,mmtp=F,async=T

响应日志如下:

2022-1-12 15:37:10,229 [][79c731d51513841830208829314258] INFO  - [response]operationType=com.alipay.gateway.test,appId=2A9ADA1045,workspaceId=antcloud,responseData=***,resultStatus=1000,contentType=JSON,sessionId=-,did=WjtkmWe1uHsDADl7BEleyK2L,mmtp=F,async=T

3. API统计日志

1)日志路径

~/logs/gateway/gateway-page-stat-s.log

2)格式

时间 - operationType,appId,workspaceId,结果(Y/N),结果码,压测标识(T/F,请求总量,请求总耗时(ms

3样例

2022-1-12 15:34:58,419 -com.alipay.gateway.test,2A9ADA1045,antcloud,Y,1000,F,1,3

4.网关线程统计日志

1)日志路径

~/logs/gateway/gateway-threadpool.log

2)格式

时间 [线程名,ActiveCount,PoolSize,LargestPoolSize,CorePoolSize,MaximumPoolSize,QueueSize,QueueRemainingCapacity]

3)样例

2021-12-21 16:33:32,617 [gateway-executor,0,80,80,80,400,0,1000]

5.网关配置日志

1)日志路径

~/logs/gateway/gateway-config.log

2)功能

此日志记录网关配置变更的相关通知。

6.网关默认日志

1)日志路径

~/logs/gateway/gateway-default.log

2)功能

网关默认日志,未指定特定日志的埋点都会打到此日志。

7.网关错误日志

1)日志路径

~/logs/gateway/gateway-error.log

2)功能

此日志记录错误和异常堆栈。

目录
相关文章
|
6月前
|
移动开发 安全 物联网
润开鸿与蚂蚁数科达成战略合作,发布基于鸿蒙的mPaaS移动应用开发产品
润开鸿与蚂蚁数科签署战略合作协议,发布基于鸿蒙的mPaaS移动应用开发产品,旨在打造多元化创新应用场景解决方案,尤其推动金融行业基于鸿蒙的应用开发。mPaaS鸿蒙原生版提供“交钥匙”方案,降低开发门槛,提高效率。双方合作将加速行业鸿蒙原生应用发展,助力国产化数字化转型。
119 3
|
3月前
|
运维 Kubernetes 监控
|
4月前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
89 0
|
4月前
|
弹性计算 人工智能 安全
|
5月前
|
开发框架 运维 前端开发
构建一体化运维平台的八大功能
【6月更文挑战第6天】构建一体化运维平台的关键8个基本功能。
|
5月前
|
设计模式 运维 监控
运维一体化平台的能力要素
【6月更文挑战第7天】一体化运维平台的重要性,旨在建立覆盖运维全生命周期的统一平台,提升效率,保障业务连续性,实现数字化运维管理。
|
6月前
|
SQL 运维 前端开发
一款现代化、高颜值的一站式智能运维管理平台
orion-ops-pro —— 一款现代化、高颜值的一站式智能运维管理平台,集资产管理、资产授权、批量执行、计划任务、WebShell、WebSftp、角色管理、系统管理等功能于一体,致力于简化运维团队的治理工作。
80 1
一款现代化、高颜值的一站式智能运维管理平台
|
6月前
|
弹性计算 运维 监控
【阿里云云原生专栏】自动化运维的艺术:阿里云云原生平台的自动化运维工具集
【5月更文挑战第28天】阿里云云原生平台提供全面的自动化运维工具,涵盖监控告警、资源管理、部署更新、故障自愈、安全管理和数据备份等方面,简化运维工作,增强系统稳定性。通过智能工具集,运维人员能专注于业务优化,实现高效运维,为企业数字化转型提供有力支持。
240 3
|
6月前
|
运维 监控 druid
平台组成-运维监控模块
运维监控模块关注服务器、应用、数据库及Minio等状态,包括自研和开源组件。
|
6月前
|
运维 前端开发 JavaScript
运维管理平台实现与学习心得
运维管理平台实现与学习心得