通过API 对外提供数据服务是大部分企业中比较常见的数据应用方式,对于 API 平台管理者、开发者和调用者来说,API 的调用性能、安全性和稳定性是在平台选型时最需要考虑的三个因素。

袋鼠云API开发及管理平台数栈-数据服务 DataAPI】通过多种手段标准化管控服务,可完成从 API 创建、发布、申请/审批、调用的全生命周期管控,至今已经服务于300+客户。本文将为大家分享 DataAPI 是如何实现这三方面保障的。

DataAPI 的调用性能

在数据库和网络状况良好的情况下,DataAPI 目前的 API 调用性能在 5k QPS 时单次调用耗时最小可在 30-80ms 内。近期平台不仅从多个后端调用链路环节做了优化,也在产品层支持了一系列的功能,通过性能可观测、可配置等方式进行了全面的性能提升。

调用结果缓存

API 支持开启数据缓存,可选择用 HBase/Redis 存储缓存结果,在缓存失效策略上,DataAPI 采用 LFU(最不经常使用页置换算法),根据数据更新频率可自定义缓存清理周期与时间。

针对源数据更新频率不高,且存在多次相同输入参数重复查询的情况,开启缓存可缩短调用链路,显著降低调用耗时。

服务编排

复杂查询逻辑的实现可用带 Java/Python 函数的服务编排代替 SQL 来完成,以提升查询效率。

入参格式校验

对于一些有明显格式规则的输入参数,例如手机号、身份证号等,入参内容如果不满足相应格式要求则会导致一定无法正确返回结果。

因此我们可以为高并发 API的这些参数配置正则校验规则,在数据库执行查询语句前由 Gateway 先进行内容校验,若不满足格式要求则直接返回查询失败,减少无效查询。

调用链路耗时分析

创建 API 的测试调用环节,可通过调用分析查看 API 调用过程所经过的环节、执行内容,以及每条执行内容的耗时瀑布图,用户可直观地看到性能损耗的关键点,以便快速调整。

例如 Server 端的数据解密、行级权限等校验耗时整体明显增加时,可能是 Server 资源到了瓶颈,可进一步排查 Server 端的负载;数据源查询耗时增加则可能是当前数据源查询并发变高。

DataAPI 的安全性

安全层面,DataAPI 从开发及调用两个层面进行了全方位的保障。

开发安全

● 服务分组

重要 API 在发生逻辑变更时,可以通过服务分组来测试新逻辑的可靠性,通过类似 AB测试的方式将可控比例范围内的流量导向新逻辑,出现问题时立即调整分流比例切换回原逻辑,能够在用户无感知的情况下最大程度降低对业务侧的影响。

● 角色权限管理

平台内置多个固定角色,区分了 API 查看、开发、申请调用权限、管理等功能的场景,能满足90%的用户需求。另外管理员可根据企业内部权限管控要求调整固定角色权限点或者新增自定义角色,灵活把控用户权限配置。

● 测试/生产项目隔离

对于 API 开发投产安全性要求一般的场景,流程一般是 API 创建-提交网关测试-发布,发布后可直接生产调用。如果企业内部对开发和生产环境进行了严格隔离,也可在开发环境完成开发测试后,通过绑定项目一键发布或导出导入式发布复制到生产环境。这种方式进一步规范了生产 API 的变更流程,减少了误操作发生率。

调用安全

● 调用申请审批

DataAPI 租户层的 API 市场汇集了各个项目发布的 API,实现 API 一定范围内的共享时也对 API 调用做了权限管控,用户在申请 API 调用权限时可控制其调用次数、周期及字段粒度的输出参数访问。对于某用户已经获得审批通过的 API,管理员也可在到期前进行权限回收。权限申请与审批操作方便、管理粒度细、灵活度高。

● 2种调用权限认证方式

· API-TOKEN / USER-TOKEN:每个用户的单个 API 一个 TOKEN / 每个用户的所有 API 一个 TOKEN,用户对某个 API 的调用权限申请通过时平台会提供 TOKEN 信息, TOKEN+API URL 即可正常调用 API,适用于对调用安全要求一般的场景

· AK/SK:通过密钥和加密签名的方式对 API 的调用进行认证,安全性保障更好

● 数据传输加密

· RSA+AES:支持对大量数据加解密的同时,保证了加解密速度,应用于一些对于用户个人信息或其他敏感信息加密的安全性要求较高的场景

· SM2+AES:SM2 在安全、速度等方面较 RSA 更优,可按企业内部要求选择数据传输加密方式

● 行级数据权限控制

用户可在数据源层面配置用户数据访问行粒度的权限,然后将这个权限控制应用到指定的 API,实现更精细化的权限管控。

● 异常调用的服务熔断

针对一些高并发调用的 API 可以配置熔断策略,当单位时长的异常调用达到一定的次数等条件时,为保证 API 整体服务不瘫痪,DataAPI 会对该 API 从 Gateway 处开启一定时长的熔断,经过熔断时长后探测服务健康状态并进行自动恢复。

● IP 地址安全组

IP 地址安全组中可划分 IP 黑名单与白名单,对于有调用 IP 约束的 API,确保不会在非法 IP 中被调用。

DataAPI 的稳定性

