I remember running our first website in the mid 1990s during college. In addition to dealing with the hassles of not knowing how to architect properly, program properly, launch properly or run a business properly, I remember how complex it was to simply get the infrastructure up, running and scaled. People who ran websites during that time remember how much downtime the average site faced. I remember when AOL would feature our ad on their homepage, it was guaranteed that our site (and therefore revenue) would grind to a halt. Same with Father’s Day (we were selling golf clubs) and Christmas. We started thinking of posting a sign like the ones you see in manufacturing floors about safety:
It’s been 2 days since the last website outage.
We were constantly in a rut of buying more colo space, servers and software and yet nothing made things run smoothly.
Given that experience a decade ago, it is with envy and pleasure that I watch the revolution that is cloud computing. Obviously much has been written about Amazon Web Services and the brand new Google AppEngine. And we know that there is much more to come from the large vendors (including Microsoft) as well as the startup community.
From thought experiments to cloud experiments
The most important thing about cloud computing, in my mind, is that it is reducing the cost of experimentation. Starting is a company or launching a product is all about experimentation. Just like in science, as the cost of experimentation goes down, more experiments can be run and we have to rely less on induction and hypotheses and more on empirical evidence. And as failed focus groups and market research (New Coke anyone?) have shown us over time, in the consumer world there is no better way to understand behavior than to actually experiment. Consumers can’t tell you what they want but they know what they want when they see it. So stop working on the PowerPoint or debating the idea and just build the site!
However, as an entrepreneur spending time in the VC world, I’ve spent a lot of time (with limited progress) thinking about what the disruptive business opportunity is in enabling cloud computing. We know that cloud computing is enabling countless new startup ventures itself but is there is a great startup opportunity around building the infrastructure for cloud computing infrastructure?
This one goes to eleven
To answer this question, it’s useful to get common agreement on what the “stack” for cloud computing looks like. In my mind, it involves the following 11 layers (from bottom to top), with many similarities to the inside of an enterprise data center:
- Facilities (space, power, cooling)
- Network
- Hardware (e.g., servers Amazon EC2 runs or storage Amazon S3 uses)
- Hardware Virtualization (e.g., Xen for Amazon EC2) - optional (Google supposedly doesn’t use any hypervisor-based virtualization)
- O/S (e.g., Linux)
- Systems Management (e.g., tools to manage EC2 instances)
- Application Middleware (e.g., mysql/apache/etc. running on EC2)
- Application Code
- Application APIs / Web Service
- GUI for Application
- GUI for Application Development / Customization
Each “cloud” stack operates at a different level of depth. For example:
- “Old school” colos provide level 1 (facilities) and level 2 (network).
- “Old school” hosting provide level 1, 2 and 3 (hardware).
- Amazon EC2 provides levels 1-3 and level 4 (virtualization) and lets you go from there, so you don’t need to think about specific hardware instances.
- Google AppEngine provides level 1-4 (sans virtualization), level 5 (their OS build) and level 6 (their own middleware - BigTable, focus on Python, etc.).
- SalesForce.com provides a full application (levels 1-8 and 10) as well as an application platform (level 9) for others to build on. In totally different context, Facebook provides a similar application platform, though without the hosting of the application itself (so they provide in some sense level 9 but require you to find levels 1-7 yourself through another host like Joyent).
- Startups like Coghead provide all of that plus a UI for application development without having to even write code (level 11).
RackSpace (which has its own cloud initiative called Mosso) has a nice writeup in a similar vein here.
We can now intuit the Cloud Depth Postulate:
The higher up the stack a cloud platform goes, the lower the barrier to entry for building an application. For example, it’s easier for someone with no programming skills to build an application on Coghead than it is to build one on Force or Facebook. And it’s easier for someone with no programming skills to build on one of those platforms than it is to build one on AWS.
As well as the Cloud Depth Corollary:
The lower down the stack a cloud platform is, the higher the flexibility for any type of application to run on it. In this extreme, a colo is more flexible than shared hosting (because you can run your own VAX/VMS server if you want
), while EC2 is more flexible than AppEngine (because you can use mySQL, simpleDB, flat files or anything else for storing data, for example).
So is there money for startups focused on building cloud infrastructure and tools?
Over time, you would imagine that the lower-level parts of the cloud stack will be owned by the largest infrastructure providers (Amazon, Google, Microsoft, Yahoo!, Microsoft/Yahoo!, telcos, large hosting providers, CDNs, etc.) Similarly, application-level platforms (like Facebook Platform and Force) are a whole separate discussion since they’re less about infrastructure and more about the reach and customer acquisition value of the underlying network in which they live. Finally, the application development/customization UIs like Coghead provide direct business value (e.g., a business person could see why you’d use Coghead) so you could imagine companies created there, though with significant competition from Microsoft and other players in the mashup/app dev space.
The hardest question for me (and the one closest to my heart, based upon my background) is whether there is money to be made in systems management and middleware in the cloud computing space. Companies like heroku, RightScale and others are getting traction here, so it’s worth a look.
I worry about a few issues in this segment of the market:
- In the long-term, I think the core cloud players (e.g., Google with AppEngine or Amazon as it adds more functionality to AWS) will continue to move up the stack and encroach on the systems management and middleware layers. You could say “yeah, but that should have been true in the enterprise, where the systems vendors like HP and IBM should have owned the whole stack, yet you had companies like Oracle, CA, BMC, Symantec, BEA and others make billions in systems management and middleware.” I’d argue that the difference is that in the cloud environment, the cloud provider controls their stack operationally while in the enterprise environment, the likes of HP and IBM often just sell the customer the systems and don’t control them operationally. If you control the operations, it’s much easier and more logical to control the systems management and middleware.
- While a solution like AppEngine does restrict developers significantly (e.g., to not using an RDBMS and to today using Python), I think it also delivers the real promise of cloud computing (auto-scaling) in a more meaningful way than lower-level platforms. As AppEngine adds more languages, it becomes a very compelling option for new applications and new developers. In some ways, the hard problems of scaling applications seem unsolvable in a generic way unless you constrict the environment in some way like AppEngine has. While systems management, adding web servers, configuring load balancers, etc. is a tactical problem, so much of application scalability involves data and database scalability, as per this presentation. Because of this, a restrictive but automated approach like AppEngine becomes attractive.
Clearly, as the big players try to improve their cloud stacks, many startups (like the ones mentioned above) will end up getting acquired for time-to-market (as is happening in the virtualization space), but I’m wondering where the standalone company opportunity truly is.
If I continue my wild speculation, I’ll throw out three conditions (not existing today) that could foster a big enough opportunity for startups in cloud infrastructure:
1. Enterprises adopt the cloud
From my research, it seems that most cloud usage today comes from two categories: (a) consumer Internet applications being launched primarily by startups who want to be able to experiment cheaply and easily and to scale gracefully and (b) scientific and High Performance Computing (HPC) applications that need massive numbers of system resources for relatively brief periods of time.
The unfortunate reality is that it is nearly impossible to build a business in software infrastructure for Internet startups, since the market is small and is often averse to paying for software (because of the predominance of open source). Furthermore, the customer base is so technical that they often don’t even need the premium support provided by commercial open source vendors (e.g., Facebook is supposedly one of mySQL’s biggest customers yet only pays them thousands of dollars per year). HPC is very similar in a way in that university labs and other large grid users are technical-heavy and budget-light.
But enterprise IT departments are used to (and often demand) paying for technology, support, services and having “one throat to choke.” Furthermore, enterprise IT developers are often not nearly as technical as the developers you find in the average Silicon Valley startup or MIT research lab.
So what enterprise applications really need the features of cloud infrastructure? Financial services companies have large grid-like applications that would be a good start. And similar technology is also used heavily by other industries like energy (oil exploration) and biotech (gene mapping). These still fall into the HPC use case of applications that need huge compute power intermittently.
Are there other, more traditional, enterprise applications that can benefit from the cloud? Unfortunately because of the internal nature of many applications, they don’t often deal with the same “flash crowd” scaling problem that Internet applications face.
So I don’t have the answers, but I’m confident that if there are strong enterprise use cases around cloud computing, there are startup opportunities to take the existing clouds and make them enterprise-ready from developer (e.g., Java support), SLA, support, service and other perspectives.
2. Customers start using multiple clouds
Another history lesson from systems management and middleware is that those technologies were much more successful in environments where you had customers managing multiple hardware technologies. In the closed mainframe world, systems management and middlware came from your hardware vendor. As things opened up with Unix and Windows, many new companies were created. Similarly, will applications start using infrastructure from multiple clouds - either by stitching together different resources (e.g., storage from Amazon S3 and compute from Google AppEngine) or even trading off resources (e.g., price arbitraging storage between Amazon and Microsoft).
You would imagine that some standardization on approaches and conventions in the cloud stacks themselves needs to happen before this is truly possible. But this multi-cloud world of the future seems like it would open gaps for new startup innovation to help customers manage and migrate between them. I’d argue that it will take some time before people start using multiple clouds in a meaningful way, however, since they are still getting their arms around Amazon and Google themselves.
3. New service providers enter cloud business
There are more than three cell phone companies in the world. There are more than three cable companies. There are more three Web hosting providers. So I see no reason why there won’t be many cloud providers over time.
In some way, deeper cloud stacks threaten the traditional colo and hosting businesses, so I’d imagine those companies (as RackSpace is doing with Mosso) will have to enter the space. Similarly, large telcos with existing Web hosting businesses will view cloud as a growth opportunity. Now most service providers don’t have the technical talent of a RackSpace, so I see the third business opportunity as creating technology for service providers to offer cloud services themselves, without investing the R&D resources.
Again this will take some time for the xSPs to warm to the idea. In addition, it is notoriously difficult to make money selling technology to service providers, since they frequently want it customized so much and since margins get collapsed by their thin margins over time. Businesses like 3tera and QLayer provide this kind of capability today for service providers. Though I wonder if, in the long term, service providers will want an open source stack backed by a commercial vendor instead of a proprietary stack. I’ve heard rumors of such projects and it will be interesting to watch this space develop.
Conclusion
So my take is that there is money to be made in cloud infrastructure, though it will take several years for real business opportunity to develop, once enterprises start using clouds, multiple clouds become real and new service providers enter the cloud market. That’s not to say that several startups won’t get snapped up for $100 mm for strategic value in the interim. 