【微服务】API治理发展历史与未来趋势

目录

一、前言

二、API治理的价值和意义

2.1 API治理概念

2.2 API治理价值和意义

2.2.1 提升团队协同效率

2.2.2 降低产品运维成本

2.2.3 识别和降低系统的外部风险

2.2.4 提供更多的拓展性

三、API生命周期管理

​编辑

3.1 规划阶段

3.2 开发阶段

3.3 测试阶段

3.4 部署与实施阶段

3.5 稳定或退役阶段

四、API治理发展历史

4.1 粗放的技术实现阶段

4.2 制定与完善API标准阶段

4.3 统一API标准阶段

4.4 API周边生态培育阶段

4.5 API与网关融合阶段

4.6 API工具化与产品化阶段

五、API治理未来趋势


一、前言

API的出现和广泛使用让跨系统,跨应用之间的连接交互更紧密,也更加便捷。随着网络基础设施、软硬件等环境臻于完善,互联网在近些年得到飞速发展。不管是我们熟悉的各类app,微信小程序,还是各类行业生态系统,智能AI等工具,站在API的肩膀上,在各自赛道实现行业价值的同时,也在跨界融合与交互中展现了强劲的生命力。

既然API的作用这么大,它究竟是如何治理的呢?为了尽可能发挥API价值,如何在生产实践中进行治理呢?未来,如何更好的治理我们的API,以期在复杂多变的环境中立于不败之地呢?  

二、API治理的价值和意义

2.1 API治理概念

狭义的API治理是指企业制定并采取一定的适合自身发展现状的管理策略和组织方式,对应用程序编程接口(API)进行集约化的有效管理和控制的过程。

2.2 API治理价值和意义

互联网企业的应用系统或软件产品,都是为用户提供使用价值,为企业产生利润和商业价值而存在,API作为产品的底层基础设施,可以说就是企业最大的一笔宝贵的无形资产。总结来说,API治理的价值主要体现在如下几个方面;

2.2.1 提升团队协同效率

规范的API管理让团队在业务交互协作中省时省力,甚至可以减少很多不必要的沟通成本。

2.2.2 降低产品运维成本

当API管理日臻完善,一旦产品出现线上故障时需要进行问题排查定位,比如界面上出现某个交互动作异常,就能方便的追溯出现问题的API接口,这种情况在复杂的微服务调用链路中进行问题定位具有重要的意义。

2.2.3 识别和降低系统的外部风险

完善的API管理可以有效识别外部潜在的风险,比如安全漏洞、合规性查验、恶意攻击、性能低效,从而避免给系统带来不必要的损失。

2.2.4 提供更多的拓展性

完善的API治理,可以让系统在面临复杂多变的外部环境因素中始终留有宽裕的可拓展性,具体来说,如果你的API在设计之初,就能按照主流的编码规范进行设计和开发,比如职责单一、分层抽象、可复用性强等原则,在未来对接口做更多的定制开发、集成第三方组件、甚至跨语言调用等场景下,就具备更好的拓展性。

三、API生命周期管理

在谈API治理之前,需要先搞清楚一件事,那就是API的生命周期如何?搞清这个问题的意义在于,只有了解了API的生命周期,以及生命周期的各个阶段要做的事情,才能指导API治理工作的开展,从而有更清晰的方向。大体来说,API的生命周期主要分为如下几个阶段。

3.1 规划阶段

任何涉及API开发的需求都是从规划和设计开始的。在这个阶段,业务人员,产品经理,开发人员等需要明确需求,然后初步确定API应该公开哪些服务和功能,并输出为功能和非功能的全面需求文档。当完成API需求的梳理后,开发团队将根据行业规范的命名规则,体系结构和要使用的特定协议,做出符合实际需求的设计决策。在这个阶段,将会产出一份API设计规范的文档,该规范描述了接口支持的方法、参数、请求类型等操作以及任何技术约束。

3.2 开发阶段

有了API开发的规范文档,接下来就是开发编码,开发将会根据API设计规范在规定的时间内完成相关API的研发工作,在这个阶段,可能在研发过程中进行微调,比如接口的出入参,参数校验等规则,将会结合实际情况进行适当的调整。

