您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

一篇文章带给你DevOps如何管理API?

时间:2023-04-13 12:46:48  来源:今日头条  作者:苏三说技术

 

引言

随着DevOps理念在中国企业当中的普及和发展,中国企业DevOps落地成熟度不断提升,根据中国信通院的数据已有近6成企业向全生命周期管理迈进。而在研发全生命周期管理之中,API管理的地位愈发显得重要。随着API数量的大幅增长,也带来了新的API管理需求。如何在DevOps工作流中进行API全生命周期管理,对项目研发来说具有重大意义。

一、DevOps中API管理困境

 

在实际的DevOps工作流中,API管理面临着以下6大方面的困境:规范、协作、自动化质量、迭代、自动化。

 

图片

困境一:规范落地执行难

因为团队中的API文档质量参差不齐,导致规范很难落地执行。原因在于公司有很多的研发项目和团队,不同的团队有不同的API管理习惯,尤其是常用的Swagger方式的管理,很难进行统一的平台化管理。针对这个困境,可以通过统一的API管理平台规范文档的模板,引导编写流程和习惯,也可以通过自动化文档管理工具来简化流程,提高管理效率。

困境二:岗位协作难、信息沟通效率低

在DevOps工具链中,每一个工具都会有不同的通知消息,导致重要信息淹没在繁杂的通知中。其次是工作流程环节多、流程长,各岗位角色处理工作节奏不一,导致任务链上下游沟通效率低。针对这个困境,可以缩短流程环节,多启用自动化流程。同时制定精细化通知规则,根据优先级提供差异化通知样式。最后,再通过每日推送复盘消息,梳理当日工作项和消息通知,防止遗漏。

困境三:自动化测试体系搭建门槛高

传统的自动化接口测试脚本需要用Python/ target=_blank class=infotextkey>Python来编写,门槛高,成本高。又因纯手工编写,开发变动后还须对照文档二次调整接口的所有脚本。另外,自动化测试前期投入时间多,准备工作繁杂。针对这个困境,可以使用界面化的自动化测试工具,降低脚本编写门槛。还可以通过一站式API全生命周期管理平台,免去大量前期工作,提高自动化测试效率。

困境四:API生产质量和在线异常的发现、跟踪、解决流程过长

当下,在后端的接口自测、前段的MOCK测试、冒烟测试、集成测试、异常监控这5个环节中都会使用到不同的工具,于是产生了跨工具之间对接复杂、数据隔离,导致API生产质量薄弱,以及大量重复工作。可以通过一体化的API管理工具来打通不同环节的工作流,提高研发质量和效能。

困境五:接口文档无法跟踪迭代版本,回溯排查难度大

传统的接口管理工具如Swagger没有接口修改记录,缺少版本管理,无法通过日志定位问题,无法进行回滚和历史对比。另外团队也缺少接口迭代计划,导致开发量和影响面分析都难以评估。接口文档作为研发项目的重要资产,应该对其变更进行盘点,包括提供接口文档的历史记录。可以通过一站式API全生命周期管理工具,提供项目级的接口版本管理和接口迭代计划,输出更加优质的接口文档,推进DevOps工作流的效率提升。

困境六:DevOps工作流使用工具多

图片

DevOps作为宏观层面的研发管理思路,目前并没有大而全的工具,因此带来企业内部工具越积越多,数据流通阻滞,另外,传统接口管理工具功能也很单一。针对这个问题,可以使用一体化的API全生命周期管理工具来实现与接口相关的所有问题,减少对接的工具数量。

二、DevOps中API管理需要什么

基于前文对DevOps中API管理存在的问题,可以梳理出企业R&D需要以下六个方面:

  • 规范化:一个可配置规范、可自动根据规范生成 API 文档的 API 规范工具
  • 高协作:一个接口相关状态自动流转、精准通知信息的 API 协作工具
  • 自动化:一个低门槛、智能录入数据的 API 自动化测试工具
  • 高质量:一个一站式接口全流程质量管理的 API 测试工具
  • 迭代快:一个提供从项目级迭代计划,版本管控,到接口级历史记录的 API 管理工具
  • 工具链:一个接口全生命周期且多种对外集成方式的 DevOps 工具

图片

对于满足这些条件的工具,我们定义为API全生命周期智能协作平台。在这个一体化平台上,可以从API的开发态到发布态到运营态,对API进行全生命周期管理。

平台地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh。

三、API全生命周期管理如何接入DevOps

