工作流与API的对比

F5生态系统 | 2018年4月16日

今天有件事要交给您。没错,就是您,请去银行存一张支票。您得上车,开到银行,进去找柜员办理存款,然后再回家。

觉得烦?确实如此,尤其是明明用手机银行应用就能办妥,根本不必多此一举。

各位,这就是工作流(即流程)与API之间的区别。

确实存在这样一种现象(名称是我起的,但这种现象并非虚构),叫作“API税”。它是指使用单个API调用执行复杂流程时产生的时间成本和技术债务。这就像不用移动应用存款,而是亲自跑一趟银行。

随着流程扩展,这种成本也会增加。如果一个冗长的流程需要调用十几个甚至二十几个不同的API,代码(脚本也是代码)会变得越来越复杂,不仅影响故障排除,也让日后的修改更加困难。通过逐个调用API固化流程,与敏捷背道而驰。这种脆弱性会阻碍通过优化来提高效率。

工作流本质上是为常见任务预定义的流程。大多数业务流程,甚至运维流程,都属于这一类。例如,使用命令登录系统、转到系统中的相应位置、更改端口的访问控制,然后提交更改。每次执行这项任务时,步骤都相同。这类常见流程很容易编写成代码。运维中有许多这样的流程,将其封装为工作流,不仅可以消除API负担,还能提高调用这些工作流的脚本的质量和可维护性。

这是因为使用工作流而非API,可以降低代码复杂度,使代码更易于管理和修改,从而提高敏捷性和稳健性。

来看一个完全虚构的示例。第一种是基于API的方法,其中每个步骤都代表一次API调用。这意味着需要开发和测试一个包含近20次不同调用的脚本,并持续对其进行维护。这就是技术债务。该脚本与编写时所适配系统的API版本绑定。如果其中任何一次调用发生变化,脚本也必须随之更改。

右侧采用基于工作流的方法。仍可通过API调用启动流程(许多组织可能更倾向于这种方式),但流程中的实际步骤会根据初始调用所发送的参数(变量)执行。可能还需要执行清理和提交操作,但所需代码已减少到只需两次或更少的交互。

这并不是说使用API和模板不好。事实并非如此。但在很多情况下,尤其是在网络领域,使用API需要掌握特定系统的相关知识以及通用网络知识。这使DevOps人员或开发人员难以使用这些API。采用工作流方法后,使用者无需具备相关知识或专业技能,因此DevOps人员可以更轻松地使用API,而NetOps人员也能继续发挥其专业价值。

在自动化日益普及(甚至可能逐渐占据主导地位)的环境中,基于工作流的方法让DevOps无需掌握大量特定领域知识即可调用任务,从而切实减轻NetOps的负担。

而且,他们还能避开那些烦人的API税。毕竟,谁不喜欢避税呢?

分享
标签: 2018

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。