3.3 测试阶段

一般来说,当API研发完毕,并完成相关的交互联调后,就交付测试,测试人员将结合测试用例进行API测试,功能测试,性能测试,验收测试等,测试的过程,也是进一步暴露API问题的过程,只有通过测试的API才是有意义的产物。

3.4 部署与实施阶段

经过测试的产品,将投产运行。也可以说,当一个API稳定且安全,就可以投入生产了。在投产之后,用户使用系统过程中,将会更深层次的检验API的安全性、稳定性、性能指标等因素,同时,用户可能会对现有的API提出新的要求,比如当前的API返回参数不满足生产需求,就需要在后续的迭代中继续开发以满足用户的实际需要。从这个角度讲,API产生之后也并非静止状态,而是处于不断的迭代、优化与完善的循环中。

3.5 稳定或退役阶段

当系统经过较长周期的持续迭代后,核心的API已经非常稳定了,但是这些API已经在为用户提供使用价值,这样的API就处于稳定阶段,这样的API只需要做好维护,或者对其进行新的商业价值的挖掘。当然,随着业务的发展和时间的推移,某些API已经不再使用,或者被其他的API替代,这样的API就可以考虑对其进行废弃或退休。

四、API治理发展历史

在早期,API的治理的重要意义并不被很多团队所意识到。一方面是早期的软件架构相对简单,另一方面,受制于互联网技术的发展,当时的软件产品的使用量,系统的业务体量也远远达不到今天的规模,所以API的治理过程也是随着互联网的发展脚步,经历了一个相对漫长的发展历史。

4.1 粗放的技术实现阶段

最初,技术团队对于API的定位是快速实现业务需求,满足用户交付,以期快速实现商业价值为目的,对于API管理本身并不是很重视,所以经历过早期软件开发阶段的伙伴可以看到一个有趣的现象就是,只要能实现功能,你可以采用webservice实现,基于http形式的实现,甚至是符合soap规范的实现等都允许,这种百花齐放的状况让程序员感到很苦恼,因为他们在与外部厂商或其他系统对接的时候将不得不重新对里面涉及到的各种不同的技术。这种状况的存在,也让团队在进行技术标准化的进程中带来了很多麻烦和挑战。

4.2 制定与完善API标准阶段

随着技术的发展,尤其是持续交付带来的技术革新,让更多的技术团队意识到一套完善的API管理规范在交付实施过程中对提升效率的重要性。典型的场景就是,交付时,客户需要系统的各类文档,操作手册等,这种情况下,业务团队将倒逼技术团队开始认真重视对API规范的管理。于是,越来越多的互联网公司和技术团队开始在开发之初就对API相关的各类标准规范进行梳理和完善,在这个阶段,可以看到市场上陆续出现各类API管理的小工具,在线协作工具,甚至是一些自动化生成API管理文档的各类插件。有了这些相对规范的API标准文档,交付的效率高了,开发团队在协作、日常开发运维等工作中也更加高效。

4.3 统一API标准阶段

在API管理规范在行业内的认知越来越完善,并且在越来越多的开发团队得到广泛的推广应用时,如何统一API标准成了势在必行的事情。在API发展的过程中,截止到当下,API的风格经历了多个阶段,比如大家熟知的soap协议规范,以及目前主流的restful风格的规范等,这些不同类型API的成型,是经过众多互联网企业的大量生产实践与探索经验的结果。

可以肯定的是,这种应用实践的历程,为充分发掘API的使用价甚至是商业价值提供了宝贵的经验。同时,统一标准的制定,为跨语言,跨组件,跨平台等更多全新的技术形态提供了基础的技术储备。比如大家熟悉的微服务,正是得益于API的各类标准的完善,包括协议栈、参数规范、请求类型、数据响应等多维度的统一,使得微服务架构的大规模生产实施变得容易。当然,这也为主流API风格的微服务应用进行容器化、云上部署等提供了基础。

4.4 API周边生态培育阶段

伴随着云计算、大数据、人工智能等技术的发展,API在各类应用系统中承载的角色和地位也变得越来越重要,尤其是业务体量和用户数量爆发式的增长,API作为系统核心数据资源的承载入口,在各类业务场景下发挥着不可替代的作用。

