There’s been quite a bit of chatter on the web about the Azure Services Platform. Obviously I’m excited to see people talking about our new platform, especially when there is plenty of good, some bad, and some good if not somewhat rambling. There will be no shortage of guessing as to what Microsoft is “really up to” with our development efforts. I wanted to take a crack at that one, but from a completely different perspective. I want to frame the discussion centered on the motivations of the platform providers, and let that be a guide to understanding the delivered product.
Let me start by giving a hat tip to the AMZN guys. Their web services platform (AWS) has really been at the tip of the spear for cloud computing. For the sake of this discussion, when I use the term “cloud computing,” I am talking about the developer platform, not things like GOOG apps. The AMZN services are a loosely coupled set of services targeted at developers looking to avail themselves of infrastructure buildout. Their infrastructure as a service (EC2) is a great way for developers to reduce their capital expenditures and take on a variable costing model for their servers.
The services, all up, encompass several key pieces for building applications that can take on a range of workloads. The ability to now run Windows Server 2003 (which should get you terminal services) means that as a developer, you can deploy varying application types into AWS, beyond simply web apps. From a developer standpoint, however, there is no unified development experience. Which brings me to the discussion around motivations.
AMZN essentially spends 10 months out of the year building out servers. They build out massive numbers of servers for the two months out of the year when they are handling the Christmas shopping season. AMZN is, for all intents and purposes, a giant mall. They spend hundreds of millions of dollars a year building more capacity for their mall. Their store is the primary reason shoppers come in the front door, and most of the year, their mall is empty, relative to the size of the mall. As a retailer with an ecommerce backend, their problems are no different than most enterprises. They have machines that are sitting around doing little or nothing for large portions of the year. Unlike most other enterprises, AMZN has the financial capacity to build out their server capacity. At some point, AMZN made the decision to no longer be the primary traffic draw to their mall. They realized that they could completely offset their own traffic (and then some) by taking the technology that they had built for themselves and making it available to other developers.
AMZN is, essentially, in the load management business. They are a low margin retail operator that is running a hugely expensive infrastructure for which they are seeking maximum utilization. They would like nothing more than to be noise in their own system. AMZN is relentlessly metrics driven. As such, they have a pretty good idea of how much money to expect off of traffic that walks through their front door. They know how much to expect from traffic ending up at one of their marketplace partners. With the addition of AWS, they have a new way to monetize their capacity, and with their predictable pricing model, they know exactly how much money they are going to make off of customers who deploy applications to their service. Traffic on their network makes them money. It may not make your app money, but it makes them money, so they are happy. It more than likely saves you money, so you are probably happy too.
So, AMZN is motivated by maximization of infrastructure capacity, and optimization of what would otherwise be very low margin businesses. They do this by delivering a loosely coupled set of services to developers looking for infrastructure as a service. They aren’t necessarily targeting developers. They aren’t a platform, per se. They are targeting anyone who is looking to move workloads off of their own infrastructure and onto AMZN.
Ahh, Google. I love those guys. They have done plenty of cool things, and their release of the AppEngine (GAE) was welcomed with very loud praise from many in the tech community. According to some reports, they had 25,000 developers sign up for GAE in the first few hours of releasing it. Taken as a whole, GAE is a very tightly coupled set of services designed to allow developers to build applications that will have no problem scaling up to, theoretically, infinite capacity. The rigid requirements for a developer deploying into the GAE are such that you use one language (Python) and their database (big table).
Once again, when considering what has been built, one need look no further than the motivations of GOOG to really get where they are going. When you consider the stricture imposed on the architecture of apps built for GAE (singple process, no long running queries, no local file access, no network access), a developer is all but required to build standard CRUD web applications. There is no stack for enterprise integration. The delivery vehicle is the web browser. The data that is created goes right into big table.
Some might say that GOOG’s core business is search. I actually have a different opinion. GOOG’s core business is the monetization of page views. Search is their instantiation of that business model, but many of their other applications have nothing to do with search, and everything to do with the monetization of page views. Think about gmail – ads on the sidebar.
Applicaitons on GAE are mostly CRUD apps, storing structured data into big table. As a developer, building an applicaiton on GAE, you are essentially feeding the GOOG beast. While they have not yet released final pricing, allow me to put on my pointy tin foil hat and talk about what might come to pass. GOOG knows exactly how much it costs to run their infrastructure, and as such could hand developers a bill for the resources which they consume. However, GOOG doesn’t have AMZN’s problem. Their traffic is mostly linear, and going up and to the right. It’s probably logarithmic at this point, but who’s counting? In any event, since they have little variability in their traffic patterns, they don’t have to get into the load management business. By allowing developers to build applications on their infrastructure, they are incurring unnecessary costs. Their motivations, however, are driven by their business model. Each new app that is plugged into the infrastructure ads new data to their data set, and creates new opportunities for page monetization.
Bottom line: GOOG is motivated by feeding the GOOG beast and monetizing pageviews. That shines through in the design of their app delivery vehicle, the tight coupling of the services, and the expected design patters of the applications to be built on their infrastructure.
With all of the above points in mind, hopefully you can start drawing some pretty good conclusions about the potential future directions of the competitive cloud platforms in the market. As for MSFT, there are plenty of things I could say, but let me simply state what I believe to be our motivations. We are a platform company. We very much believe that we are in the business of delivering the best platform and tools to developers to build great applications. Our on-premise stack has proven to be extremely successful over the last several decades. With the release of the Azure Services Platform, one of the core design tenets was that we would like to achieve parity between our on and off-premise stacks. The entirety of the Azure Services Platform is designed to enable experienced MSFT developers to be combat effective on day one.
However, the platform, from my point of view, is but a part of the engine. The heart of the engine is the application that you plan to build. GOOG very much believes that the web is the platform, and thus the web browser is the only delivery vehicle for applications. We have a divergent opinion. It seems absolutely crazy to me that a person carries around more computing power in their pocket today (cell phone) than was available a scant 15 years ago in the high end desktop computers, and GOOG believes that those processor cycles should be shunted aside. Our software plus services strategy really is about enabling developers to deliver the right experience to their customers, on the preferred end point device, at the right time from a single piece of infrastructure. We are motivated by our developers building great applications, and Azure is the final leg of the software plus services strategy.