根据经典的DevOps流程图,我们从计划、开发、构建、测试、部署、发布、运维跟监控环节,探讨API管理工具对接。

图片

1、计划:制定API文档规范,搭建层次清晰的API仓库

  • 根据公司组织架构和系统服务的分布,组成一个层次清晰的接口仓库。
  • 统一规范制定,把不同团队的规范统一制定成公司的规范。
  • 整理公共材料,把历史文档快捷地导入到 API 仓库里,以及把一些可复用的材料例如经常用的数据结构,API 文档的模板、常用字段描述,都可以存储到 API 仓库,以便于在开发阶段创建新的 API 文档。

图片

2、开发:基于代码仓库搭建自动化流程,解决前后端调试和沟通问题

 

基于代码仓库或swagger或本地研发工具,快速自动生成API文档并快速调试,调试没问题后再自动生成 MOCK API和批量接口用例,可以在线分享给前端和测试,文档支持在线评论。最终还可以基于这个 API 文档生成业务代码,协助开发。

 

图片

3、构建:自动打接口版本及自动冒烟测试,支持回滚和减轻测试工程师压力

构建阶段可以基于 CI 触发器自动构建接口版本,方便后续版本回滚,还可基于接口版本做批量测试,以及做版本差异化的对比。

这两个步骤可以让测试对任务进行评估,更好地去减轻测试的压力。目前接口上自动化能测出来的问题,可预先通过API测试出来。

图片

4、测试:推进自动化测试,降低用例编写成本

 

在测试阶段我们推荐自动化测试,一体化API全生命周期管理工具可以去快速同步前面开发阶段生成的测试用例,然后对这些测试用例进行流程编排,组成自动化测试用例。也可以基于 API 网关的监控日志做流量回放,自动生成自动化测试用例,识别增量接口并跑模糊测试。可以组成场景案例,做回归测试。模糊测试跟回测试的测试结果发送测试报告,给到对应的测试人员。

 

图片

5、部署:快速测试核心流程,排除环境差异问题

 

部署之后可以通过 CD 触发器对环境进行预测,试跑核心的测试场景,生成对应的测试报告。可以通过多环境的测试结果进行对比,排查环境差异的问题,也可以在部署好之后进行压力测试。(注:目前Eolink Apikit压力测试功能将在年中上线,敬请期待)

 

图片

6、发布:确保对外访问畅通和安全

 

在发布阶段,主要对接 API 网关,让系统可以正常对外访问,开放接口能力。

 

图片

7、运维:保障服务持续稳定和安全

在运维阶段依然是使用 API 网关,做流量控制、负载均衡或服务治理。在接口开放上可以去做Open API 调用管控,在线试用跟鉴权。在接口交易上可以去做接口托管、转发跟计算计费以及订单管理。

图片

8、监控:实时观察接口运行情况,及时异常告警

 

可以设置标准的接口监控指标,做更加灵活的监控配置,并对告警进行规则配置预设,当满足这些告警的预设条件时就会发送消息通知,包括手机短信、主流的 IM 工具,以及webhook。

 

图片

 

在消息通知方面,我们认为不仅仅需要DevOps主流程的对接,而是要保证整个DevOps信息流的有效和及时传递,因此需要对 API 文档的变更、测试报告、监控告警,进行智能分发。例如进行分级推送、智能归纳、高风险标记等。

 

图片

【重磅】DevOps工作流对接API全生命周期管理全流程图

图片

四、不同规模团队如何落地实施

1、大规模团队:全DevOps周期的接口自动化

 

对于大规模团队来说,推荐基于DevOps全周期的接口自动化方案,需部署Eolink Apikit私有云版本。在这个方案中,可以把Swagger的URL自动同步到Eolink Apikit,自动生成文档,进一步基于文档生成业务代码,然后发送到代码仓库,再去触发CI流水线,给文档打版本,做模糊测试,并把报告发送给对应的人员。接下来在CD环节部署好服务之后,可以对环境进行预测试,并根据需求做压力测试,并把测试报告发送给对应的相关人员。除了CICD,还可以集成Eolink的网关产品,对API进行运维管理。

 

图片

2、小规模团队:高性价比的接口自动化

对于小规模团队来说,性价比更高的SaaS企业版,可以使用插件生成API文档上传Eolink Apikit,并进行测试,自动生成测试用例。

 

目前该高性价比解决方案,已覆盖从设计、开发到构建、发布、部署的环节,对运维、监控、压力测试等环节尚且缺失,对于核心的API全自动化的管理流程已完全足够。

 