比如当系统API资源足够丰富的时候,可以合理开放API资源给第三方、友商、跨行业平台等外部使用。再比如,针对API接口的链路追踪与监控,当应用系统的复杂性越来越高,API的调用网络也越加复杂的时候,如何对API进行监控是很多公司亟待解决的问题,这也就产生了一大批提供API监测的开源产品和厂商,为API的生态家族提供了有力的支撑与补充。

4.5 API与网关融合阶段

微服务治理方案的稳步推进和大规模的使用,让很多人看到互联网项目的微服务化在“三高”项目(高并发,高性能,高可用)演进过程中的潜力,与此同时,“三高”指标对应用系统提出了更高的要求。这几年,随着可观测性思想的普及,人们对于API在运行过程中隐藏的各类指标信息,期望以一种更加直观的方式去了解,去掌控。

把用户的需求转为通俗的解释就是说,怎么能够实时了解系统中使用的API调用情况如何?占用的服务器资源如何?经历了怎样的调用过程?调用频次如何,那些API被调用的很频繁?核心API调用时长...

这一系列问题汇聚起来就是希望对API的治理有一个可视化的窗口,以方便对API集中治理。在这样的大背景下,API网关就应运而生了。那么API网关与微服务的发展有何关系呢?可以这么说,正是微服务治理解决方案的日渐成熟推动了API网关的不断完善。API网关的诞生,让API治理维度范围不断扩大,从早期Nginx网关仅仅满足API的路由转发,到后来微服务网关可以对API各种细腻度的治理,比如安全校验,链路日志埋点,统一认证,黑白名单处理,批量正则拦截等丰富的可定制化功能。

而容器化,云原生的兴起,让API网关也进一步升级,这也诞生出了更多符合云原生部署架构的API网关,而这些云原生网关的发展也在微服务网关的基础上对API的治理有了更灵活的伸展性,以及补充了更多有关API治理的内涵和外延。可以说,不管是微服务网关,还是云原生网关,它们的出现和发展,让原来静态化的API具备了动态的能力,因为网关的存在让API暴露在一个可视化的世界中,不管是开发、测试还是生产部署以及后续的运维监控,从此API的一举一动尽收眼底,对API的治理将进入一个正向的有价值的循环中。

4.6 API工具化与产品化阶段

当系统API资源的使用覆盖到产品研发的各个层次人员之后,下一步就是如何将API进行工具化和产品化,简单来说就是,对一个API使用者,系统的API资源如何调用?API列表在哪里?如何快速找到我期望的API?目标API的结果是否能够满足客户的交付需求?现有的API是否能够打通与第三方系统对接的某个需求...

这一系列的需求,尤其是对于那些平台化的产品显得格外突出,为什么这么说呢?因为平台化的产品背后,可能是几十几百,甚至成千上万个服务单元在协同,共同支撑整个平台业务的正常运转。在这样规模的平台下,各服务单元之间的协作可以说离不开API的互相调用,当某个服务单元的开发人员需要对接另一个服务单元的业务时,怎么能快速找到符合要求的API呢?

基于这样的需求背景,API协同开发与交互成了很多开发团队的痛点。于是,各类API管理工具产品也应运而生,比如大家熟悉的postman,或在线API调用的小工具等,有了这些API管理工具的支持,业务团队的在API层面的协作中变得容易,同时,团队内各种角色的人员也可以基于这些可视化的API管理工具高效开展自身的工作。更有意义的事情是,API管理产品让企业的API资源有了一个类似git这样集中托管的“仓库”,换言之,API管理产品让企业的API资源有了栖身之所,从而为企业、为团队的高效协作提供了更多的基础。

五、API治理未来趋势

ChatGPT 的诞生相信让大很多人看到了API提供即时、高效、近乎准确的各类查询服务的强大能力。在大数据、人工智能、物联网等逐步迈向快车道的同时,API在背后赋予的价值和意义也必将越来越重要。从互联网的发展路径来看,发展到今天,服务化的应用大致经历了传统单体服务,微服务治理的大规模应用,再到今天容器化的探索与治理,可以说,其核心就是围绕如何建立更高效、更便捷、更稳健以及更加体系化的API治理环境在努力。

