Cloud computing means many things to many people. Business folks see it as a way to save costs and enable strategic objectives. Technology mavens see it as another cool toy to play with. TSS readers see it as an opportunity. As cloud computing trends continue to evolve, more enterprises are beginning to dabble in cloud-based development environments and cloud strategies are becoming more predominant with early adopters.
According to the 2011 TSS Java Trends survey, 34% of respondents are already in the cloud computing game, 17% are planning to invest within 18 months and 19% are considering cloud-based technologies, but with no immediate implementation plans on the horizon. From these numbers, it’s clear that many companies see the cloud as something valuable to the bottom line.
But what is cloud computing exactly?
“People talk a lot about the cloud. It's kind of become the buzz word in the industry. People will talk about one flavor of cloud; they'll talk about another flavor of cloud. The word cloud has become really, really annoying because then some other marketing person has another spin on cloud,” says James Gosling, the father of Java, poking fun of the fact that the term itself seems to have taken on all sorts of different meanings, in different contexts, from different people.
In essence, cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was inspired by the little cloud symbol that's often used to represent the mysterious Internet in flowcharts and diagrams, so it’s not a huge surprise to find the term being used in a somewhat haphazard and confusing manner.
But despite the promises of reduced costs and elastic scalability, there appears to still be plenty of reluctance on the part of IT professionals to fully move mission critical apps to the cloud. “Let’s face it, there are classes of enterprises for whom having their source code in a public cloud is just not an option for various reasons,” says Rod Johnson, the founder of the Spring framework. But there are other enterprises that are actively embracing the cloud. “You’ll see a lot of adoption from small to medium business, and I think you’ll see in larger organizations a gradual adoption at the departmental level,” Johnson says.
Today, organizations often use the cloud for pre-production testing or for providing robust development environments. Hesitation over adopting cloud-based technologies often stems from a lack of confidence in security measures, a lack of tooling around cloud based technologies, and quite simply a lack of skilled and experienced workers who have the competence to develop cloud-based applications.
Some of the hesitation to adopt cloud-based technologies might just be the mentality of the enterprise Java community as a whole. Perhaps the Java community simply has to make a mind shift away from developing applications as though they were all isolated little islands, and think in more of a service-oriented way that is conducive to leveraging cloud-based technology. Johnson explains, “There is a kind of obsession with doing everything in a custom application project specific way in Java. We’ve got to get over that as a cultural force to succeed in cloud computing.”
Perhaps it’s the inability to approach application development in a new way that explains why almost one in four survey respondents said their organization didn’t have a cloud computing strategy whatsoever. When TSS readers were asked if their organization has a formal strategy for cloud computing, 44% said yes, 32% responded that they were planning one now, while 24% said they have no formal strategy whatsoever. Companies are still adjusting to the cloud, figuring out how to best leverage and optimize the purported economy of scale.
Some reluctance to engage in the cloud stems from the fact that many IT shops are simply not willing to accept an entirely off-site infrastructure model. These organizations may be well tuned in terms of in-sourced development and user support, and are not willing to give up on a process that works. But there is no doubt that even these companies will eventually come on side. They may start by dabbing a toe in to the water and exploring a few cloud based services. Simple service offerings are more appealing and can be eased into, rather than tackling the cloud as though it were a science experiment with unpredictable outcomes.
In any case, the groundwork has been laid and enough time has passed that cloud technologies now represent a significant shift in how Web developers must think and how business folks must adapt. The hype is now mainstream and continues along a healthy upward trend. If JavaEE thinks enough of the cloud to include these technologies directly in its specifications, then TSS readers should pay close attention to how cloud technologies evolve.