当前位置: 首页 > news >正文

【微服务】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商业价值的变现能力。

相关文章:

【微服务】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…...

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

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

[OS]11.9.2023 中断

中断向量表 CPU的设计者必须在中断信息和其处理程序的入口地址之间建立某种联系,使得CPU根据中断信息可以找到要执行的处理程序。 中断信息中包含有标识中断源的类型码。根据CPU的设计,中断类型码的作用就是用来定位中断处理程序。 比如CPU 根据中断类型…...

unity笔记

物体的各种控制方法 using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine;public class Componentl : MonoBehaviour {// Transform transform;GameObject obj;public float floSpeed 0;public float floRotate 0;// Start …...

二十、泛型(5)

本章概要 边界通配符 编译器有多聪明逆变无界通配符捕获转换 边界 边界(bounds)在本章的前面进行了简要介绍。边界允许我们对泛型使用的参数类型施加约束。尽管这可以强制执行有关应用了泛型类型的规则,但潜在的更重要的效果是我们可以在…...

Oracle递归查询树形数据

实际生活有很多树形结构的数据,比如公司分为多个部门、部门下分为多个组,组下分为多个员工;省市县的归属;页面菜单栏等等。 如果想查询某个节点的父节点或者子节点,一般通过表自身连接完成,但如果该节点的子…...

pycharm pro v2023.2.4(Python开发)

PyCharm是一种Python集成开发环境(IDE),PyCharm提供了强大的功能,包括语法突出显示、智能代码完成、代码检查、自动重构和调试等特性,这些都可以帮助Python开发人员更加高效地编写代码。 PyCharm Pro是PyCharm的高级版…...

武汉某母婴用品公司 - 集简云连接ERP和营销系统,实现库存管理的自动化

品牌介绍与关怀理念 武汉某母婴用品公司是一家专注于高端孕婴童护理用品的企业,积极响应和关怀孕产人群,全方位提供从待产用品到产后护理用品,再到婴童洗护用品和初生婴儿用品等一系列全面的母婴产品。我们的使命是满足客户的需求&#xff0…...

AD9371 Crossbar

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…...

设计模式 -- 责任链模式(Chain of Responsibility Pattern)

责任链模式:和上一篇策略模式一样也是行为型模式。创建一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它…...

开源:特殊的垄断

免责声明:本博客旨在分享我对开源策略的理解和体会,不代表任何组织或机构的立场或观点,也不构成任何商业或投资的建议或担保。本博客的内容可能存在错误或遗漏,也可能随着时间的推移而变得过时或不适用。请在使用或依赖本博客的内…...

linux安装oracle client解决cx_Oracle.DatabaseError: DPI-1047

背景: 需要在linux上调用python,连接oracle数据,在执行脚本是出现如下错误: 由于未安装client,所有找不到对应的文件 [root@xx wxArticle]# python main.py Traceback (most recent call last):File "main.py", line 16, in <module>oracle_db = cx_Or…...

工业园区一般用多大规格的电表?

随着我国经济的快速发展&#xff0c;工业园区在各地区如雨后春笋般崛起。作为电力系统的重要组成部分&#xff0c;电表的选择与应用对于工业园区的稳定运行至关重要。那么&#xff0c;工业园区一般用的是多大规格的电表呢&#xff1f;下面&#xff0c;小编就来给大家揭秘一下&a…...

Debian12换镜像源

0 背景 用docker运行了一个node容器&#xff0c;发现连vim也没有&#xff0c;所以打算安一个vim 1 查看操作系统 find / -name *release* #查看release信息2 更换镜像源 2.1 从网上找个国内镜像源 确定好操作系统版本后&#xff0c;从网上搜一下对应的数据源。这里提供一个…...

deeplog中输出某个 event 的概率

1 实现之后效果 # import DeepLog and Preprocessor import numpy as np from deeplog import DeepLog import torch# Create DeepLog object deeplog DeepLog(input_size 10, # Number of different events to expecthidden_size 64 , # Hidden dimension, we suggest 64…...

流媒体中relay和forword的区别

在流媒体中&#xff0c;"relay"&#xff08;中继&#xff09;和 "forward"&#xff08;转发&#xff09;是两种常见的传输方式&#xff0c;用于将流媒体从一个源传递到目标接收器。它们的区别如下&#xff1a; Relay&#xff08;中继&#xff09;&#xff…...

git创建本地分支并提交到远程

创建本地分支 git branch local_branch_name切换到本地分支 git checkout local_branch_name提交代码 git add . git commit -m "commit_message"添加远程信息 git remote add origin remote_git_address提交到远程 git push origin local_branch_name:remote_b…...

Selenium定位元素的方法css和xpath的区别

selenium是一种自动化测试工具&#xff0c;它可以通过不同的定位方式来识别网页上的元素&#xff0c;如id、name、class、tag、link text、partial link text、css和xpath。 如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702&#x…...

【目标检测】SSD损失函数详解

文章目录 定位损失 L l o c L_{loc} Lloc​偏移值的计算smooth L1 loss 置信率损失 L c o n f L_{conf} Lconf​ 最近看看这个古早的目标检测网络&#xff0c;看了好多文章&#xff0c;感觉对损失函数的部分讲得都是不很清楚得样子&#xff0c;所以自己捋一下。 首先&#x…...

C【整数正序分解】

// 整数正序分解 #include <stdio.h> #include <stdlib.h>int main() {int x;scanf("%d", &x);// 13425/10000->1(int一个d)// 13425%10000->3425(这是x)// 10000/10-.1000(这是mask)int mask 1;int t x;while (t > 9){t / 10;mask * 10;…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

HTTPS证书一年多少钱?

HTTPS证书作为保障网站数据传输安全的重要工具&#xff0c;成为众多网站运营者的必备选择。然而&#xff0c;面对市场上种类繁多的HTTPS证书&#xff0c;其一年费用究竟是多少&#xff0c;又受哪些因素影响呢&#xff1f; 首先&#xff0c;HTTPS证书通常在PinTrust这样的专业平…...