目录
一、前言
二、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治理是指企业制定并采取一定的适合自身发展现状的管理策略和组织方式,对应用程序编程接口(API)进行集约化的有效管理和控制的过程。
互联网企业的应用系统或软件产品,都是为用户提供使用价值,为企业产生利润和商业价值而存在,API作为产品的底层基础设施,可以说就是企业最大的一笔宝贵的无形资产。总结来说,API治理的价值主要体现在如下几个方面;
规范的API管理让团队在业务交互协作中省时省力,甚至可以减少很多不必要的沟通成本。
当API管理日臻完善,一旦产品出现线上故障时需要进行问题排查定位,比如界面上出现某个交互动作异常,就能方便的追溯出现问题的API接口,这种情况在复杂的微服务调用链路中进行问题定位具有重要的意义。
完善的API管理可以有效识别外部潜在的风险,比如安全漏洞、合规性查验、恶意攻击、性能低效,从而避免给系统带来不必要的损失。
完善的API治理,可以让系统在面临复杂多变的外部环境因素中始终留有宽裕的可拓展性,具体来说,如果你的API在设计之初,就能按照主流的编码规范进行设计和开发,比如职责单一、分层抽象、可复用性强等原则,在未来对接口做更多的定制开发、集成第三方组件、甚至跨语言调用等场景下,就具备更好的拓展性。
在谈API治理之前,需要先搞清楚一件事,那就是API的生命周期如何?搞清这个问题的意义在于,只有了解了API的生命周期,以及生命周期的各个阶段要做的事情,才能指导API治理工作的开展,从而有更清晰的方向。大体来说,API的生命周期主要分为如下几个阶段。
任何涉及API开发的需求都是从规划和设计开始的。在这个阶段,业务人员,产品经理,开发人员等需要明确需求,然后初步确定API应该公开哪些服务和功能,并输出为功能和非功能的全面需求文档。当完成API需求的梳理后,开发团队将根据行业规范的命名规则,体系结构和要使用的特定协议,做出符合实际需求的设计决策。在这个阶段,将会产出一份API设计规范的文档,该规范描述了接口支持的方法、参数、请求类型等操作以及任何技术约束。
有了API开发的规范文档,接下来就是开发编码,开发将会根据API设计规范在规定的时间内完成相关API的研发工作,在这个阶段,可能在研发过程中进行微调,比如接口的出入参,参数校验等规则,将会结合实际情况进行适当的调整。
一般来说,当API研发完毕,并完成相关的交互联调后,就交付测试,测试人员将结合测试用例进行API测试,功能测试,性能测试,验收测试等,测试的过程,也是进一步暴露API问题的过程,只有通过测试的API才是有意义的产物。
经过测试的产品,将投产运行。也可以说,当一个API稳定且安全,就可以投入生产了。在投产之后,用户使用系统过程中,将会更深层次的检验API的安全性、稳定性、性能指标等因素,同时,用户可能会对现有的API提出新的要求,比如当前的API返回参数不满足生产需求,就需要在后续的迭代中继续开发以满足用户的实际需要。从这个角度讲,API产生之后也并非静止状态,而是处于不断的迭代、优化与完善的循环中。
当系统经过较长周期的持续迭代后,核心的API已经非常稳定了,但是这些API已经在为用户提供使用价值,这样的API就处于稳定阶段,这样的API只需要做好维护,或者对其进行新的商业价值的挖掘。当然,随着业务的发展和时间的推移,某些API已经不再使用,或者被其他的API替代,这样的API就可以考虑对其进行废弃或退休。
在早期,API的治理的重要意义并不被很多团队所意识到。一方面是早期的软件架构相对简单,另一方面,受制于互联网技术的发展,当时的软件产品的使用量,系统的业务体量也远远达不到今天的规模,所以API的治理过程也是随着互联网的发展脚步,经历了一个相对漫长的发展历史。
最初,技术团队对于API的定位是快速实现业务需求,满足用户交付,以期快速实现商业价值为目的,对于API管理本身并不是很重视,所以经历过早期软件开发阶段的伙伴可以看到一个有趣的现象就是,只要能实现功能,你可以采用webservice实现,基于http形式的实现,甚至是符合soap规范的实现等都允许,这种百花齐放的状况让程序员感到很苦恼,因为他们在与外部厂商或其他系统对接的时候将不得不重新对里面涉及到的各种不同的技术。这种状况的存在,也让团队在进行技术标准化的进程中带来了很多麻烦和挑战。
随着技术的发展,尤其是持续交付带来的技术革新,让更多的技术团队意识到一套完善的API管理规范在交付实施过程中对提升效率的重要性。典型的场景就是,交付时,客户需要系统的各类文档,操作手册等,这种情况下,业务团队将倒逼技术团队开始认真重视对API规范的管理。于是,越来越多的互联网公司和技术团队开始在开发之初就对API相关的各类标准规范进行梳理和完善,在这个阶段,可以看到市场上陆续出现各类API管理的小工具,在线协作工具,甚至是一些自动化生成API管理文档的各类插件。有了这些相对规范的API标准文档,交付的效率高了,开发团队在协作、日常开发运维等工作中也更加高效。
在API管理规范在行业内的认知越来越完善,并且在越来越多的开发团队得到广泛的推广应用时,如何统一API标准成了势在必行的事情。在API发展的过程中,截止到当下,API的风格经历了多个阶段,比如大家熟知的soap协议规范,以及目前主流的restful风格的规范等,这些不同类型API的成型,是经过众多互联网企业的大量生产实践与探索经验的结果。
可以肯定的是,这种应用实践的历程,为充分发掘API的使用价甚至是商业价值提供了宝贵的经验。同时,统一标准的制定,为跨语言,跨组件,跨平台等更多全新的技术形态提供了基础的技术储备。比如大家熟悉的微服务,正是得益于API的各类标准的完善,包括协议栈、参数规范、请求类型、数据响应等多维度的统一,使得微服务架构的大规模生产实施变得容易。当然,这也为主流API风格的微服务应用进行容器化、云上部署等提供了基础。
伴随着云计算、大数据、人工智能等技术的发展,API在各类应用系统中承载的角色和地位也变得越来越重要,尤其是业务体量和用户数量爆发式的增长,API作为系统核心数据资源的承载入口,在各类业务场景下发挥着不可替代的作用。
比如当系统API资源足够丰富的时候,可以合理开放API资源给第三方、友商、跨行业平台等外部使用。再比如,针对API接口的链路追踪与监控,当应用系统的复杂性越来越高,API的调用网络也越加复杂的时候,如何对API进行监控是很多公司亟待解决的问题,这也就产生了一大批提供API监测的开源产品和厂商,为API的生态家族提供了有力的支撑与补充。
微服务治理方案的稳步推进和大规模的使用,让很多人看到互联网项目的微服务化在“三高”项目(高并发,高性能,高可用)演进过程中的潜力,与此同时,“三高”指标对应用系统提出了更高的要求。这几年,随着可观测性思想的普及,人们对于API在运行过程中隐藏的各类指标信息,期望以一种更加直观的方式去了解,去掌控。
把用户的需求转为通俗的解释就是说,怎么能够实时了解系统中使用的API调用情况如何?占用的服务器资源如何?经历了怎样的调用过程?调用频次如何,那些API被调用的很频繁?核心API调用时长...
这一系列问题汇聚起来就是希望对API的治理有一个可视化的窗口,以方便对API集中治理。在这样的大背景下,API网关就应运而生了。那么API网关与微服务的发展有何关系呢?可以这么说,正是微服务治理解决方案的日渐成熟推动了API网关的不断完善。API网关的诞生,让API治理维度范围不断扩大,从早期Nginx网关仅仅满足API的路由转发,到后来微服务网关可以对API各种细腻度的治理,比如安全校验,链路日志埋点,统一认证,黑白名单处理,批量正则拦截等丰富的可定制化功能。
而容器化,云原生的兴起,让API网关也进一步升级,这也诞生出了更多符合云原生部署架构的API网关,而这些云原生网关的发展也在微服务网关的基础上对API的治理有了更灵活的伸展性,以及补充了更多有关API治理的内涵和外延。可以说,不管是微服务网关,还是云原生网关,它们的出现和发展,让原来静态化的API具备了动态的能力,因为网关的存在让API暴露在一个可视化的世界中,不管是开发、测试还是生产部署以及后续的运维监控,从此API的一举一动尽收眼底,对API的治理将进入一个正向的有价值的循环中。
当系统API资源的使用覆盖到产品研发的各个层次人员之后,下一步就是如何将API进行工具化和产品化,简单来说就是,对一个API使用者,系统的API资源如何调用?API列表在哪里?如何快速找到我期望的API?目标API的结果是否能够满足客户的交付需求?现有的API是否能够打通与第三方系统对接的某个需求...
这一系列的需求,尤其是对于那些平台化的产品显得格外突出,为什么这么说呢?因为平台化的产品背后,可能是几十几百,甚至成千上万个服务单元在协同,共同支撑整个平台业务的正常运转。在这样规模的平台下,各服务单元之间的协作可以说离不开API的互相调用,当某个服务单元的开发人员需要对接另一个服务单元的业务时,怎么能快速找到符合要求的API呢?
基于这样的需求背景,API协同开发与交互成了很多开发团队的痛点。于是,各类API管理工具产品也应运而生,比如大家熟悉的postman,或在线API调用的小工具等,有了这些API管理工具的支持,业务团队的在API层面的协作中变得容易,同时,团队内各种角色的人员也可以基于这些可视化的API管理工具高效开展自身的工作。更有意义的事情是,API管理产品让企业的API资源有了一个类似git这样集中托管的“仓库”,换言之,API管理产品让企业的API资源有了栖身之所,从而为企业、为团队的高效协作提供了更多的基础。
ChatGPT 的诞生相信让大很多人看到了API提供即时、高效、近乎准确的各类查询服务的强大能力。在大数据、人工智能、物联网等逐步迈向快车道的同时,API在背后赋予的价值和意义也必将越来越重要。从互联网的发展路径来看,发展到今天,服务化的应用大致经历了传统单体服务,微服务治理的大规模应用,再到今天容器化的探索与治理,可以说,其核心就是围绕如何建立更高效、更便捷、更稳健以及更加体系化的API治理环境在努力。
当前,目之所及的是,跨应用、跨语言、跨平台、跨行业、多场景的交互与协作逐渐成为常态化的现象,也就是对于各个API服务的提供商来说,如何基于客户需求场景和体验,在既有产品API能力的基础上,并能借助大数据、生成式AI的能力,快速构筑产品多维度,多场景下解决方案的API能力将成为很多互联网公司重点布局的方向。
基于此,在不久的未来,API的治理方向可以从三个层次来看:
底层将依托于企业强大的数据整合能力、计算能力、模型建造能力、与生成式人工智能整合能力,持续丰富API的多维度提供数据价值的能力,形成丰富的API资源库;
中层将结合产品自身、外部环境、客户定制化需求等抽象出更更富的API使用场景,以高效的交付、对接能力以应对更复杂的外部场景;
最顶层,则以商业化的视角,将企业的API资源以工具化、产品化的能力对外输出,打造和运营符合产品定位的API生态圈,并加快在跨界整合、跨行业融合、跨平台交互等使用场景中API商业价值的变现能力。