当前,目之所及的是,跨应用、跨语言、跨平台、跨行业、多场景的交互与协作逐渐成为常态化的现象,也就是对于各个API服务的提供商来说,如何基于客户需求场景和体验,在既有产品API能力的基础上,并能借助大数据、生成式AI的能力,快速构筑产品多维度,多场景下解决方案的API能力将成为很多互联网公司重点布局的方向。

基于此,在不久的未来,API的治理方向可以从三个层次来看:

  • 底层将依托于企业强大的数据整合能力、计算能力、模型建造能力、与生成式人工智能整合能力,持续丰富API的多维度提供数据价值的能力,形成丰富的API资源库;

  • 中层将结合产品自身、外部环境、客户定制化需求等抽象出更更富的API使用场景,以高效的交付、对接能力以应对更复杂的外部场景;

  • 最顶层,则以商业化的视角,将企业的API资源以工具化、产品化的能力对外输出,打造和运营符合产品定位的API生态圈,并加快在跨界整合、跨行业融合、跨平台交互等使用场景中API商业价值的变现能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/122536.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶算法(九):多项式轨迹与Minimun Snap原理与Matab代码详解

目录 1 为什么需要轨迹优化 2 代码解析 3 完整代码 1 为什么需要轨迹优化 我们利用前八篇所学的博客可以利用RRT、A*、遗传算法等设计出一条折线轨迹,轨迹优化就是在路径优化的基础上将折线优化成曲线,这样更加有利于无人机的飞行。 那么什么是多项式轨…

TikTok shop美国小店适合哪些人做?附常见运营问题解答

一、Tiktok shop小店分类 大家都知道,美国小店可以分为5 种: 美国本土个人店: 最灵活,有扶持政策;美国法人企业店:要求高,有扶持政策;美国公司中国人占股店 (ACCU店) : 权重相对低&#xff0c…

Google play的企业开发者账号比个人号上包成功率更高?

众所周知,Google play作为全球最大的Android应用市场,是开发者们推广应用的首选平台。Google play平台提供了两种账号类型:个人开发者和企业开发者,开发者们可以选择创建个人开发者账号或者企业开发者账号进行应用上架。 不过&am…

YOLO目标检测——汽车头部尾部检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:用于训练自动驾驶系统中的车辆感知模块,以实现对周围车辆头部和尾部的准确检测和识别数据集说明:汽车头部尾部检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软…

linux软链接和硬链接

1.硬链接(hard link) 每个文件的磁盘存储位置都有一个指针指向他这个指针称为inode,每创建一个硬链接都是指向这个inode指针,而不是指向这个文件的物理磁盘位置。 当有多个硬链接指向同一个inode,删除其中一个硬链接文件,他的物理…

键盘win键无法使用,win+r不生效、win键没反应、Windows键失灵解决方案(亲测可以解决)

最近几天发现自己笔记本的win键无法使用,win失灵了,但是外接键盘后则正常:。 这个问题困扰了我一周,我都以为自己的枪神坏了。 寻找了几个解决方法,网上看了好多好多稀里糊涂的办法,都是不管用的,这里给大…

面试分享 | 护网蓝队面试经验

关于蓝队面试经验 1.自我介绍能力 重要性 为什么将自我介绍能力放在第一位,实际上自我介绍才是面试中最重要的一点,因为护网面试并没有确定的题目,让面试官去提问 更多是的和面试官的一种 “交谈” ,面试的难易程度也自然就取决…

MySQL 8.0 Clone Plugin 详解

文章目录 前言1. 克隆插件安装2. 克隆插件的使用2.1 本地克隆2.2 远程克隆 3. 克隆任务监控4. 克隆插件实现4.1 Init 阶段4.2 File Copy4.3 Page Copy4.4 Redo Copy4.5 Done 5. 克隆插件的限制6. 克隆插件与 Xtrabackup 的异同7. 克隆插件相关参数 后记 前言 克隆插件&#xf…

