Guest Post by John Atkinson, Manager, Software Consulting at BMC
I was with my wife the other day, grabbing coffee at Starbucks in my home town, when suddenly I was struck by two thoughts – first, that the Starbucks experience reminded me of Cloud Computing, and second, that I was spending too much time working. Let’s ignore the second thought for a moment, and instead explore the first one.
Starbucks, as we all know, is a coffee behemoth. I heard that they sell 30 million coffee drinks per day. That’s amazing, isn’t it? What’s more amazing is that most of these drinks are somewhat “custom”. If you sit at Starbucks for any period of time, you are likely to hear some interesting drink orders – from a simple triple Grande non-fat latte to a more complicated quad Vente, seven pump peppermint, caramel sauce top and bottom, no whip mocha. The cashier takes the order, converts it to code, writes it on the side of a cup, and hands it off to a barista who somehow knows exactly what to make. They repeat this consistently all over the world, some 30,000,000 times a day.
So how, you must be wondering, is that at all like cloud computing?
Well, in the early days of “cloud”, IT organizations followed the Henry Ford approach to cloud services. Ford was famously quoted saying that customers could have a Model T “painted in any color they want, so long as it’s black”. Of course, one size fits all Cloud Computing just doesn’t work. As much as we wish we could force our IT customers into tight standards, in reality, it’s not realistic. Just as my wife believes there is no substitute for a tall skinny pumpkin spice latte, sometimes there is no substitute for a multi-tier WAMP stack with CIS compliance, anti-virus software, proactive monitoring, 8 GB of RAM on each server, all behind a load balancer.
What if, instead of the “Model T” approach to Cloud, we adopted more of a Starbucks approach? Take the humble Caffé Latte. A Latte is, fundamentally, espresso, steamed milk, and foam. Whether it’s the skinny pumpkin spice latte my wife likes or the triple, non-fat, one raw sugar latte that I prefer, the drink has the same functional description – espresso, steamed milk and foam. At BMC, we call this the service blueprint, and it may represent a service with a Linux operating system, an Apache web server, PHP and MySQL.
Notice, though, that with the functional description, there is no size. At Starbucks, they take the service blueprint of a Latte, and apply it to the Tall, Grande and Vente sizes, scaling the recipe for each one (one shot of espresso and 10 oz of milk in a Tall, two shots of espresso and 12 oz of milk in a Grande, etc.). In the Cloud Computing world, we would call these sizes the Deployment Model. This might mean taking a service blueprint like the LAMP service described above, and applying it to different server sizes or configurations. Perhaps a Tall would be a single server with two CPUs and four GB of RAM, where a Vente might be a multi-server configuration with multiple Apache servers configured with a load balancer, communicating with a large MySQL server.
When you look at the menu in Starbucks, you see their various service blueprints (Caffe Latte, Caffe Mocha, Caffe Americano, etc.), and you see their deployment models – Tall, Grande and Vente, and you see the pricing for each of those. This sounds a lot like a service catalog – someplace where the end users go to select the right service for them. Of course, looking at the menu, you don’t see most of the drinks people order. For example, where on the menu is a quad Vente, seven pump peppermint, caramel sauce top and bottom, no whip mocha? It’s not there.
Or is it?
Let’s break that drink order down a little. The functional description the customer wants is a mocha – which is fundamentally espresso, steamed milk, chocolate syrup and whipped cream – the service blueprint. Their deployment model is a Vente, but what about all the other stuff? Well, those are options, and Starbucks has dozens of them; many are free while some cost a little bit. In the Cloud world, we have the same notion, but instead of an extra espresso shot, it might be a bit more memory, an additional CPU, additional storage, or maybe anti-virus software or compliance checks.
In the end, though, whether it’s a coffee order or a Cloud Computing order, the customer gets exactly what they want – through a combination of service blueprints, deployment models and options.