API对于云计算服务来说是很关键的,无论是公有云、私有云还是混合云。许多开发者不慎重考虑他们开发的API应该如何工作,结果导致许多内核很好的云服务不能提供很好地访问接口,有很多私有云、社区云和混合云的提供者都面临着这样的问题。
任何云和云服务API都是不同的,它们之间缺乏标准和统一的方法已经导致云计算的使用很混乱。结果是,徒然的云计算部署以及云管理者赶不上API的变化。
API的设计应该是有目的性的、简单的。Damian Conway曾经给出了一些很好的关于API设计的建议。
1. Do one thing really well.
2. Design by coding.
3. Evolve by subtraction.
4. Declarative trumps imperative.
5. Preserve the metadata.
6. Leverage the familiar.
7. The best code is no code at all.
将上面的观点总结起来就是要注意一下三点:
第一,简单最重要。许多API在设计时就面向一切事物,往往这样高要求的设计,使得API变得在实际应用中一无是处。我的简单规则就是:如果犹豫不决的话,就打破他们。考虑一个更好的方法。
第二,考虑性能。这一点通常在设计完了之后才考虑到,API的性能不好似乎已经成为一个很常见的问题。这就要求在编码的时候要尽可能的多做性能测试。
第三,顾全大局。API重要的是要能够很好地相互通信和工作,因此他们需要有共同的数据结构和使用模型。API不是独立的,他们是系统的一部分。他们需要遵循相同的设计原则和支撑基础架构,包括管理方法、安全性和数据等等。