You can tell that a technology area is hot when its definitions start to proliferate. That’s what has happened to cloud computing, which has been equated with software-as-a-service, platform-as-a-service, web services, remote storage and distributed computing, among other things. But behind the nuances, there is a growing consensus: cloud computing is about computing resources for application development and deployment that are maintained third parties and accessible via the Internet.
In that sense, cloud computing represents something of a return to the beginning of the Internet itself, whose purpose was to put the computational resources in the hands of remote researchers. Back then, you might have been typing on a lowly dumb terminal, but at the far end, a supercomputer was crunching your numbers. Remote CPU cycles remain an essential part of cloud computing, and have been joined by server-side programming languages and queryable datasets that are maintained by some third-party?not your IT department or you.
The first products of cloud computing were the server-side applications that competed with their client-side counterparts. These include the Salesforce customer relations management (CRM) system (which competes against SAP and Siebel/
Some cloud computing projects are being aimed at enterprise-size development and academic research. These include IBM’s cloud computing center, the ninth of which will be located in Tokyo. Yahoo, Hewlett-Packard and Intel are planning cloud computing test beds in the United States, Germany, and Singapore. Not every large company has rushed in. So far, Microsoft has only dabbled with cloud computing: its Windows Live suite offers photo sharing, a blog writing tool, event planning and 5 GB of personal storage?but no development environment nor even an online version of Microsoft Office.
In the clouds: salesforce.com, Google, Amazon
Some of the best known cloud computing environments now available to ordinary developers have been built by salesforce.
If salesforce.
In a white paper, Amazon technology evangelist Jinesh Varia writes about how Alexa Web Search, which archives the Web, combines these services in a work-in-progress application called “GrepTheWeb” (from the Unix command for selectively displaying data), which allows developers to create customized searches of Alexa’s massive database. Varia describes how the services contribute to four phases of the application’s operation: launch, monitor, shutdown and cleanup. Some of the fanciest footwork is done using Hadoop, an open source framework that splits a large dataset into manageable chunks that are distributed to different machines for processing. Hadoop manages the process and combines the results. “Hadoop suits well the GrepTheWeb application,” Varia writes. “As each grep task can be run in parallel independently of other grep tasks,” Hadoop’s parallel processing “is a perfect fit.”
Compared with the cloud computing environments of salesforce.
Whereas salesforce.
For developers, the cost of entry into cloud computing?or at least experimentation?is often free. Google doesn’t charge for its preview offering, although it is promising more resources for a fee in the near future. Salesforce.
“The ability to have a free trial experience with an enterprise software application was a radical idea when we introduced it 10 years ago,” said salesforce.
- The State of Cloud Computing: A Conversation Adam Gross, vice president of developer marketing, salesforce.
com - When I first interviewed Adam Gross for Software Design in late 2006, the company was just beginning to talk about Apex code, its Java-like programming language. Apex would become a key building block in what salesforce.
com would call its Force. com development platform. These days, salesforce. com is paying a lot of attention to developers, including putting them onstage at its developer-oriented road show, Tour de Force, which recently traveled from the company’s home in San Francisco to Dublin and Tokyo. I spoke with Gross a few weeks after his return from Japan. - What were your impressions of cloud computing in Japan?
- Over a thousand people attended Tour de Force Tokyo, putting it second only to San Francisco. That’s impressive given that this was our first developer conference ever in the region. So it seems apparent that the Japanese developer interest in both cloud computing and Force.
com is really high. The Japanese ISVs who presented were also impressive, demonstrating really sophisticated applications that used the full strength of Force. com. I remember one application that did real estate tracking. The person on stage took a picture from her cell phone and wirelessly added it to a Salesforce record. That’s about as sophisticated as it gets in the Force. com universe. My overall impression was that people in Japan have a real awareness not just of us, but of what Google, Amazon and others are doing in the cloud computing space. - Did you see the same ratio of entrepreneurs to corporate IT developers as you do in the U.
S.? - It was hard to tell, but it is pretty hard to compete with Silicon Valley in terms of ISVs [independent software vendors]. On the other hand, there were probably more consultancies and systems integrators, which are a central part of the Japanese IT market.
- Overall, where do you see the most significant cloud computing development work taking place?
- Some of the most impressive work is actually happening at the largest companies. Our single largest customer in terms of seat count is Japan Post, with over 65,000 seats on the Force.
com platform?and that doesn’t count the CRM application, itself. Much of what you read about cloud computing centers around startups, but some of these large enterprises are doing ground breaking work. - You’
d think that larger companies would be the least likely to move to cloud computing, as they already have the IT infrastructure in place. - That’s partly true. But large companies are so busy keeping their supply chain systems running that they are delighted to be able to offload other projects to the new architectures.
- The term “cloud computing” is cloudy?I’
ve seen several definitions. How do you define it? - Like any new architecture or technology, the definitions are confusing and at times get a little stretched, especially when an area heats up. Some people define cloud computing in terms applications?that is, software delivered as a service. Others equate cloud computing with distributed computing. I think the definitions will converge around what we call “platform as a service,” which is the ability to write applications while maintaining data and executing code in the cloud itself. I’d be hard pressed to define any service as cloud computing that doesn’t both persist data and execute code. That’s common to what we’re doing, what Amazon is doing, and what Google is doing.
- Where do Web services fit in?
- Web services technologies like SOAP and REST are foundational to cloud computing, but other technologies are in the mix, as well. So I’d say that Web services are necessary but not sufficient for cloud computing.
- Are the clouds going to merge? To what extent will developers on one platform be able to tap into the resources of others?
- My theory is that the more features a cloud computing environment provides, the more domain-specific it becomes. For example, Force.
com’s domain is in database-centric enterprise applications, which of course is a huge part of corporate IT and a subset of the broader computing industry. Whereas Google App Engine, at least today, is oriented around websites, particularly social websites. That’s not say that both of our clouds won’t evolve, but for now, they operate in different, complementary domains. I don’t see a model where there is one cloud computing offering, one cloud computing company or, for that matter, one development model that multiple companies all converge on. It won’t be like Java app servers, which operate exactly in the same way. Instead, I think you’re going to see a natural, robust diversity. - Cloud computing is slowly beginning to resemble the client/
server space. There are probably a thousand significant companies that provide databases, tools, monitoring, QA, bug tracking, development processes, and other technologies all related to that sphere. We should expect an equally diverse set of companies in the cloud space, and we will want to see integration between those different services for application development. An early example of this is the Salesforce for Google Apps, which allows Google mail, calendar chat and document applications to run seamlessly within Salesforce. - Where does Amazon fit in?
- We already have folks integrating Force.
com with S3, and frankly, we see S3 development more than we see EC2. That’s probably because it has been around longer and it a simpler service. But it’s reasonable to assume there is somebody out there connecting Force. com to EC2, even if that isn’t something that we actively evangelize the way we have with Google. - How do these alliances come about? Are they simply business alliances or is technical integration required?
- It’s both. If you look at our strategic partnership with Google, there are some business aspects like the way we sell and support Google apps for our customers. But there are also technical elements we’ve done together. The reality is that you could have connected the clouds yourself without us having done the work. That is, you can take advantage of the same open integration features of our respective platforms. In creating these toolkits, we are plowing the road ahead and making it easier for people to follow. But it’s not like we are creating a vast new infrastructure.
- Is the Force.
com platform largely complete? - It will never be complete, in the same way that the iPhone will never be complete. But with Apex and Visualforce now part of Force.
com, we’ve hit an important inflection point: anything you can do in a Java or .NET server environment can now be done as a service in Force. com. That said, we’ve still got a lot of very interesting work ahead of us. - What’
s the story with Force. com’ s Eclipse integration? - It has always been technically possible to use Eclipse with the platform. But the key was in making it easy to do. One of the things we’ve learned is that the easier you make something, the more you open up the platform to new classes of developers. Another example of this is the work we’ve done with Adobe to bring Force.
com to Web developers. Each time we invest in these kinds of tools and relationships, we find it hugely rewarding in terms of developer adoption. - Do the young developers you see applying for jobs have a better understanding of cloud computing than their predecessors?
- I’d say they have a broader awareness of Internet-centric platforms, in general. A typical computer science student may have a better understanding of cloud computing by virtue of using Facebook and iTunes than many corporate IT development managers. Think about what it means to explain a Facebook application to somebody who hasn’t experienced it: there are similar kinds of technical patterns in using the Force.
com platform. I was at a meeting yesterday explaining some of this to senior executives. They figured it out, but it took a while. Whereas for someone who has used Facebook and perhaps developed a Facebook app, the concepts will be picked up immediately. Another example is the mash-up, an idea that was born on the consumer Web, but is still in the early stages within enterprise IT. - Finally, I want to ask you about cloud computing infrastructure. There has been some good news?IBM is opening a cloud computing center in Tokyo and HP Labs, Intel Research and Yahoo! have announced multi-location cloud computing test beds. And some bad news?an eight-hour outage of Amazon S3. What’
s your take? - To start with the latter, clearly it’s up to the vendors to provide trusted environments for cloud computing, and it’s unfortunate that there have been some hiccups along that path. But I have full confidence that these problems are being quickly addressed. It’s the same pattern we’ve seen in the Internet itself. History is on the side of the technology being able to meet the most stringent reliability, availability and scalability requirements.
- What’
s the significance of the Intel-HP-Yahoo! project? - What’s particularly interesting to me is that Yahoo! is bringing its work in Hadoop, a distributed computing framework written in Java. Hadoop is a good example of the software architectures now being built around cloud computing, which are at least as important as the hardware infrastructure. Google has developed BigTable and GFS [Google File System], we have developed our Force.
com Database Services, and the open source community has put together Hadoop. - More broadly, the project represents how the next generation of developers might be trained. This is a cloud-centric, massively distributed development model that will be accessible early in the academic cycle. Only a few years ago, unless you were working at salesforce.
com, Amazon, Google, or a handful of other companies, your ability to get your hands on this kind of environment was limited. Now, that’s changing, which is great news for a company like us.