I get a lot of questions about the best way for developers to move to the cloud. That’s a good thing, because trying to forklift your existing applications as is isn’t a recipe for success. Building elastic applications requires a focus on statelessness, atomicity, idempotence, and parallelism — qualities that are not often built into traditional “scale-up” applications. But I also get questions that I think are a bit beside the point, like “Which is better: infrastructure-as-a-service (IaaS) or platform-as-a-service (PaaS)?” My answer: "It depends on what you’re trying to accomplish, your teams’ skills, and how you like to consume software from ISVs.” That first question is often followed up by a second: “Who’s the leader in the public cloud space?” It’s like asking, “Who's the leading car maker?” There’s a volume answer and there’s a performance answer. It’s one answer if you like pickups, and it’s a different answer if you want an EV. You have to look at your individual needs and match the capabilities of the car and its “ilities” to those needs. That’s how I think we’re starting to see developer adoption of cloud services evolve, based around the capabilities of individual services — not the *aaS taxonomy that we pundits and vendors apply to what’s out there. This approach to service-based adoption is reflected in data from our Forrsights Developer Survey, Q1 2013, so I've chosen publish some of it today to illustrate the adoption differences we see from service to service.
First, a bit about the data below. We asked all developers in our survey about the types of application development technologies they’ve worked with in the past 24 months. Of the 1,611 North American and European developers we surveyed, 325 (just over 20%) indicated that they had worked with cloud computing or elastic applications. We then asked those developers a variety of questions about how they are using cloud/elastic technologies. It’s probably not a surprise that the three most common types of cloud services developers have adopted to this point are compute, storage, and relational data services (see Figure 1). Compute and storage are both regularly employed by 47% of the survey respondents, and RDBMs services are used by 36% of survey respondents. Other cloud-based services like development tools, messaging, caching, and No SQL DBMS trail these big three by a significant margin.
Figure 1: Compute, Storage, and RDBMS Are Frequently Employed By Cloud Developers
So what happens when we look at how leading public cloud providers fare among developers that employ each of these three types of services? Each adoption profile tells a slightly different story (see Figure 2):
- Amazon shows a lead with developers using cloud compute. 62% of developers surveyed that are using cloud compute resources have either implemented Amazon EC2 or plan to expand their use of it over the next 12 months. There’s more than a 20-point gap between AWS and Microsoft Azure (39% implemented or expanding) or the Google Cloud Platform (29% implemented or expanding). This gap in adoption is well outside of the standard margin of error, so we have to give the nod to AWS when it comes to compute.
- Microsoft and Amazon are neck and neck among users of cloud RDBMS. Things are very different when it comes to developers using cloud-based RDBMS services. While it’s easy to look at developer adoption data and conclude that Microsoft Azure SQL Database has an edge over Amazon RDS (48% implemented and expanding versus 45%), those numbers are within our margin of error. Also note that a lot of developers are planning to implement Amazon’s RDS service (27%), while 7% of Microsoft SQL Azure developers plan to decrease or remove their RDBMS workloads. Overall, we’d have to rate this workload as a push, with no clear adoption leader.
- Microsoft and Google are making inroads in storage. When it comes to developers using cloud storage, there’s almost no difference in how developers plan to expand their use of AWS, Microsoft Azure, or Google Cloud Storage over the next 12 months (25% vs. 22% vs. 23%). Amazon still has a larger body of developers that have implemented but are not expanding AWS S3 (17% compared to 10% for Microsoft Azure and 9% for Google respectively). Our take: This workload looks like it’s headed for a strongly competitive market in 2014.
Figure 2: Amazon Tops Developer Intentions Among Compute Users
Looking at each of these three important cloud services shows different competitive forces at play within each service type, and that’s key to understanding how the cloud market is evolving. We’re moving away from distinct leaders in a single market segment, like IaaS or PaaS, and toward a model that mirrors a traditional buying pattern, where app development professionals choose between best of breed services (e.g., compute, storage, RDBMS, messaging, CRM) or integrated data-centers of services (AWS, Microsoft Azure, Google Cloud Platform, Salesforce/Heroku/Database.