返回 登录
11

API管理的全方位变革

作者:白山云科技CTO 童剑

图片描述

工业革命不仅带来了生产效率的大幅提升,也使企业运营方式不断演化。在如今的信息工业时代,如何打破数据壁垒,使信息在企业内外充分流动?

API正是打开上述问题大门的钥匙。保险、金融、交通等行业正通过API重塑商业模式;智能家居、物联网、工业4.0都需要API的支撑。据Gartner预测,2016年美国50%的BtoB贸易通过Web API完成。API已成为经济发展的基石,正渗透到人们生活的各个方面,进化速度越来越快。

但它仍旧面临着很多难题,诸如:保证安全性、提升性能与稳定性、版本管理、协作开发、认证授权等问题。

要跨越上述障碍,就需要全方位变革。目前API管理与开发还需要依靠人工的参与,而未来它更应该像汽车生产的流水线一样,更加的标准化、自动化,例如:

(1)统一的规范;
(2)自动生成文档、SDK、后端;
(3)统一的认证方式,不用重复实现;
(4)自动生成测试服务;
(5)前后端开发分离、无缝衔接;
(6)新老版本无缝上下线,或多版本在线,逐步下线老版本;
(7)方便接入各种云服务,如直接接入 runscope进行API监控,无需复杂设置;
(8)配合网关、微服务以及新兴结构化存储服务简化后端开发。

要达到这个目标我们需要进行“API的全生命周期管理”,包括:API的生命周期、API开发与API管理等内容。

API的生命周期

图片描述

API的生命周期

为了更好地管理API,我们需要给API划分一个完整的生命周期,从设计与开发开始,到部署、扩容,定期进行监控、分析,注重安全与授权管理,到最后API下线,整个生命周期告一段落。API的生命周期需全程有人负责,以避免出现API上线运行但代码无人维护的问题。而老旧的API长期不敢下线也是常见的尴尬,因此,增加API也需要慎重,不要轻易就为了一个需求而增加。

API开发与管理

图片描述

API管理的最佳实践

API管理包括诸多部分,本文主要对其中较为重要的几部分内容进行介绍。

1. API Gateway

API Gateway是在业务逻辑或数据之前,为用户或者合作方提供访问代理的服务。
图片描述

API Gateway

将API管理的功能统一到API Gateway上以简化业务逻辑的开发,这样就可以将精力集中在核心逻辑开发上,不必再关心共性问题,包括:

(1)认证授权:OAuth2、OpenID、API Key、IP限制
(2)传输安全:SSL、TLS
(3)流量控制:配额、过载保护、频率限制
(4)威胁防护:防抓站、防撞库、DDoS/CC防护
(5)编排转换:服务分组、7层路由、协议转换
(6)监控分析:访问量实时统计、性能监控、访问分析
(7)统计计费:针对不同用户、不同API分组
(8)缓存加速:毫秒级缓存、请求队列、异步化

2. API设计与开发

在设计API时,如果将前端与后端分离开发,可以有效提高效率,即:后端人员只负责数据计算与输出,前端人员只负责数据组织与展现。但在开发过程中仍存在很多问题,例如:数据结构变化,需要反复适配;API没有统一标准;前后端无法并行开发;接口升级导致的重新适配等。为了达到持续集成、持续交付、快速迭代到目的,业界正在更多地使用API设计开发的描述性语言——Swagger。

目前已有多种API描述语言,Swagger是最为主流的一种。
图片描述

Swagger和其它描述语言的对比

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful 风格的Web 服务,它由文档生成器、编辑器、代码生成器以及很多第三方工具组成,可以实现:自动生成API文档,实时预览;API文档与API定义同步更新;自动生成服务器所需代码结构,快速实现Mock API;自动生成不同语言的客户端SDK。

基于Swagger标准我们可以实现代码开发减少、自动化提升、更安全、Serverless的目的。

3. API管理相关资源

目前用来做API网关的较为熟知的开源软件主要有:NGINX、node.js;另外KONG、Tyk也有开源版本,同时也提供商业支持;提供API管理产品的商业化公司更多,包括微软、IBM等IT巨头,以及很多垂直领域的创业公司,例如:谷歌收购的APIgee、Redhat收购的3scale、mashape、akana等。

以下列举部分支持Swagger的云服务:
Baishancloud:http://juhe.baishancloud.com/gateway.html
SwaggerHub:https://swaggerhub.com/
Akana:https://www.akana.com/
Runscope:https://www.runscope.com/
Restlet:http://restlet.com/
Soapui:https://www.soapui.org/
Axway:http://axway.com/
Stoplight:http://stoplight.io/
Postman:https://www.getpostman.com/
Apigee:https://apigee.com

白山在API管理领域的实践

白山云聚合CLN-X是一款API管理产品,提供API加速、防护、API网关服务。经第三方测试使用,可有效提高网站安全性与访问性能,通过API网关可为企业构建数据开放平台,让数据发挥更大价值。

图片描述

CLN-X功能

1. API源站压力卸载

CLN-X采取数据异步化技术,用户发出请求后,请求会同步进入数据库后台运行,当请求过多,超出数据库承受能力时,影响数据库正常运行。异步化-队列是通过队列将用户请求放入后台,并使队列宽度与数据库承载能力相匹配,从同步阻塞模式转变为异步非阻塞模式。

例如,抢购发生时,用户同时调用支付接口,同步阻塞模式下,用户数量即为支付接口的并发度,用户过多时,支付数据库压力过大,严重时可能会导致数据库服务宕机。异步模式下,用户请求进入队列按序处理,可有效保护数据后端。
图片描述

异步化技术

2. API安全防护

CLN-X采用自主研发防火墙技术来快速判断异常IP,帮助企业及时抵御信息窃取、各种刷单、恶意攻击等行为,同时针对如下多种攻击特点(真实IP、打击接口-源站、行为界定难-误杀、行为变化多),多种攻击类型(CPU消耗、带宽消耗、连接数消耗等),进行智能分析和提取判定。

API开始提供服务后,会面临各种问题,如:恶意攻击、窃取数据、刷单等。CC攻击可划分为:低危险攻击、高危险攻击,针对不同攻击类型采用不同方式进行拦截;对于低危险的可疑访问行为,系统将其跳转到验证码页面,验证通过后即可进行访问;而对于高危险攻击,系统会收集HTTP请求日志,并将其推送到大数据分析平台,通过机器学习识别出攻击IP,进行拦截。
图片描述

防火墙技术

3. 数据源格式转换

根据预先定义好的映射规则,将原有接口的输入/输出参数转换为统一的输入/输出形式。例如线下已有的服务基于XML格式的老的接口,但为了兼容客户端,需要将其转换成新的协议格式,CLN –X可以提供这个功能,减少开发工作。
图片描述

API适配技术

4. API访问控制

CLN-X支持对API、用户、应用设置按分钟、小时、天的调用量控制,支持接口安全验证及权限分组管理,内置丰富的数据分析功能,记录API请求数相关的详细数据,以供企业分析数据和挖掘用户行为。

图片描述

围绕API管理,白山云聚合CLN-X正陆续推出更多解决方案。欢迎添加白山官方微信(baishancloud)与我们联系。

评论