Fellow Cloud pontificator Randy Bias caused quite a stir at O’Reilly’s Open Source Convention (OSCON) this week. Basically, he suggested that the OpenStack crowd capitulate to Amazon Web Services (AWS). Instead of building competing APIs, Randy opined, OpenStack should follow in Eucalyptus’s footsteps and simply comply with the AWS de facto API standards.
His reasoning: AWS has already sown up the Public Cloud marketplace. No sense for OpenStack to keep beating their collective heads against that wall. Instead, OpenStack should go after the Private Cloud space. Because APIs are central to the Hybrid Cloud story, being able to connect OpenStack Private Clouds to AWS or other AWS-compatible Clouds is where the money is.
OpenStack-based Public Cloud providers like Rackspace are sure to disagree, but I think Bias is on to something. AWS clearly dominates public IaaS. Hybrid Clouds are unquestionably where the money is, for any consultant or service provider serving the enterprise market. I would also go so far as to say that OpenStack is well behind AWS, and losing ground – so playing a “can’t beat ‘em so join ‘em” game makes sense.
Fair enough, but I think there's a larger, more strategic issue here that both sides of the Cloud API discussion appear to be missing. We've outgrown the old notion of API as a tightly coupled, procedural interface. We’ve been through the fire of Web Services as we struggled to achieve loose coupling with contracted interfaces. And now we've come out on the other side, calling our software interfaces APIs once more. But have we learned anything?
What we really want from our software interfaces is deep interoperability. We want them to abstract the underlying software capabilities, not only to support different implementations at the same time, but also to support changing implementations over time. Web Services took us part way there, but they needed intermediaries to abstract multiple implementations and rigorous repository-based governance to handle versioning.
Hypermedia-Oriented Architecture (HOA), the architectural style that REST was meant to be, takes us further. Hypermedia take care of interface discoverability, helping to resolve the agility issues that plague typical APIs.
True, HOA needs work. There are still missing pieces to the deep interoperability puzzle. But as the OSCON API dustup indicates, people aren’t even thinking about hypermedia-driven discoverability when they’re thinking about APIs. Stop chopping down trees, folks, there’s a whole forest out there to figure out!