|By Janice J. Heiss, March 2009|
This series of interviews spotlights Java Champions, individuals who have received special recognition from Java developers across industry, academia, Java User Groups (JUGs), and the larger community.
Bio: Alan Williamson, named the UK's first Java Champion in 2006, has spent more than 15 unusually productive years as a developer. He graduated with full honors in computer science from the University of Paisley in Scotland in 1994. He was for several years editor in chief of Java Developer's Journal, a major resource for the Java community. In 1998, he created the BlueDragon Java CFML runtime engine that, among other things, powers MySpace.com. He works as a consultant to many startups and more recently cofounded aw2.0 Ltd, a software company specializing in deploying software solutions within cloud networks.
On November 20, 2008, he conducted the first-ever immersive cloud computing daylong boot camp, and in January of 2009, he was named editor of the new Cloud Computing Journal .
Java Sun (JSC): You are the cofounder of aw2.0 Ltd, a software company that specializes in deploying software solutions within cloud networks. On November 20, 2008, you conducted the first-ever immersive cloud computing boot camp for a day. How did it go?
Williamson: What a day! We prepared a whole day's worth of material, complete with hands-on demos and samples, but due to the sheer volume of people and the number of questions asked, we didn't get to half of our content.
People hear all the marketing hype, but they're desperate to know the finer details. Just what does the cloud mean to you, the developer? What does it mean when I spin up an image? How does it look? What can't I do? Those are the kinds of things we tried to answer.
One of the things that surprised many was just how "familiar" it was when it was demonstrated for real. Once we removed all the new fancy buzzwords, people could see what all the fuss was about. We've got another coming up in May '09 in Prague, with updated content, but by and large, it's another day of demystifying the cloud.
JSC: In September 2008, Oracle CEO Larry Ellison said: "The interesting thing about cloud computing is that we've redefined cloud computing to include everything that we already do... The computer industry is the only industry that is more fashion-driven than women's fashion. Maybe I'm an idiot, but I have no idea what anyone is talking about. What is it? It's complete gibberish... When is this idiocy going to stop?"
How do you respond to Ellison?
Williamson: He has a point. The word cloud has done to the industry what the term Web 2.0 did for any web page with a button! For a while, everything was getting the "Web 2.0" moniker. Now it appears anything that is accessible from a browser is getting rebranded as a cloud solution.
In point of fact, cloud computing as a complete end-to-end stack hasn't really offered anything new -- it's merely a collective term for outsourcing all types of resources. We can now look upon all our computing needs, including CPU time, as buy-on-demand resources that historically have not been so readily available.
JSC: In November, you became editor of the new online Cloud Computing Journal . Tell us about the journal and what you are learning about cloud computing from it.
Williamson: This journal focuses on the latest developments within the cloud world -- looking behind the marketing hype to show what's really possible today and keeping an eye on what's in the corner. We're also focusing on real case studies so maybe our readers can see something that they will be able to apply to their infrastructure requirements.
JSC: The founder of the Free Software Foundation and the creator of GNU, Richard Stallman, has attacked cloud computing. He says it's mostly marketing hype, and computer users should keep their information in their own hands. Stallman is concerned about privacy, ownership issues, and loss of control, and he thinks the cloud will lock people into proprietary non-open-source software. He says, "You're putty in the hands of whoever developed that software."
Williamson: I'm never one to miss a marketing opportunity, but I think he has it wrong. The problems of privacy and data have been with us since day one. I recall a Scott McNealy JavaOne keynote many moons ago, where he talked of data and offsite storage in much the same way we put our money into banks. His point was that we are happy to trust the banks with our money, but we have yet to trust the "network," as he called it back then, with our data.
The problem is slightly different, because when we deposit a £10 note, we don't expect the exact same £10 note to be returned to us. But in data terms, we actually do want the same collection of bits to return to us. So a data center has a much higher duty of care to look after our data, and we should be holding them to a much higher accountability than we do our banks.
As to the point about non-open-source software, Stallman is ignoring the fact that the vast majority of cloud services are built upon open source. You can't go too far without bumping into Linux or OpenSolaris at some point.
"People are being sold the idea that the cloud will solve all their problems. It won't -- it merely moves the problem to another domain. Instead of worrying about bare, physical metal, you now have to worry about provisioning and the process of managing a more rapidly changing data center."
What I find fascinating is that no one is forcing anyone to use these services: It's the end consumer's choice as to how much of their personal data they are willing to give up in return for a free service. I think this will change too, and we'll return to a non-advertising-funded model: An honest day's service for an honest day's price -- that's what we'll see.
JSC: In a May 2008 report, Merrill Lynch estimated that 12 percent of the worldwide software market would start using cloud technology in the next five years. Industry analyst Gordon Haff argues that moving software from the desktop and data center onto the network cloud means that source-code availability will become less important and that open-source software will lose out. Do you agree?
Williamson: I disagree completely. I believe the complete opposite will be the case, as people will demand checks and assurances that they can indeed trust their infrastructure to the cloud provider.
The cloud provider has to show more than simply "uptime" statistics -- complete transparency will become the norm. Observe how the likes of Google are open-sourcing more and more of their technology in order to gain not only the trust but the help of the community.
I also believe 2009 will be the year that companies will look at the cloud as a serious alternative as it moves out of the early adopter phase.
JSC: What do you see as the biggest potential danger of cloud computing?
Williamson: Overexpectations and underdelivery. People are being sold the idea that the cloud will solve all their problems. It won't -- it merely moves the problem to another domain. Instead of worrying about bare, physical metal, you now have to worry about provisioning and the process of managing a more rapidly changing data center.
JSC: One of your own portfolio companies, Mediafed, provides RSS traffic analytics to European media companies, including BBC Worldwide, Le Monde, and the Guardian. In July 2008, you explained why Mediafed uses two cloud providers side by side: Amazon and UK-based Flexiscale.
"Developers are hackers. We love to find shortcuts to the system and make things run faster in a way that others haven't yet thought of... But the world of clouds enforces a level of strict adherence to ensure success."
You said, "We've come to realize we cannot rely on putting all our eggs in one basket. We run both at the same time... We appreciate that cloud computing has moved us on, but we've got a whole set of new problems."
Could you elaborate on the new problems and how developers should respond to them?
Williamson: Great question. Developers are hackers. We love to find shortcuts to the system and make things run faster in a way that others haven't yet thought of. As they say, necessity is the mother of invention. Tell someone they can't do something, and they will find a way. But the world of clouds enforces a level of strict adherence to ensure success.
If a developer builds applications in a truly distributed service-oriented manner, then their move to running a pool of on-demand servers will not be as problematic as someone who hard-codes configurations within applications, or assumes a given service will always be available.
In our experience, it's the little things that can really throw your project a curveball. For example, can your application cope with MySQL/JMS/caching servers suddenly dropping out and reappearing on a completely new IP address? These are the things you need to build.
JSC: You have said that in working with cloud infrastructures, you need to "constantly monitor the cloud and your application in it." How do you do that?
"In our experience, it's the little things that can really throw your project a curveball. For example, can your application cope with MySQL/JMS/caching servers suddenly dropping out and reappearing on a completely new IP address?"
Williamson: That's easy. Apart from the database, all our software is exclusively Java, and what better way to keep an eye on your system than JMX -- one of the most underused inbuilt APIs of the JVM.*
There is a whole raft of JMX clients, including the standard JConsole, that you can utilize to help monitor everything. The trick is to make the system dynamic so you aren't always updating the tables of IP addresses showing where all your machines are.
JSC: Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers. Tell us what you think of it.
Williamson: I think EC2 is a wonderful technology. But they are not the only players in the field. Flexiscale, GoGrid, AppNexus, Joyent are other examples that Java developers can look to for deploying their solutions to the cloud.
I wouldn't necessarily say that cloud computing makes it easier for developers. Cloud providers merely remove the need to worry about physical hardware, and instead of waiting days for a new server to be available, it's up and running in minutes. But that's where they stop. You still have to manage the process of loading, distributing, backup, and so on.
JSC: Some developers fear that if cloud offerings are proprietary and vendor-dependent, we could have another computing monopoly in control of the applications and data. One alternative is to have an "open cloud ecosystem" in which users could move their data back and forth between open cloud services.
Williamson: Proprietary systems aren't all evil. Take, for example, the rise and popularity of the iPhone platform. Developers are more than happy to code for one specific vendor and platform with no complaints whatsoever. It really has to do with the services a vendor offers that dictates whether the customer will choose them.
Microsoft's Azure platform and Google's App Engine are two prime examples of proprietary cloud offerings that, once you deploy code to either, you've cut off any portability avenues. For some, this is pure evil, while others don't mind.
So will there be a dominant player that emerges? Too early to say, but all the big players have their vested interests in gathering up as many users as possible. Ultimately, it will be the users that will decide.
JSC: Do you have any closing thoughts about cloud computing? Is there anything that no one is talking about that we should be talking about?
Williamson: I think people have to understand that the ultimate responsibility still lies with them. Just because you've outsourced your resources to the cloud, it's down to you to manage the worst scenarios.
If Amazon, Google, or whoever goes offline, can you still exist and function as a company or organization?
So I believe at the moment, some people are probably putting a little too much faith in the cloud space, which will at some point leave a bitter taste, should something go wrong, that may discourage them from using it further.
Alan Williamson's Blog
Cloud Computing Journal
Better Programming With Java EE: A Conversation With Java Champion Adam Bien
Java Performance Tuning: A Conversation With Java Champion Kirk Pepperdine
More Effective Java With Google's Joshua Bloch
Cloud Computing and Sun
Sun Blogs on Cloud Computing
Monitoring and Managing Java SE 6 Platform Applications