DataAPI 的部署包含2台web、2台Server 及2台Gateway(每台默认16c32g),版本升级可通过数栈自带的运维升级工具 EasyManager 实现快速平滑升级。当业务增长时,通过简单增加 Server 和 Gateway 部署台数即可稳定支持更高的调用并发。

DataAPI 的后续规划

接下来的日子 DataAPI 将继续深耕性能与安全层的优化,为企业业务提供更加稳定、高效且安全的支持。下面是我们的主要规划:

· 调用性能:全链路性能优化、数据库资源组划分保障重要业务调用

· 调用安全:数据输出动态脱敏,保护敏感信息

《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack

性能、安全和稳定,袋鼠云数据服务平台 DataAPI 为企业 API 保驾护航的更多相关文章

  1. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  2. 腾讯云游戏服务平台CMatrix品牌全新升级为GameMatrix

    近日,隶属腾讯互娱公共研发运营体系(下文称CROS)下的云游戏服务平台CMatrix宣布进行品牌升级,启用全新商标Tencent GameMatrix,将原先代表云服务的“C”替换成游戏的英文单词“G ...

  3. bi数据可视化平台带来的企业变化

    相信现在互联网的发展,大家有目共睹,在互联网的快速发展下,所产生的数据已经成为庞然大物,各行各业都在进行数据化转型,大数据分析也就成了香饽饽,bi数据可视化平台能够让数据可视化,通过数据分析可以业务人 ...

  4. 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

  5. 本地 vs. 云:大数据厮杀的最终幸存者会是谁?— InfoQ专访阿里云智能通用计算平台负责人关涛

    摘要: 本地大数据服务是否进入消失倒计时?云平台大数据服务最终到底会趋向多云.混合云还是单一公有云?集群规模增大,上云成本将难以承受是误区还是事实?InfoQ 将就上述问题对阿里云智能通用计算平台负责 ...

  6. 海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践

    1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com)  是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟 ...

  7. 大数据服务大比拼:AWS VS. AzureVS.谷歌

    [TechTarget中国原创] 对于企业用户来说,大数据服务是一项较具吸引力的云服务.三大巨头AWS.Azure以及谷歌都在力争夺得头把交椅,但是最后到底是哪一家能够取得王座之战的胜利呢? 云市场正 ...

  8. SAAS云平台搭建札记: (一) 浅论SAAS多租户自助云服务平台的产品、服务和订单

    最近在做一个多租户的云SAAS软件自助服务平台,途中遇到很多问题,我会将一些心得.体会逐渐分享出来,和大家一起探讨.这是本系列的第一篇文章. 大家知道,要做一个全自助服务的SAAS云平台是比较复杂的, ...

  9. 阿里云容器服务中国最佳,进入 Forrester 报告强劲表现者象限

    近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告. 报告显示:阿里云容器服务创造了中国企业最好成绩,与谷歌云位于同一水平线,进入强劲表现者象限. 究其原因,分析师认为: ...

  10. 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践

    1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟“ ...

随机推荐

  1. Linux centos 运行telnet命令command not found的解决方法

      Linux centos 运行telnet命令,出现下面的错误提示: 1 2 [root@localhost ~]# telnet 127.0.0.1 -bash: telnet: command ...

  2. linux下nginx常用命令

    1.查找nginx路径:whereis nginx2.启动 service nginx start3.查看Nginx的版本号:nginx -V4.停止 nginx -s stop5.退出 nginx ...

  3. 团队小规模本地大模型服务平台搭建 - Ubuntu

    实现目标和考虑因素 部署一个支持多用户同时使用.多模型运行的离线局域网大模型服务器 需要考虑以下几个关键因素: 大模型的加载和管理.使用一个基础大模型,根据实战需要创建多个专用模型,模型管理方便可靠. ...

  4. 【JDBC第2章】获取数据库连接

    第2章:获取数据库连接 2.1 要素一:Driver接口实现类 2.1.1 Driver接口介绍 java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂 ...

  5. 【Linux】5.11 shell文件包含

    Shell 文件包含 ?和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号 ...

  6. 如何在 IIS 上部署 Go API?

    问题场景 我这边原先的技术栈主要是 .NET(Core), 所以服务器基本上都是 Windows Server + IIS. 这次有个 API 服务用 Go 重写, 但是部署有点不美, 直接执行黑框框 ...

  7. Oracle 11G R2 安装图解

    个人学习需要,在Windows Server 2008 R2 上安装 Oracle 11G R2 Tips:需要下载2个文件,file1和file2 解压后需要合并到同一个文件夹下才能正常安装(这里就 ...

  8. 一文速通 Python 并行计算:05 Python 多线程编程-线程的定时运行

    一文速通 Python 并行计算:05 Python 多线程编程-线程的定时运行 摘要: 本文主要讲述了 Python 如何实现定时任务,主要有四种方式:通过 threading.Timer 类.通过 ...

  9. Nodejs与管道和信号

    Nodejs与管道 Linux的其中一个设计哲学就是小而精,一个程序只做一件事情,然后通过管道将多个程序连接起来完成复杂的任务. 比如如下的命令: ps -ef | grep node cat aaa ...

  10. 短信接口被刷爆:我用Nginx临时止血

    最近,朋友公司遇到了一件让他们"寝食难安"的事:他们的短信验证码接口被人盯上了,充进去的钱没多久就被刷得一分不剩.不充钱,业务直接受影响:但充钱吧,就像往无底洞里灌水.他们联系短信 ...