编者按:这是一篇两年前的文章,作者为原CA TECH的中国区技术总监。他在文章中阐述的问题,今天读来依旧让人振聋发聩。但遗憾的是,国人在API成为一种服务的概念上似乎还停留在遥远的PC时代,说白了还都只是一些低端的数据库查询而已,根本不是服务。把自己的核心业务作为API开放出来更是欲迎还羞。说到底,还是在技术上对共享没有信心,更是对自己的核心业务没有信心……
原文转发如下,我们不介意帮CA推广,因为我们对自己的技术很有信心。
作者 刘国强
最近,没有什么比“互联网思维”和“移动互联”更受人关注又备受调侃的了。有人总结出粉丝经济等等是互联网思维的基石,但在一家传统IT管理厂商眼中,每一个新的思维背后,真正能称之为基石的还是技术。技术的进步催生了互联网经济,而这种变化投射在人的思想里,才形成了新的思维。
以应用为中心、以软件为中心,是未来所有企业面对的问题。所有企业不管是制造业、航空业、金融业或者服务业,最后都要演变成为IT企业,因为所有的服务和产品都要通过软件传递出去,比如银行、制造业和实体的商店等。制造业如汽车行业,其4S店要提供各种各样的贴身服务来留住客户。而且汽车中的功能有40%是通过软件方式来服务的,所以如何是提供更好、更便利的服务给最终客户和合作伙伴,是企业发展的核心。
API来了,你注意到了吗?
API是随着互联网和云计算的兴起而催生的产物。API是三个英文字母Application Program Interface的首字母简写,即应用程序接口。像云供应商亚马逊、互联网巨头Google、社交媒体Twitter,他们的服务都是通过API的方式来提供的。亚马逊的首席执行官Jeff Bezos要求亚马逊的所有开发人员:
• 数据和功能只能通过APIs 来提供给使用者
• APIs 必须设计为便于外部开发人员调用
• 如果你不遵守这个规定,你将被开除
API热在西方出现较早。早在2012年,API就为国际的互联网巨头们带来了非常可观的经济效益:
• Salesforce超过一半的收入:Salesforce 23亿美元的年收入中超过的一半的收入是通过API产生的;
• 50亿笔交易:Google 每天通过API处理50亿笔交易
• 130亿笔交易:Twitter每天通过API处理130亿笔交易
• 1万亿笔交易:亚马逊每天通过API处理1万亿笔交易
相对于国外,API经济在国内也已经开始成形,只是还没有引起太大关注。国内像微信、QQ、人人等,都是有开发平台的,开发平台上就有API的管理。API如果被用于商业用途会进行收费,可以根据功能的多少、调用的次数、优先级等分为不同的费用模式。因此,API计费不只是互联网企业的专利,所有的银行、企业甚至政府都可以使用,就像银联在不同银行之间的转账,都属于API抵用。以前企业大多数是在内部的系统之间调用,现在把系统可以提供的服务都用API的形式开放出来,形成API管理门户,分为企业开放者和个人开发者,要经过认证、付费之后就可以使用,付的费用越高,就可以调用更多的服务,比如像百度地图、高德地图和定位GPS。
API的本质是一种服务,无所不在的服务。移动其实是一个载体、一个表现形式;移动在本质上是让服务变得随时随地可以用。手机上的各种APP,其实都是一个服务的入口和访问口,如何来提供这种服务呢?就是后端跟API相关,安全的去使用API。
服务可以分成两种,一种是对内服务,一种是对外服务。如果是面向最终客户的,不需要单独去注册账号,只要有QQ账号就可以登陆,像手机应用“百词斩”、“欧路词典”等,有微信账户就可以和“嘀嘀打车”联动。我们把它定义为社交化里面的统一身份,只要在互联网上有一个身份就可以相互认证通过。但是这种模式比较适合个人,并不完全适合传统企业。因为这种模式是提供给个人消费者使用的,其安全级别相对比较低。而企业不一样,企业的核心数据并不希望用社交身份来认证和管理,这是一个矛盾点。前面讲到API就涉及到了这一点,API管理是需要管理开发者和使用者的身份,其中第一点就是身份问题,你的身份是个人用户还是企业用户?如果是企业用户的话,不太会社交化。用微信的账户就可以登陆CA Technologies的某个应用,这是不太可能也不被允许的。
API,怎么用起来?
CA Technologies的API管理平台已经有很多客户,有几个航空公司就使用了CA Technologies的产品,专门做了API的网关。但是国内企业对API经济化的重视程度还比较低。以航空公司为例,他们就需要这样的网关来管理API,因为手机上的用户都要进行在线买票或网上值机,需要输入信用卡和各种各样的信息。那么如何保证访问者是安全的,不会受到黑客攻击造成后台信用数据泄漏呢?前一段时间某知名出游网站出现了安全门事件,其实就是API泄露。因为虽然它的系统对外是不开放的,但是其他系统通过API调用了核心系统,黑客攻击了其中一个小应用软件从而访问到API,所以本质上是API泄漏的信息。大家在讨论的时候没有意识到,这其实还是一个技术层面的问题。
我们以航空公司的服务为例,来做一个API平台的使用场景分析:
系统中首先会包含内部的票务系统,剩余票量是多少,乘客信息,座位情况,各方面信息都会显示。
第二,系统会与银行通讯,来验证乘客有没有付款,使用了何种付款方式。
第三,系统还需要和政府打交道来核实乘客身份。比如身份证的信息是否真实,需要和公安部的信息进行比对。公安部也是通过API进行管理,系统一旦被攻破,所有的信息都会有被泄露的危险。其实我们会发现企业和企业之间都是通过API连接的,这就变成了物联网的概念。物联网中的通信不需要人的干预,我们把它叫做机器和机器之间、系统和系统之间的通信。在系统和系统之间的通信也要管理,不管理就会出问题。系统和系统之间就是通过API通信的。
以前大家购买服务都是以一个整包为单位购买,现在拆分得很清楚,因为后端有很多系统,都会分开进行收费,是按照API来计费的。API本质上是很多的函数。一般是很多小函数,就是并列着有很多功能列出来供选择,选择的越多,收的费用越多,这就是跟API收费了。微信也是一样,都是按量去计费的。
API有两种收费标准,第一个是按量计费,第二个是按功能计费。API有提供很多功能,你选择不同功能的套餐,范围越大收费越高。API不再是简简单单的开放一个函数,而是要涉及到开放给谁,怎么计费的问题。这也是API为什么需要门户(Portal)来管理的原因。我不光要告诉你能不能访问,能访问什么,还要告诉你要交多少钱,也就是和费用、经济挂钩了。
以前API一般访问量很小,就是系统和系统之间调用,或者迫不得已调用。当API突然变成服务概念的时候,你会发现API被调用的数量是海量的,这就意味着对API的管理已经势在必行。API的身份要统一管理,API的单点登陆要统一管理,API的能力、API的计费全部要单点管理,这才催生了API经济的概念。
刚才讲到新API的概念,API的安全。API有不同的种类,其标准也非常多,有老的、遗留的API模式,也有新的、互联网行业比较标准的API。CA Technologies可以实现API的转换和封装,不管企业使用的是什么模式的API,都可以被转换成业界最标准、最流行、最好用、最易用的API。比如我要做一个API的mapping,技术难度是比较大的。我们要了解很多,从业界比较早的API知识、型号、接口,转换成一个用户选择的API标准接口出来,这过程中要花的代价、需要的专业知识都会比较多。在跟互联网结合方面,都是在应用层面,跟编程相关性非常大。编程虽然不难,但是编程知识的改变非常快,很多新的编程的环境、语言、更新速度也很快,所以要适应这个变化,也要去驱动它快速的适应和改变。
API,怎么管起来?
越来越多的企业正在向合作伙伴、开发人员、移动应用程序和云服务开放他们的数据和应用。API提供的标准化方法可用于在Web、移动设备、面向服务的架构(SOA)以及云中开放信息资产。企业需要以低成本的方式实现安全可靠的API信息共享,才能积极面对安全、性能管理以及数据调整方面的严峻挑战。一套完整的API管理方法论应当包含后端集成、移动优化、云协调以及开发人员管理等高级功能,才能应对企业面临的各种API管理的挑战。
笔者认为API的管理至少有涉及三个部分:
1、API网关,作为服务消费者和服务提供者的桥梁,但是身份管理和转换、API访问控制和流量管理、以及API的权限管理,还可以追踪 API 性能,并生成所有服务交互的审查跟踪结果。
2、API服务管理,可以企业内部陈旧的转换为新的API格式,同时对从开发、测试到生产的整个API生命周期进行管理。
3、API开发者门户管理,在门户中可以对API的开发者提供如下管理功能:
• 开发人员注册:分类个人用户、企业用户、免费用户或者收费用户。
• 开发人员资源 : 提供开发人员使用的包括:讨论与支持社区、集成消息、API 文档、API 资源管理器、API 状态、应用报告等。
• API报告与分析: 用于追踪和测量 API 使用情况、成功与错误、延迟等内容的 API 报告,用于显示延迟、使用情况、成功与错误等内容的应用报告。
• API门户的内容管理:可定义门户界面的外观、风格、品牌和内容并支持筹划和生产环境以及内容批准、发布、回退流程,从而简化变更管理。
不论称它为API或者是应用程序接口,这两个略显冰冷的机器化的名词对已经不再只是开发者和IT从业人员关心的事情。正如我在文章开头所讲的,未来,所有的企业都将变成软件企业,软件在很大程度上定义了一个企业的远见和未来。正因如此,API才从枯燥的代码中跳脱出来,把它的价值鲜活地展现在世人面前。推动趋势或者被趋势迫使前进,选择从来都只在自己手中!