JS点击图片指定对象变色两种方法

要求&#xff1a;点击上面的颜色实现下面的图像变成相同的颜色 难点&#xff1a;对于js函数的this对象不太清楚如何传递 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>changeColor</title>&l…

vite基础学习笔记:13.Dialog 对话框 (用户注册与登录)

说明&#xff1a;自学做的笔记和记录&#xff0c;如有错误请指正 1. Dialog 对话框组件 目标效果&#xff1a;点击“登录/注册”&#xff0c;弹框 &#xff08;1&#xff09;创建全局组件&#xff0c;在官网中查询代码粘贴 &#xff08;2&#xff09; 注册和使用全局组件 &a…

Zotero从安装到使用再到插件下载【适合小白,只看一篇就够!!!】

一、安装 1.安装Zotero 本人安装的是zotero6&#xff0c;全文是基于zotero6功能的介绍&#xff01; 下载地址&#xff1a;Zotero下载 选择 Custom&#xff0c;因为Standard是标准型会默认放置C盘&#xff0c;并且不能更改&#xff01; 选择自己的路径进行安装&#xff01;…

创建asp.net core mvc项目

一、安装vs2019 百度搜索【visual studio社区版下载】&#xff0c;进入微软官网 二、安装环境 运行vs2019,点击“工具”->“获取工具和功能” 三、打开vs2019 1.“文件”->“新建”->“项目”-> “ASP.Net Core Web 应用&#xff08;模型-视图-控制器&#xff09…

Python TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍&#xff1a;WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #python通过缩进来表示代码块&#xff0c;不可以随意更改每行前面的空白&#xff0c;否则程序会运行错误&#xff01;&#xff01;&#xff01;如果缩进不…

Git->git简介,git的常用命令,git命令的常用理论

git简介git的常用命令git命令的常用理论 1.git简介 Git是什么&#xff1f; Git是一个开源的分布式&#xff0c;用于敏捷高效地处理任何或小或大的项目 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVSI…

2023-11 | 短视频批量下载/爬取某个用户的所有视频 | Python

这里以鞠婧祎的个人主页为demo https://www.douyin.com/user/MS4wLjABAAAACV5Em110SiusElwKlIpUd-MRSi8rBYyg0NfpPrqZmykHY8wLPQ8O4pv3wPL6A-oz 【2023-11-4 23:02:52 星期六】可能后面随着XX的调整, 方法不再适用, 请注意 找到接口 找到https://www.douyin.com/aweme/v1/web/…

蓝桥云课--1014 第 1 场算法双周赛

2-数树数【算法赛】&#xff08;找规律&#xff09; 一、题目要求 二、思路 由此可以推导出来&#xff0c;当s[i]L时&#xff0c;下一个编号当前编号*2-1&#xff1b;当s[i]R时&#xff0c;下一个编号当前编号*2&#xff1b; 三、代码 #include<bits/stdc.h> #define…

安卓三防手持终端 二维码扫描识别器 pda条码手持机

PDA条码手持机是一种快速的数据采集设备&#xff0c;具备多种数据采集功能并且可以进行二次开发&#xff0c;可以针对性的进行定制服务&#xff0c;满足各种业务需求。因其体积小&#xff0c;易操作、功能全、效率高深受物联网行业的青睐。 条码扫描是PDA重要的功能之一&#…

网络安全(黑客)小白自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

C++|前言

c|前言 一、什么是C二、C发展史三、C的重要性3.1语言的使用广泛度3.2工作领域3.3校招领域 四、如何学习C4.1别人怎么学4.2自己怎么学 一、什么是C 在上回书已经学习了C语言&#xff0c;我们知道C语言是面向过程语言&#xff0c;C语言是结构化和模块化的语言&#xff0c;适合处理…

你觉得哪个软件写verilog体验最好?

最近在媒体上看到一个热点问题&#xff0c;浏览量高达680,003。“你觉得哪个软件写verilog体验最好&#xff1f;”这个问题可以说是IC设计师们最想知道的问题&#xff0c;也是大家工作交流中比较常见的。今天移知教育小编就来为大家分享一下&#xff0c;我对于这个问题的解答。…