IBM and Google might seem like polar opposites in the world of technology, yet the companies have a budding partnership over cloud computing that seeks to combine the best features of business computing with the Internet. Steve Mills, the senior vice president and group executive for IBM's software business since July 2000, explained the goals of the IBM-Google relationship to Network World Senior Writer Jon Brodkin in an interview this week at IBM's New York City offices. Mills also discussed new opportunities in China, software-as-a-service's impact on the IT market, and the pros and cons of IBM's diversified software portfolio.
IBM teamed up with Google last October for a cloud computing initiative that, in IBM's words, will promote open standards and new software methods "that will drive the growth of the next generation of the Internet." What exactly are you attempting to achieve?
Let's try to put a little definition around some of this. Broadly defined, this Internet cloud we connect to has a certain set of attributes related to the way in which applications get scattered across it and the way we access them. Google certainly is one of those companies that people identify within the context of the Internet. They deliver a largely stateless environment to people. The question is whether this highly dynamic type of deployment environment can be made richer, more manageable, and [whether] more significant application capability can be dynamically scheduled. Besides having to maintain the state of someone's transaction or activity, you have to persist their data. And finally, you [have to] flexibly schedule those resources to get some of the attributes of this highly dynamic Google-like environment and still ensure you're running things the way you want to run it, which is typical of the corporate data center environment.
So how will you achieve this merger of Internet and corporate computing capabilities?
Obviously you've got to catalogue your configurations with greater care. You have to have a comprehensive picture of your resources so you think about how much storage is required, how much network connection is required, how much compute is required. You have to think about these characteristics of what you're deploying the application to with greater specificity because the application doesn't really lend itself to being broken up and spread. It needs to have a place to go, and if it's going to perform, its data has to be close to it. That's what you deal with in the enterprise world.
Google doesn't worry about that as much. They cache things to speed up performance, but nothing is very permanent.
In the enterprise computing environment you have to make sure you're maintaining the integrity of the data. You therefore have to have a very finite set of scheduling rules, you have to know exactly which resources you're allocating to that application, you have to maintain application integrity. At the same time I want to be able to use the resources to the fullest advantage, which means I'd like to schedule applications on an as-needed basis and push them to the background when they're not being utilized to the same degree -- somewhat analogous to the Google model where this is the hot topic that's hitting the Web but then it dissipates.
Everyone wants to know about Britney Spears last week, but only half the number of people care about her this week. Or people have totally forgotten about Britney Spears, in which case you no longer have to cache any data about her.
In the corporate processing world that's not the case. [My applications] run for years and years, but I have rising and falling capacity needs and requirements. Can I dynamically schedule all of this, if you will, into the processing cloud? Can I maximize the value of the physical assets and resources to a greater degree by capturing some of the dynamic characteristics one would see in a Google environment and yet have the integrity characteristics and certainty characteristics of the typical corporate data center?
That is the concept: How do you apply cloud attributes to corporate computing.