Greg Althaus, RackN CTO, creates amazing hybrid DevOps orchestration that spans metal and cloud implementations. When it comes to knowing the nooks and crannies of data centers, his ops scar tissue has scar tissue. So, I knew you’d all enjoy this funny story he wrote after previewing my OpenStack API report.
“APIs are only valuable if the parameters mean the same thing and you get back what you expect.” Greg Althaus
The following is a guest post by Greg:
While building the Digital Rebar OpenStack node provider, Rob Hirschfeld tried to integrate with 7+ OpenStack clouds. While the APIs matched across instances, there are all sorts of challenges with what comes out of the API calls.
The discovery made me realize that APIs are not the end of interoperability. They are the beginning.
I found I could best describe it with a story.
I found an API on a service and that API creates a Wookiee!
I can tell the API that I want a tall or short Wookiee or young or old Wookiee. I test against the Kashyyyk service. I consistently get a 8ft Brown 300 year old Wookiee when I ask for a Tall Old Wookiee.
I get a 6ft Brown 50 Year old Wookiee when I ask for a Short Young Wookiee. Exactly what I want, all the time.
My pointy-haired emperor boss says I need to now use the Forest Moon of Endor (FME) Service. He was told it is the exact same thing but cheaper. Okay, let’s do this. It consistently gives me 5 year old 4 ft tall Brown Ewok (called a Wookiee) when I ask for the Tall Young Wookiee.
This is a fail. I mean, yes, they are both furry and brown, but the Ewok can’t reach the top of my bookshelf.
The next service has to work, right? About the same price as FME, the Tatooine Service claims to be really good too. It passes tests. It hands out things called Wookiees. The only problem is that, while size is an API field, the service requires the use of petite and big instead of short and tall. This is just annoying. This time my tall (well big) young Wookiee is 8 ft tall and 50 years old, but it is green and bald (scales are like that).
I don’t really know what it is. I’m sure it isn’t a Wookiee.
And while she is awesome (better than the male Wookiees), she almost froze to death in the arctic tundra that is Boston.
My point: APIs are only valuable if the parameters mean the same thing and you get back what you expect.