图片

总结

本文提出使用一体化的API管理平台在DevOps工作流中对API进行全生命周期管理,解决过去多个工具之间数据隔离、流程阻滞的问题。

API全生命周期管理平台Eolink Apikit是结合 API 设计、文档管理、自动化测试、监控、研发管理和团队协作的一站式 API 研发协作平台,是API研发管理最佳实践产品,可以帮助个人开发者到跨国企业用户,快速、规范地对API进行全生命周期管理,提高研发效能。

平台地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh。



Tags:DevOps   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
什么是 DevOps?解读 IT 文化革命的目的和重要性
DevOps 将运维和开发相结合以提供持续的软件改进,可以降低复杂性并提高应用程序输出。 什么是 DevOps?DevOps 是组织用来创建和交付应用程序和服务的灵活实践和流程的集合,通过...【详细内容】
2024-01-12  Search: DevOps  点击:(77)  评论:(0)  加入收藏
从Kubernetes的探针到DevOps
今天在群里又看有人问如何设置 Kubernetes 的探针,感觉要补充的话太多了,结合我们在一些 DevOps 项目中痛苦的体验,今天一劳永逸的全部说完,此外,也为大家展现一下为什么 DevOps...【详细内容】
2023-12-27  Search: DevOps  点击:(116)  评论:(0)  加入收藏
14个工具,让 DevOps 和 SRE 遥遥领先!
作者 | Eduardo Messuti编译 | 小欧出品 | 51CTO技术栈(微信号:blog51cto)随着 DevOps 和 SRE 的不断发展,新一代工具应运而生。本文将深入探讨2024年最有前途的工具,它们正在塑...【详细内容】
2023-12-18  Search: DevOps  点击:(106)  评论:(0)  加入收藏
使用持续集成和部署管道简化DevOps流程
在软件开发领域,DevOps(DevelopmentandOperations)是一种将开发和运维团队紧密结合的方法论,旨在加快软件交付速度、提高质量和稳定性。然而,传统的软件开发流程中存在着繁琐的手...【详细内容】
2023-12-10  Search: DevOps  点击:(128)  评论:(0)  加入收藏
混合云中 DevOps 的最佳实践
近年来,出现了各种工具、技术和框架,其目标是增强灵活性、性能和可扩展性。传统的整体方法已被微服务和纳米服务等更加模块化的方法所取代。此外,云计算的兴起导致本地软件被云...【详细内容】
2023-11-08  Search: DevOps  点击:(72)  评论:(0)  加入收藏
一文讲透DevOps理论体系的演进
一、前言 当前,我国处于以信息化、数字化、网络化、智能化为特征的科技变革浪潮中,企业数字化转型大势所趋,那么作为支撑企业 IT 运转的运营体系也在向多元方向发展,比如 DevOps...【详细内容】
2023-11-01  Search: DevOps  点击:(221)  评论:(0)  加入收藏
八个优秀开源DevOps工具
DevOps(Development和Operations)是一组软件工程过程最佳实践,并非工具,旨在将制造世界的精益概念应用于软件世界。维基百科给出的定义是:“DevOps是一种重视软件开发人员(Dev)和IT...【详细内容】
2023-10-10  Search: DevOps  点击:(291)  评论:(0)  加入收藏
如何利用DevOps与Kubernetes提升软件交付效率?
在当今的软件开发领域,DevOps和Kubernetes已成为推动企业数字化转型的关键因素。DevOps是一种注重开发(Development)和运维(Operations)团队之间紧密协作的软件工程方法,而Kuberne...【详细内容】
2023-10-08  Search: DevOps  点击:(354)  评论:(0)  加入收藏
DevOps团队如何提高Kubernetes性能
编译 | 徐杰承今天,Kubernetes仍然是开发人员最需要的容器。Kubernets最初由 Google 工程师开发,作为跨本地、公共云、私有云或混合云托管的首选解决方案享誉全球。来自Statis...【详细内容】
2023-08-22  Search: DevOps  点击:(289)  评论:(0)  加入收藏
揭穿DevOps的5个谣言!
作者 | Aditi Agarwal 编译 | 徐杰承据不完全统计,软件故障每年都会给企业造成数十亿美元的损失,这也是为什么拥有一个可靠的软件交付流程是如此重要的原因,而DevOps能够帮助我...【详细内容】
2023-08-15  Search: DevOps  点击:(200)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(0)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条