Only IT professionals working under a rock will have missed the monomaniacal obsession the industry has placed on cloud computing of late. But as ever, the amount of hype and debate has not necessarily correlated with adoption.
Uptake of software as a service, whereby whole applications are delivered over the Internet, has certainly been strong. A recent Gartner survey found that 95% of organisations intend to maintain or grow their SaaS usage in the coming year. But the same is not yet true for the other two constituents of the cloud computing spectrum, namely infrastructure as a service (IaaS), whereby raw computing resources such as processing and storage are delivered online, and platform as a service (PaaS), in which hosting providers allow users to build custom applications out of component services located in their data centres.
So far, IaaS adoption has been healthy but not earth shattering. Amazon Web Services, the segment’s market leader by some margin, will generate revenues of around $650 million in 2010 according to a recent estimate by investment bank Citigroup (Amazon does not reveal AWS sales itself). If accurate, this figure places AWS as a strong business but a drop in the ocean of the total IT infrastructure industry. Uptake of PaaS may be even more limited. According to Forrester analyst Stefan Ried, today the combined global PaaS market is worth “well below $1 billion”. However, he also predicts that by 2016, it will be worth over $15 billion.
One reason for the disparity in the adoption of the various flavours of cloud may be their different switching costs. For end-users, SaaS offerings are easy to adopt, as they typically employ user interfaces that are similar in style to consumer websites. But for software developers, the target audience of IaaS and PaaS offerings, working with the cloud can require a different set of skills and know-how, especially for those used to building traditional applications on client- server platforms.
This explains why software development frameworks – toolkits that allow programmers to be more productive by simplifying the development process – may well prove to be pivotal in the coming cloud era.
The rights of spring
In 2002, software developer Rod Johnson decided that building enterprise applications using the Java programming language was too difficult. He therefore constructed a framework, Spring, to make it simpler.
It does this by introducing a layer of abstraction between the functional code, which describes what the application actually does, and technical components that sit underneath it. This allows developers to perform essential but repetitive tasks, such as building in security checks or describing how different systems ‘talk’ to one another, much faster. “What Spring gives you is a way of cleanly separating the business logic that you write from its deployment environment,” explains Johnson.
Johnson made Spring publicly available under an open source licence, and in 2004 set up a company, SpringSource, to sell support and a paid-for enterprise edition. Today, according to Gartner estimates, Spring is used by over two million Java developers.
Most of the enterprise organisations that are using Spring today are attracted by the promise of productivity gains, Johnson says: “If you’ve got 5,000 developers, and you can get a 10% increase in productivity, you’re saving a lot of money.”
But by separating business logic from the deployment environment, these frameworks can also ease the move to new environments – such as the cloud – as they allow developers to transfer across both their legacy code and their development skills. “A framework is the surface area of a platform,” explains Johnson. “I really think that the cloud raises the importance of frameworks.”
This connection was identified by virtualisation software vendor and aspiring cloud-kingmaker VMware, which acquired SpringSource for $450 million in August 2009. VMware’s cloud strategy is to sell the hosting providers and enterprise organisations the software they require to operate their data centres in an elastically scalable fashion, in turn allowing them to charge for IT resources on a utility basis. This strategy recently bore fruit in the form of two important partnership announcements. In each case SpringSource plays a central role.
VMforce, a joint service from VMware and online CRM provider Salesforce.com announced in April 2010, allows developers to build applications on the latter’s PaaS offering using the Java programming language. The inclusion of SpringSource allows users to move legacy Java applications that have been built using Spring onto the Force.com platform.
Shortly after, Google stepped up its bid to attract enterprise application developers to its PaaS offering, the Google App Engine. As well as a new version of the service for businesses, the company announced a “cloud portability” initiative, again based on the SpringSource tool suite, to allow users to move Java applications between the App Engine and their own on-premise systems, or even competitive cloud offerings.
Redressing the balance
This might all sound like futuristic stuff, and in a sense it is: it will be some time before a significant proportion of enterprise applications go into production on PaaS offerings, with or without the aid of VMware’s SpringSource.
However, according to Forrester’s Ried, these aforementioned vendors are not plowing ahead on some untrodden technological path. In fact, he says, they are simply playing catch-up with a company whose cloud strategy is often dismissed as being behind the times: Microsoft.
Page 2 of 2
Microsoft’s .NET framework, introduced at the start of the last decade, performs a similar function to Spring in that it abstracts functional code from the deployment environment. The framework allows programmers to use any of a number of languages, but provides a common library of technical components.
“What we always wanted to do with .NET is to give programmers a common environment that would work in any computing scenario that might develop,” explains Mark Taylor, developer and platform evangelist for the software giant.
So when Microsoft launched its own PaaS offering, Azure, earlier this year, it made sense to make .NET the associated development environment. “When we were putting Azure together, we wanted to make sure that we didn’t require developers to come up with a new approach [to programming],” Taylor explains. “And the thing that most developers who target the Windows operating system are most familiar with is .NET.”
Until recently, the ability to transfer both skills and applications between environments was a unique and considerable advantage for the Microsoft cloud offering, says Ried. “The beauty of the .NET environment is that if you write some basic .NET code you can deploy it on your desktop, in your data centre or on Azure – you can basically execute anywhere,” he explains, although he adds that this is not necessarily true for more complex .NET code.
This advantage, which unchecked could well have skewed the development of the cloud industry, has been balanced out by VMware’s cloud partnerships, as enabled by SpringSource, Reid adds. “With VMware owning SpringSource and doing these partnerships, Spring is becoming a very strong player, both on premise and on cloud, and that’s why I think the balance between Java and .NET is now re-established.”
Locked in the cloud
There are differences between Microsoft’s .NET-powered cloud and the Java cloud of VMware and its partners. An important one is that Spring is open source, unlike .NET. “The fact that Microsoft’s programming model is proprietary, and its deployment model is proprietary, is a bit of a danger for them,” says SpringSource’s Johnson.
This is not just fighting talk; Forrester’s Ried agrees that the perception that one might be locked into the .NET / Azure / Windows stack might deter some development organisations. “What developers hate more than anything else is a lock-in, and until now PaaS offerings have been a double lock-in – you are locked into the programming model and the deployment environment.”
Spring releases developers from that potential lock-in, Ried explains, in two ways. “Spring solves the deployment lock-in because it allows all varieties of deployment – on premise, on desktop and on the cloud. And it solves the programming model lock-in because it is open source; if somebody buys VMware and decides to kill it, the users can just take the Spring code and carry on with it.”
These are not trivial discussions, as they may well inform enterprise organisations’ choice of PaaS provider. According to Ried, while most individual developers will focus exclusively on Java and .NET, most large development organisations will employ capabilities in both. They are therefore presented with a choice as they make greater use of the cloud.
Ried adds that the technologies that rise to prominence in these early days of the cloud may have a powerful influence on the future of computing. The efforts of a number of industry bodies have so far failed to produce a set of open, common standards for the interoperability of cloud systems, he explains, despite considerable demand.
“People are just using what the large vendors do, such as Amazon’s application programming interfaces (APIs), as de facto standards, “ he says. “Maybe the combination of a VMware virtual machine and Spring will become the standard Java container for the cloud.”