API 管理5大规则

API就像是连接各个应用程序之间的纽带,不仅对消费者应用是这样,企业级应用也是这样。随着整个应用程序的快速发展,API管理平台也随之越来越流行。

API愈来愈重要,人们对它的关注度也逐步上升。所以需要一些最佳实践/更好的做法来满足API的创建、开发和管理。

Mashery的CEO,Oren Michels提供了一些非常实用的API管理原则,这些原则也适用于其他服务提供商,比如Apigee、Layer 7、Mashape和SOA软件。它们可以给你带来非常全面的指导。

1. 设计

开发人员使用API访问各种不同的类,并且使用它们的开发安全策略、使用策略以及有选择地访问数据和服务。这里例举两个API管理平台,Layer 7和SOA软件,它们可以满足企业的各种需求。

Layer 7的联合创始人和首席战略官Dimitri Sirota:

它需要为每个域或用户组提供构建和运行API的策略,这其中包括架构师/开发人员、安全架构师、IT运营和业务分析师(API市场营销)。

Layer 7平台里面包含一个可以解决每个利益相关者(API Gateway、API身份代理、API服务经理、API开发者门户)的组件。

根据定义,平台应是可扩展的,并且提供一些构建方式。这就需要Layer 7提供产品API和SDK(开发包)。

Michels补充到,IT团队与业务组之间常常缺乏沟通:

企业API管理必须包含整个企业,不仅仅是技术人员。SOA解决方案以及其他通道往往关注的是IT人员,并没有把API的业务人员包含其中。这在UI上就可以明显地反应出来,它们的免费版和语言中包括了业务规则过多的复杂“策略”,这要求使用者必须是真正的技术专家。

最后一点也相当重要。我们向企业销售API管理已有5年历史,从未见过科技人员与商务人士合作,但他们都是API管理平台中的重要成员。

2.文档

为了让API易于访问,提供商应提供文档和沟通工具,这样开发人员就可轻易创建并管理应用程序中的API。在这方面Twitter做得非常好,但尺有所短,其在开发人员通信方面却是步履蹒跚。

API布道师Kin Lane:

沟通、沟通、沟通!Twitter从2012年3月开始摸索……并且在后面的版本中一直延续。对Twitter来说,它并不是做一个简单通信工具,而是做一个生态系统。如今,我们生活在一个社交网络高度发达的媒体时代,我们需要的交流并不是简单地向外传播信息。同样包括开发API路线图。如果你想开发一个API,那么得需要一段时间吸引来客户,如果你没有满足他们的所有要求,那么请多一些包容性。否则,他们会反抗。在Dick接管Twitter之前,这方面都做得非常好。

3.分析

Michels认为,收集和处理与API使用相关的数据也非常重要,根据这些数据进行分析,对一些业务和技术采取支持、鼓励或者限制等一些策略,对API管理也相当有益。

Apigee在数据分析上下足了功夫,例如最近专注于构建软件定义网络API。下面是作者早期发布的关于Apigee的一些策略:

Apigee的API管理平台是支持多供应商SDN的一个独立软件,通过实时的API转换,它可以把网络管理系统与来自多个供应商的SDN控制器进行整合。该软件包含网络分析、基于控制器本身使用的一些动态策略以及基于网络的程序,该程序可以可以动态触发并改变网络行为。Apigee软件把读取到的网络流量放进一个域模型中,并且作为API提供网络流量分析。

Apigee的战略副主席Sam Ramji认为,分析有助于确定基础设施如何适应不同的数据流。这种观点反应了软件正在如何取代硬件并揭示数据在应用程序校准中所扮演的角色。

然而,Mashape却支持不同的观点,Google API把分析作为一种商品服务提供给大家。CEO Augusto Marietti:

对我们来说,分析器和其他所有管理类的东西更像是一种免费提供的商品,使他越来越广泛地分布和消费。比如Google,他们的分析器是免费的,这有助于改进Google Ads。就像一个对象代理的云计算时代,把API统一成一个丛林世界,一个API消费者一个单独的API Key,通过消费控制台和信用卡等同种方式去消费。

4.通用访问

为企业提供各种无缝而且简单的架构支持,无论是公有云、私有云、on-premise或者是混合云。

5.正常运行时间

长时间正常运行(high uptime)、方便的可扩展性、处理流量高峰冗余,在企业后端解决临时错误,对后端的中断事件进行优雅的处理。大家可以看下SOA软件公司lan Goldsmith写的企业API管理平台:

SOA可以满足企业架构师和开发者需求——花费众多时间来构建基础设施的人往往需要管理数百个软件栈(software stack)。如何从这些栈中访问数据确是个挑战。在API以一种通用的方式集成应用程序之前,许多人都以常规的方式对程序进行架构。SOA这个名字本身所表达的就是“面向-服务架构”,曾被视为将多个本地应用程序集成到Web环境最现代的方法。

以上便是Mashery提供的一些API管理原则,各位程序员,你们还有更好的建议或者原则吗?欢迎与我们一起讨论。

你可能感兴趣的:(架构)