Pacific Connection(英語)

Cloud Computing Vendors Reaching Out to Developers

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/Oracle) and Google Apps, which marginally competes against Microsoft Office with its online word processor, spreadsheet, and calendar. Both companies have followed with server-side application development platforms:’s and the Google App Engine. Meanwhile, Amazon has been building cloud computing resources atop its S3 remote storage services that seem to be an outgrowth of its web services.

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:, Google, Amazon

Some of the best known cloud computing environments now available to ordinary developers have been built by, Google and Amazon., which proved to the industry that software as a service was more than a fad, has introduced programmer tools over the past few years that it collectively calls the platform?hence ⁠platform-as-a-service⁠⁠ or ⁠PaaS⁠. The company’s Apex code has a Java-like syntax and gives developers a way to specify business logic via triggers. Visualforce allows developers to redesign the default look and feel of the screens as well as create interfaces for mobile devices. The IDE is based on Eclipse. As has grown, it has changed how is seen?and how the company sees itself: not just an online CRM company but an IT infrastructure company?providing online parallel universe to the client/server model. In effect, is saying: ⁠We take care of the maintenance headaches, freeing you to write creative applications.⁠

If’s roots are in SaaS, Amazon’s are in Web services based on its e-commerce site. One of those services, Simple Storage Service, or S3, was launched in March 2006, charging largely on a per gigabyte basis. There have been some glitches. Earlier this year, the service suffered from a two-hour outage in February and an eight-hour outage in July. While comparatively short, these incidents tugged at one of the biggest prevailing fears about cloud computing: what if I can’t get to my data and have nobody in-house to blame? Amazon has added a database querying scheme called SimpleDB, a queuing service for managing work flow between applications, and Elastic Computing Cloud (Amazon EC2), which provides administrative controls for the above, including the ability to increase and decrease storage capacity as needed. Because code is run as EC2 instances, an application can control resource provisioning by determining how many instances need to be launched.

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 and Amazon, the Google App Engine is younger and more limited. Google offers a preview release with 500MB of persistent storage ⁠and enough CPU and bandwidth for about 5 million page views a month.⁠⁠ Google’s calls its application a ⁠sandbox,⁠⁠ and it is comparable to what calls a multi-tenant environment: applications are isolated from each other, as well as from the server’s hardware configuration, location and operating system. Data is stored via a distributed data storage service that uses a set of property classes as the basis for queries.

Whereas went with a Java-like language with Apex code, Google’s environment uses Python, including the Python standard library, with some restrictions to enforce sandbox security. There are Python APIs for the datastore, Google Accounts?for authenticating users, URL fetch?for retrieving data from other hosts using HTTP requests. Developers can make calls to send email, implement a memory cache and manipulating images. As an option, Google provides a Web application framework called webapp, which can handle some of the details of the app’s graphical user interface. The Django web application framework is also supported with some restrictions. Google also offers a decidedly non-cloud computing development tool: a local development environment residing on the client that simulates Google App Engine.

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. offers a free one-seat developer edition account, full featured with no expiration date.

“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’s Adam Gross. Whether you are a developer or an enterprise customer evaluating a CRM solution, the ability to actually get your hands on the real thing before you buy it was a revolution. It used to be that you would get some grand promises from the software vendor. Then you cut the check, and if you were really lucky, a year later you might see something you could get your hands on. Today, you begin by putting your hands on the technology first, before you commit to anything. That model has completely changed how a lot of enterprise applications are sold?and how they are developed.⁠

The State of Cloud Computing: A Conversation Adam Gross, vice president of developer marketing,
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 would call its development platform. These days, 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 is really high. The Japanese ISVs who presented were also impressive, demonstrating really sophisticated applications that used the full strength of 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 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 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,’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 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 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 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, 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 That said, we’ve still got a lot of very interesting work ahead of us.
What’s the story with’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 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 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 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, 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.