简介: 就云计算的API来看,当前并没有类似POSIX这样的API标准,基本上各大厂商各自为政。当然,有一些业界主流标准例如OAS获得多数云厂商的支持,但云厂商本身的API却往往由于历史原因、技术路线原因百花齐放,例如AWS的OpenAPI属于RPC风格,而Azure则是WebService风格,GCP则是基于gRPC为主流。技术方面的论述很多,本文更想从客户体验、研发效能的角度来阐述OpenAPI对云计算整体竞争力的重要性。
作者 | 虚明
来源 | 阿里技术公众号
一 导读
提到API从事技术的同学都十分熟悉,无论是在操作系统上开发软件,还是打造分布式网络服务,都离不开对各种API的调用。对应用程序开发人员来说,都会通过各种编程语言、系统调用和各种类库、编程框架构建系统,为了提升开发效率和统一性,就出现了各种各样的API标准,例如POSIX。这些标准的实现保障了应用程序可以不做过多修改就能运行在各种软硬件平台上,大大促进了整个IT生态的发展。
然而就云计算的API来看,当前并没有类似POSIX这样的API标准,基本上各大厂商各自为政。当然,有一些业界主流标准例如OAS获得多数云厂商的支持,但云厂商本身的API却往往由于历史原因、技术路线原因百花齐放,例如AWS的OpenAPI属于RPC风格,而Azure则是WebService风格,GCP则是基于gRPC为主流。技术方面的论述很多,本文更想从客户体验、研发效能的角度来阐述OpenAPI对云计算整体竞争力的重要性。
二 云计算OpenAPI的特点
如果将阿里云飞天操作系统与传统操作系统类比,那么它也是由内核层、接口层、操作界面、业务应用组成,计算、存储、网络等核心产品构成了内核,API层承担内核的管控和数据通信,各式各样的控制界面则相当于操作系统的Terminal/Windows/mac OS UI,基于云计算的各种行业应用则是跑在这个操作系统上的应用。
图1 飞天操作系统
阿里云不同于传统操作系统,OpenAPI自然也不同于其他业态的API体系,例如淘系、b2b的开放平台。业务开放平台输出的是以业务数据为主的服务,目的是为了整合商业生态,而阿里云开放平台输出的是云操作系统的管控能力、数据操作能力和其他企业级能力。前者重心是服务商业模型,而后者重心是服务技术底座。因此,云计算的OpenAPI体系要以服务技术开发者和企业场景为中心,保障技术体系的健全稳定,对外紧密对接行业技术体系(例如开源工具、三方厂商),对内促进众多云服务协同管理。
阿里云的OpenAPI有如下特点:
- 数量多:当前阿里云OpenAPI数量高达1万多个,每天调用量上百亿,分布在近300个产品上。
- 增速快:业务发展快,近年来每年数量的增速接近100%。
- API类型多:OpenAPI大体分为管控、数据两类,管控类又分为RPC/ROA两种形式,数据类又会分为数据流、文件等具体类型,还有很多业务需要有自己的格式。
- 产品协同要求高:单个OpenAPI是不能满足用户要求的,场景化的用户需求需要多个产品的多个OpenAPI组合才能服务,这对API编排、产品间API协同提出了更高的要求。例如在稳定性方面,一个产品的OpenAPI出问题有可能造成整个管控链路的雪崩。
- 企业能力需求强烈:OpenAPI主要是用来进行云资源管理或数据传输的,操作对象都是用户资产,除了常规的身份管理、权限管理外,对企业来说还要服务于运维、财务、法务、监管等部门,当涉及众多的云产品时对架构和底层设施的完备性、准确性、及时性要求很高。
- 与行业技术趋势结合紧密:云是全球化的,作为平台它要想服务好各种场景、人群就离不开与各种业界标准和技术体系相结合,云计算与开源行业高度结合证明了我们做的技术不能闭门造车。
- 稳定性风险加大:商业开放平台的OpenAPI如果不稳定影响的可能只是客户侧某个业务功能模块或流程,但是云OpenAPI出问题影响的可能是客户底层技术系统,爆炸半径会更大。
- 调用热点集中:调用量分布基本符合二八原则,20%的云产品承担了80%的调用量,核心产品的体验决定了用户对阿里云的体感,保障客户典型场景的运作至关重要。
上述特点决定了云上的OpenAPI相比于传统开放平台,要侧重技术能力的建设,同时又要兼顾客户企业级场景,才能做好体验工作。