阿里千亿级流量移动API网关的演进之路

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
移动研发平台 EMAS,开发者版免费套餐
简介: 在2018年云栖大会·武汉峰会的企业研发云专场中,来自阿里巴巴淘宝技术部基础平台部的移动中间件基础服务技术专家高志恒(鲁少千)为现场的听众带来了题为《阿里千亿级流量移动API网关的演进》的精彩分享。在本次分享中,他重点阐述了移动API网关的概念,研发效率演进,高可用演进以及运维体系演进。

在2018年云栖大会·武汉峰会的企业研发云专场中,来自阿里巴巴淘宝技术部基础平台部的移动中间件基础服务技术专家高志恒(鲁少千)为现场的听众带来了题为《阿里千亿级流量移动API网关的演进》的精彩分享。在本次分享中,他重点阐述了移动API网关的概念,研发效率演进,高可用演进以及运维体系演进。
数十款阿里云产品限时折扣中赶快点击这里领券开始云上实践吧!
以下为精彩视频内容整理:

移动API网关概念阐述

_11


网关是不同的网络之间协议的一个协议适配。顾名思义,移动API网关是针对于移动APP开发,在不同的服务之间建立的一个系统。它主要是为不同的服务领域提供的不同的服务入口,简化其中的复杂性。

_12


不同的公司对移动API网关的定义是不一样的。在阿里,移动API网关更多的是承载阿里所有无线业务的一个核心技术设施。同时也是承载着每一年双十一双十二这种超大规模流量的一个高性能高稳定的系统。同时,它也是阿里无线所有业务高效研发的一个发动机,它为业务方法提供快速高效套取移动能力的技术解决方案。它包括端到云整套的网络的深度优化,服务端的API的管理以及安全管控运维等。

研发效率演进

在移动互联网的发展初期,使用的服务的业务不是特别多,当时为了业务的快速上线,每个人分散的独立去开发,快速去做各自的业务。
随着移动互联网业务的快速发展,这种开发模式暴露的问题越来越多,管理上非常混乱,缺失统一研发模型和标准化,基础能力重复研发,效率低下。
为了解决这样的问题,做出了以下一些改变:

统一编程模型

_13


将编程模型进行了标准化,同时将之前分散在各个地区的服务集中式收靠起来,在网关上进行开发,通过网关统一去对客户端提供服务。

统一基础服务

_14


我们把客户端到服务端交互的技术细节体系进行一个很好的封装,最终行成一个网关SDK,来提供给上层业务去使用,通过这种方式就可以通过标准SDK去做很多事情。
就是把原来分散在各个地方需要建设的公共服务能力下沉。通过在服务端和客户端两方面去把公共的一些设施下沉下来以后,对研发效率效率会有一个很大的改变,因为所有的业务只需要关注于业务逻辑本身的开发。服务的开发模式也不会像以前一样乱。
随着互联网的慢慢成熟,淘宝有越来越多的业务,从而慢慢的转向了无限化。由于业务大量涌入进来,导致开发分支冲突严重;高频发布;稳定性无法保障。
为了解决这个问题,我们把整个网关的技术体系进行一个大的改造升级,将整个网关系统推向了一个崭新的网络时代,一个平台架构的时代。

大规模平台研发

_15


通过网关的升级,可以实现大规模的平台化研发。
第一,把业务跟网关以服务化的形式拆分到子系统里面去,将整个系统网关和后端业务进行解耦;
第二,引申出一个叫API的概念,将整个服务以API契约这种形式去暴露出来;
第三,创建一个开发测试的平台,通过这个平台,可以将APP进行很好的测试。

_16


我们研究出一种新的技术叫动态发布,原来服务暴露需要经过网关发布。通过这种技术可以实现服务的动态部署,不需要再去进行原来系统级别的发布。解决了网关稳定性的问题。

_17


客户端在开发过程中,往往需要依赖服务端的服务,测试也是一样,如果服务还没开发好的话,就要等到功能开发差不多,才能进行测试。服务端因为任务比较重,就有可能成为项目开发的一个瓶颈。
API契约先行解决了这个问题,创建一个API,根据不同场景,预先设置一些数据,让整个项目能够进行并行开发。整个研发效率就能够大大提高,服务灵活变更,快速生效,能够支撑上百团队并行开发。

高可用演进

高可用是指,我们提供的产品与服务能够高度持续可使用。另外一层含义是指让用户能够更加安全,更好体验的高度使用。由于会出现APP被反编译,红包被刷,流量暴增应用被打垮等问题,无法做到高可用,用户体验很糟糕,从而对产品是去信心,对整个业务伤害非常大。另一方面,系统出现问题能否快速恢复,也是急需解决的问题。
产品的高可用可以通过以下手段保障:

安全与限流

_18


针对以上出现的问题,网关首先对安全进行加固,然后进行限流。对于安全加固,在端上使用安全保镖去加固程序,让别人没办法打包或反编译代码。在服务端加强防刷等手段。通过这些措施,就可以保证用户的安全。
而对于限流部分,当一波大流量过来时,系统仍然能够正常的提供服务,很好的保证了系统的稳定。
当光纤断掉的时候,整个系统网络就断掉了。即使产品做非常好,也没办法使用了。那么就需要用到快速解决故障的系统。在光纤断掉的时候,把用户调到其他部分去使用正常的机房,这样用户的体验才会更好。

容灾与异地多活

_19


我们首先会根据用户的维度把用户分配到不同的机房。在服务端有一个流量调度服务能够快速的把用户从有问题的机房调到能够正常使用的机房。从而使故障快速恢复,分钟级生效,用户的体验也会非常好。
通过这几方面的保障,即使是在大流量的环境下,用户的体验也会更好。

运维体系演进

产品在线上能够稳定的运行,这是最基本的,同时,我们也要了解产品运行时的状况。网关要承载大规模的系统,需要一个完善的运维体系支撑。
在运维体系还不完善的阶段,在交易下跌的情况下,由于不知道是哪个服务器出了问题,需要人工到线下依次进行排查,因此排除故障所需的时间会非常长,速度也非常慢。

_20


而完善之后的运维体系,能够把所有线上的数据统计出来,做多维度报表。然后结合大数据人工智能对线上的数据进行实时监控告警,快速精确地定位问题,并进行故障分析。

EMAS顶层模型

_21


EMAS顶层模型提供了移动端开发的整套技术体系,能够快速打造一个类似于手机淘宝级别的APP。例如,天猫、支付宝等等。我们通过产品的形式将EMAS顶层模型共享出来。

_22


上图为针对企业移动研发问题的解决方案,包括持续交付解决方案,组件化解决方案,跨平台解决方案,泛质量管理解决方案以及网关统一接入解决方案。

_23


如果对EMAS感兴趣,上图为交流群的二维码,大家可以在里面进行移动研发平台的学习和交流。
本文由云栖志愿者小组毛鹤整理编辑。
相关文章
|
15天前
|
监控 负载均衡 API
Apache Apisix轻松打造亿级流量Api网关
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上行、灰度发布、熔断、鉴权、可观测等丰富的流量管理功能。适用于处理传统南北向流量、服务间东西向流量及 k8s 入口控制。Airflow 是一个可编程、调度和监控的工作流平台,基于有向无环图 (DAG) 定义和执行任务,提供丰富的命令行工具和 Web 管理界面,方便系统运维和管理。
Apache Apisix轻松打造亿级流量Api网关
|
2月前
|
运维 监控 Kubernetes
高效应对突增流量:构建弹性高性能的SMS网关策略
本篇内容来自于ArchSummit全球架构师峰会演讲实录。
109 1
|
4月前
|
监控 网络协议 测试技术
流量回放新形态:基于网关 Access Log 发起
流量回放技术在性能测试和故障排除中至关重要。传统工具如 GoReplay、Tcpreplay 等存在高权限、配置复杂、登录态失效等痛点。PTS 推出基于 Access Log 的流量回放功能,自动生成压测场景,解决传统工具痛点,操作简单,一起来了解下吧~
7702 17
|
4月前
|
算法 网络协议 应用服务中间件
(五)网络编程之流量接入层设计:基于性能怪兽从零构建日均亿级吞吐量的网关架构!
在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。
|
6月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中开启函数计算 API 接口如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
554 7
|
6月前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
116 4
|
6月前
|
缓存 Serverless API
Serverless 应用引擎操作报错合集之阿里函数计算中出现关于“FC environment variables [FC_RuntIME_API] are not defined exit status 1”的报错如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
6月前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之阿里函数计算中。将本地电脑上的项目文件部署到阿里云函数计算(FC)上并实现对外提供API和WebUI如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
人工智能 监控 安全
百万并发,API 网关抗住了亚运会流量高峰
本文主要介绍作为亚运会所有核心流量的入口,阿里云推出了一款百万并发规格的 API 网关,抗住了亚运会流量高峰,为亚运会提供强大的技术支持。
|
JSON 缓存 监控
基于云原生网关的流量防护实践
本文详尽地介绍了如何在云原生网关上做流量防护,包括在不同的场景下该配置何种防护规则,并给出了详细的使用路径,可以从中体验出云原生网关的流量防护功能相对于其它网关产品限流功能的优势。作为云上网关的核心功能之一,后续我们也会持续强化流量防护功能,也欢迎大家持续关注阿里云官网的 MSE 微服务引擎产品动态。