专家博客 制订云API标准的时机尚未成熟

本文作者Mike Fratto是《信息周刊》执行主编。

在加州圣塔克拉拉Cloud Connect展会上举行的一次有关云的开源问题的会议上,Cloudscaling的Randy Bias掷出惊人之语:"API不重要"。其实Bias真正问的是:"标准在云计算里面可以扮演什么角色?"然后,Bias继续解释道,如果云服务提供商不能提供Amazon服务所有的功能和特性(包括那些看不到的,比如可靠性和扩展性),那么模仿Amazon的API(应用程序编程接口)也是没用的。当然,API是重要的,但是我认为一个在功能上标准化的云服务管理API是没有意义的。

API还有合同问题,就是那些创建API的人和那些使用API的人之间的合同。如果API是用于研发实验室或者一个服务,那还没什么关系。API开发者承诺说如果你正确地操作,API将执行请求或引入数据然后做应该做的事情。不过,Russell Crowe在《美丽心灵》这部电影中扮演数学家纳什并不意味着Russell Crowe就是一位数学家。如果你要解决一个有关博弈论的问题,最好还是找到像纳什这样的人来解决这个问题而不是像Russell Crowe这样装作会解决问题的人。

API重要的是使用的容易性。在云世界,RESTful API、SOAP、Web服务等允许服务提供商将系统以某种其他人可以利用的方式暴露出来。至于云服务管理标准–定义一个通用的服务互动API的标准–在这种情况下没有多少意义。我们现在还不清楚哪些东西需要标准化,云服务的哪些核心功能应该标准化。我们可以很容易说"标准化方法调用以实例化一个新的VM(虚拟机)",但问题是我们需要哪些功能来做这件事?选择一个OS(操作系统)还是一个VM?NIC(网络接口卡)、CPU或RAM的数量如何设定?是否需要特殊硬件,比如GPU或加密处理器?地理位置?OS语言?

上面的这些问题,一些对你来说是重要的,但是可能对其他人来说不重要,因此我们应该把这些东西全部标准化?等等,一些组织可以创建一个标准化的框架来支持一个通用的命名空间以及专门的命名空间,就好像RADIUS属性字典或SNMP(简单网络管理协议) MIB(管理信息库)(这两样都是完全无害的世界)。然后你需要一个方法来发现一个服务提供的可用的功能并解决你可能需要的其他要求–无论有没有标准都有可能发生。

对于云标准来说,重要的是云服务提供商有一个良好定义的稳健的API,这个API使用基于标准的协议和数据格式,比如HTTP传输协议和XML格式的文件,而不是去开发行业范围的高层次的功能框架和方法。IT标准的目标是推动产品和技术的互操作性。如果标准不能带来互操作性,那么标准就是没用的。开发人员和整合者需要在现有特性和服务功能上互相协作。其他的都是次要的。