En 400-6655-581
5
返回列表
> 资源中心 > 技术干货 | API的前世今生

技术干货 | API的前世今生

2019-05-10浏览次数:1434

\r 最近各个行业都在大谈特谈数字化转型、敏捷、API经济等一些新概念和新名词······ \r

\r

\r \r

\r

\r

\r

\r

\r

话说回来这些新概念都离不开API服务的支撑 \r

\r

一句话表达就是“万变不离其宗” \r

\r

\r API \r

\r

\r 是神马东西 \r

\r

API的英文简称 \r

\r

Application Programming Interface \r

\r

白话文就是终端和计算之间通信的一种方式 \r

\r

\r

\r

说 明 如 下: \r

\r


\r

\r

API提供的是什么服务? \r

\r

API传输了什么数据? \r

\r

可以通过API返回什么信息? \r

\r

API是通过哪种协议发送的? \r

\r

往哪台服务器发送? \r

\r

是否安全? \r

\r


\r

\r

\r

\r

示例图 \r

\r


\r

\r

以前也有API,为什么这么多年都没有火起来呢? \r

\r

毕竟任何事物的发展壮大都需要一个过程。 \r

\r

90年代,业务单体建设年代,必须要大干快上,这种烟囱式建设持续到了21世纪初,大家总觉得哪哪不对劲······ \r

\r


\r

\r

IBM巨头振臂高呼 \r

\r

你们这样搞不行的 \r

\r

我们需要 \r

\r

松耦合、高内聚分布式SOA架构 \r

\r

大家觉得这个高大上,领导说可以搞, \r

\r

各大500强企业奉若神明 \r

\r


\r

\r

2010年,随着人工智能EI、IOT、公有云、智能制造、微服务架构的不断演进, 依赖API的平台不断更新, 如Web、Mobile、 终端等,未来将会出现更多的服务体系。ProgrammableWeb便预测API矢量可达到100,000到200,000,并会不断增长。API开发数量的增加给边缘系统带来机会,大规模的API管理系统成为核心的发展趋势。 \r

\r


\r

\r

传统企业的IT部门迎来了最好的、也是最具挑战的时代。 \r

\r


\r

\r

最终,企业的销售模式逐步转变,能力变现、 释放数据价值,依托不同的API管理平台创造新的盈利。 \r

\r


\r

\r

随之,API Management应运而生 \r

\r

APIM包含了API网关、API设计、创建、测试、发布、运维、监控的生命周期管理、API portal、API市场、API运营等等功能。 \r

\r


\r

\r

API网关按照功能和类型划分:一种是微服务内部网关,一种是企业级网关。 \r

\r

今天我们主要讨论企业级网关。 \r

\r


\r

\r

企业级网关主要具备以下功能: \r

\r


\r

\r
\r 1、请求路由,版本控制 \r
\r

\r API Gateway 是服务的入口,可以根据不同的请求路由到不同的服务上,也可以在 Gateway 上进行路由的版本控制,这样即使后服务发生了变化,Gateway 的路径依然可以不改变。 \r

\r \r
\r 2、用户登录,权限认证 \r
\r
\r

\r 客户端在与我们后端服务进行交互之前,需要先进行登录鉴权操作,这是后端所有的服务都需要有的共有逻辑,因此在 Gateway 做这个事情就再合适不过。 \r

\r \r
\r 3、数据聚合 \r
\r
\r

\r 由于不同的客户端往往需要的数据完全不同,而这些数据又是不同的 service 提供的,比如上面提到的查看一个商品详情页,我们可能需要同时从商品服务,库存服务,评价服务等中拉取信息,我们可以借助 Gateway 方便完成来自不同 service 的数据聚合。 \r

\r \r
\r 4、协议转换 \r
\r
\r

\r 在我们的实践中,CS(Client to Server)协议和SS(Server to Server)协议是不一样的,为了保证数据传输的可靠性,我们的CS协议会有鉴权以及加密解密的逻辑,而在内部的SS协议则不需要这些逻辑,因此在 Gateway 我们需要有一个协议转换的过程。 \r

\r \r
\r 5、熔断,降级,限流 \r
\r
\r

\r 当监测到某个服务发生异常,或者当服务的流量超过我们服务的承载能力等情况时,我们可以采取相应的措施,对整个系统的容错性、稳定性有很大帮助。 \r

\r \r
\r 6、负载均衡 \r
\r
\r

\r API 网关知道所有服务实例的地址,所以可以根据不同服务采取不同的负载均衡策略。 \r

\r \r
\r 7、灰度发布 \r
\r
\r

\r 有时候我不希望让所有的流量都一次性的到达程序的新版本,因为那个新版本也许并没有测试地很充分。灰度发布允许你直接只导入指定量的流量到新的版本,API 网关就可以帮你来做这件事情。你可以配置10%的请求到新的版本,然后一旦你确保了新版本没有bug,你可以把流量切换到100%。 \r

\r


\r

\r

\r API 网关总结四大功能: \r

\r
    \r
  • \r

    \r 简化集成 \r

    \r
  • \r
  • \r

    \r 访问控制和安全保护 \r

    \r
  • \r
  • \r

    \r API生命周期管理和BI报表、监控 \r

    \r
  • \r
  • \r

    \r 开发者支持 \r

    \r
  • \r
\r

谈了这么多API相关的功能,那么业界那有没有比较靠谱的产品吗? \r

\r


\r

\r


\r

\r

现在我们来看下开源和商业API产品都是哪些: \r

\r


\r

\r

\r

\r


\r

\r
    \r
  • \r

    \r Kong,四大皆空,才能创建这么好的产品,开源的APIM老大,界面化开发较弱,性能好,扛造。 \r

    \r
  • \r
\r


\r

\r

\r

\r
    \r
  • \r

    \r  CA 国外的和尚,有点水土不服,不过胜在套路多,可VM/docker、功能齐全,安全和访问控制都是杠杠的,国内案例有不少,不过最近博通收购。后面发展有待观察。 \r

    \r
  • \r
\r

\r

\r
    \r
  • \r

    \r APIGEE APIM界大咖,google出品,Gartner魔力象限排名第一,功能、界面、可用性都非常不错,不过只能公有云部署,这和国内企业就无缘了,国内企业较难接受,你说整个本地部署的版本不行吗? \r

    \r
  • \r
\r

\r

\r
    \r
  • \r

    \r Mulesoft API 这家也是国外的产品,ESB出身,功能齐全、界面优化,有大家风范,不过已被Salesforce收购,而且他们对国内市场不太上心。 \r

    \r
  • \r
\r

\r

\r
    \r
  • \r

    \r IBM API 老牌子国外厂商,不过心思好像不在这块。 \r

    \r
  • \r
\r

\r

\r
    \r
  • \r

    \r 国内厂商有很多,不过积累还是相对较少,当然这样说话,容易被打死,不过也有让人眼前一亮的,大家可以找度娘······ \r

    \r
  • \r
\r
\r 心的呼唤 \r
\r

\r 国内产品的成熟度相对于国外还是要晚于三到五年的时间。国内产品需要快速强大起来,在功能、性能、界面、部署模式等方面能与之媲美。 \r

\r

\r 话说回来,派拉软件在这方面可是杠杠的,提供企业API网关专业服务,对API的安全管理进行扩展,更好服务于客户,排的妥妥的! \r

\r

\r \r