People like to use new technology as a metaphor and API seems to be bubbling up as a good choice. Here’s Alexis Madrigal on Occupy Wall Street as an API:
What an API does, in essence, is make it easy for the information a service contains to be integrated with the wider Internet. So, to make the metaphor here clear, Occupy Wall Street today can be seen like the early days of Twitter.com. Nearly everyone accessed Twitter information through clients developed by people outside the Twitter HQ. These co-developers made Twitter vastly more useful by adding their own ideas to the basic functionality of the social network. These developers dont have to take in all of OWS data or use all of the strategies developed at OWS. Instead, they can choose the most useful information streams for their own individual applications i.e. occupations, memes, websites, essays, policy papers.
I find the examples he uses after this paragraph a bit tenuous, but I really like the API metaphor in this example and generally. It’s a simple way to understand how distributed systems functions. (Franchising, for example, was essentially an API before people were talking much about APIs.)
What happens, though, when you take it further like Amazon did? Essentially the company decided that everything must be an API: No functionality produced could exist without being a simple service that any other group in the company could reach. It was probably best explained in an accidental Google+ post by a Google engineer a few weeks ago who used to work at Amazon. Here he explains Jeff Bezos’s service mandate:
1) All teams will henceforth expose their data and functionality through service interfaces.
2) Teams must communicate with each other through these interfaces.
3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
4) It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter. Bezos doesn’t care.
5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
6) Anyone who doesn’t do this will be fired.
7) Thank you; have a nice day!
What happened next was pretty amazing. After building all these services Amazon started exposing them all publicly. In designing their company around APIs they actually discovered a second business (Amazon Web Services) that they are dominating. In essence the act of simplifying the company down to a set of service calls helped them see where their greatest strengths lay. It’s an interesting approach and one I can only assume we’ll see more companies follow.
I love this quote about the difference between Zappos and Amazon culture from the Wired interview between Steven Levy and Jeff Bezos:
Levy: Two years ago, you bought Zappos. Was that an attempt to absorb their so-called culture of happiness and customer service?
Bezos: No, no, no. We like their unique culture, but we don’t want that culture at Amazon. We like our culture, too. Our version of a perfect customer experience is one in which our customer doesn’t want to talk to us. Every time a customer contacts us, we see it as a defect. I’ve been saying for many, many years, people should talk to their friends, not their merchants. And so we use all of our customer service information to find the root cause of any customer contact. What went wrong? Why did that person have to call? Why aren’t they spending that time talking to their family instead of talking to us? How do we fix it? Zappos takes a completely different approach. You call them and ask them for a pizza, and they’ll get out the Yellow Pages for you.
[Via James Gross]
Most people won’t ever touch Amazon’s cloud computing service. They will, however, touch an application that touches the service (FourSquare, Reddit, Percolate to name a few). What Amazon offers developers is the ability to bring up and down a server in an instant, only paying for the time it was live (for the initialized, this is all thanks to virtualization, which is pretty amazing). The other really neat thing about what Amazon offers is that they have a ton of server images to choose from when you launch your new box. That means in addition to the size and speed you can choose from different operating systems and even very specific configurations with additional software pre-installed (for instance, there’s a WordPress image that comes with all the software one would need to run a blog on Amazon’s cloud).
Anyway, some researchers looked into the security of these images and things didn’t turn out so peachy:
The results, which the team plans to present a paper at the Symposium on Applied Computing next March, aren’t pretty: 22% of the machines were still set up to allow a login by whoever set up the virtual machine’s software–either Amazon or one of the many other third party companies like Turnkey and Jumpbox that sell preset machine images running on Amazon’s cloud. Almost all of the machines ran outdated software with critical security vulnerabilities, and 98% contained data that the company or individual who set up the machine for users had intended to delete but could still be extracted from the machine.
I was wondering what these things were going to look like. Amazon’s new locker system has hit NYC. You can have a package shipped to one of these lockers and open them up with a 6 digit code (there are only a few of them currently, so the odds of it being convenient are pretty low). It’s interesting to think that this is a big enough problem for them to roll something like this out. I mean I guess it speaks to the size of the market in urban centers (I’m assuming Amazon will just drop off at your door if you have a house with a yard and all that jazz). Even more interesting is MSG’s conclusion that this is a small step before Amazon gets into the 3D printing business and just prints whatever you want locally.