Bio Jerry Cuomo is an IBM Fellow and the Chief Technology Officer of the WebSphere Division in IBM Software Group. He is one of the founding fathers of IBM WebSphere Software. Jerry has spent 20 years at IBM working in the areas of TCP/IP, real-time collaboration software, and high-performance transactional systems.
Absolutely. I am Jerry Cuomo, I am the CTO for the WebSphere brand of products, and what have I been up to lately? Lots of things. I think one of the more exciting things to talk about is the work we have been doing around Virtualization and Cloud Computing. So, I would love to talk to you about that.
Well, Virtualization is a great technique and any time an engineer is in trouble they kind of create an abstraction layer and I think Virtualization and the way we have been using it is an abstraction layer. I mean, we have virtual memory, we have in Java terms, our virtual machine that allows us to write once and run anywhere. Virtualization technologies are continuing to mature, to move into interesting places. So now we can virtualize our machine and our operating system. So basically virtualization allows customers by virtualizing to start to do more with less. So being able to share, share resources, to be able to abstract, use a single set for example of hardware, and do multiple things with it by virtualizing, and this is where the power starts to come and starts to connect to other interesting things.
Well a number of things. I think we are seeing from an economics perspective, the cost of energy, the cost to get floor-space, all of these things are driving customers to want to share more of the resources they have in their data center. So creating shared resource pools. I don’t think there is one customer out there who is not trying to create a shared resource pool these days. That’s just driving one of the techniques, to share, as I said earlier, is to virtualize. Virtualize those resources so they can do more with them.
Cloud computing - this term is new, but we have been seeing what is behind it for quite some number of years right now. So we have known it as Utility Computing, Grid Computing, Data Center Optimization, so we have known it under many terms but looking at it these things are starting to jell, coming together around some standards. We see it happening within the Internet on a large scale, we also see it happening in data centers as well around our enterprise customers.
IBM across the board is doing a number of things and as I said before to IBM this is nothing new, we have been doing Utility Computing, Data Center Optimization for quite some time, starting from our hardware level, many of our products, you have heard some announcements recently around our power systems, power VM, our blade centers, again really being built around the thought of being able to virtualize resource. Of course our main frames, our z systems, have been classically doing this for quite some time, again allowing you to do more with less, share resources, virtualize systems, so we have been doing this for a number of years around our hardware platforms, looking at for example our software platforms, Tivoli has been doing things recently around managing and optimizing the data center, management tools, provisioning tools, to help you build clouds, and certainly in WebSphere something that is near and dear to me, we have been doing things that we have been calling WebSphere Virtual Enterprise, which is allowing you to again better virtualize your middleware and application stack.
Sure, in fact I have been actually thinking about Virtualization as a progression of thought. I think there are some foundational thoughts around Virtualization when you think about virtualizing hardware, getting actually to virtualizing the operating system and you have seen technologies like from Xen, VMWare even our own Power VM creating Hypervisors or logical partitions LPAR's I think beyond that where it starts to get interesting is to utilize that technology, to start virtualizing your server and middleware infrastructure. So I have been talking internally about things that I call "Atomic Virtualization" and "Molecular Virtualization". These are techniques for virtualizing servers, so atomic virtualization is about virtualizing a single server.
So it is about freeze drying that server, freeze drying the configuration and information that is used to pre-install and configure that server so that it can be hot deployed. That’s interesting but that’s a starting point. Where it really starts to get cool is when you can create collections of these things, so that’s what I call molecular virtualization. This actually allows you to freeze dry actual server topology, so a group of servers. So you have your servers as your atoms and the bonds and links between those atoms, are your configurations, your best practices, that create actually a collection of your virtual servers, again, a virtual molecule. Now, again we build up on this by deploying that molecule to a virtual cluster and this becomes the first entry into clouds. Right now I take my virtual cluster and I deploy it, not to server A B and C, but to a cloud. And the cloud actually determines what physical resources that virtual molecule or server topology gets married to. So this is kind of a start of a framework, again a progression of virtualization starting at a server, getting to your atoms your virtual servers, to your virtual server collections, your molecules, to your virtual clusters, your cloud.
7. The capability to freeze dry even an atomic server, even a molecule of servers, sounds very compelling, especially when you can reuse that same instance across development and production. Do you see that as the future, is there any reason not to use at least atomic virtualization in the next five years for example?
I absolutely see it as the future, in fact, our WebSphere version 7 we are going to ship among other options as a virtual atom or a virtual appliance. Certainly to start, developers will find it as very productive to use, developers, testers, even doing some basic quality assurance around performance. The notion of freeze drying is very powerful, we can freeze dry a server but certainly we need to provide tools and mechanisms for our customers and users to be able to further re-hydrate and then freeze again. Because again, you have to put your configuration in, your database drivers, your actual application code, be able to tune and harden that atom, and then further freeze dry it so that you can deploy it. So again I actually think it is the future, the future is here, I mean our up-coming release of Web Sphere will be able to support this, but I think really where it gets interesting is where these servers, I like to sometimes call them virtual appliances, get deployed and dispensed out into a cluster or a cloud. It’s the action of dispensing and managing them, that starts to become very interesting.
Sure, at some level rainmaking is a play on words. A rainmaker if you go to dictionary.com and look it up, a rainmaker is a person, perhaps an American Indian that performs rituals to create rain, to see clouds. I think there is also a slang on the notion of a rainmaker which is a person an executive that is skillful and bringing in profits, increasing profits. So, again I took the term and twisted it a little bit, and my term rainmaking is technology that allows you, maybe a medicine man in your data center, to create enterprise clouds, and hopefully increase profits. So we have lots of things going on, IBM provides rainmaking technology to enable enterprises to build clouds in their data center.
We have actually a pretty broad vision for cloud computing. Certainly you've heard us talk about things like blue cloud and even blue house, these are focused pretty much on the Internet at large, providing technology that help you build the cloud again using the Internet at large, tens if not hundreds of thousands of servers at your disposal. We also have very much focus as you can imagine in IBM at helping you create, become a rainmaker, to create clouds inside your enterprise, behind your firewall, technology to help you mix up virtual images, dispense those images out into your cloud, manage, meter, monitor, update, version those images. Certainly we look at cloud computing as a spectrum going from large Internet to corporate Intranet. We actually think there is huge opportunity maybe even some low hanging fruit based on the things we worked on in the past, to get things cooking in the enterprise and bring rainmaking technology to our enterprise customers to help them build clouds inside their data centers.
Well I think Software As A Service fits in pretty well. First of all I just got to say the term software as a service is a little shaky, because it is not software that is actually the service, is kind of function as a service or platform as a service, so I would like to refer to it more like a pass or platform as a service. But I think it has similar meaning. I absolutely think it fits in. I talk about this progression of virtualization kind of thinking about machine virtualization, server virtualization; I talked about atoms and molecules.
There is an actual progression when you start to look at the platform itself. So virtualizing the platform. So instead of going up to your cloud and saying: "Cloud, I need a machine to run this type of workload, I need this much CPU and I need this much memory", what you do when you talk to your cloud as a platform as a service you say "Cloud, I need some support to run my commerce application, I want to install a catalog of products". So you are not asking for servers, you are actually asking for it to do a job for you. Or "Hey I have this business process that I want you to execute.
You go figure it out cloud, how many servers I need, whether it needs to be a Linux based server or not". So, take my application, here it is, here is how I want it to run, I may give you some operational policies, like response time goals, throughput goals, I may give you some business priorities, this application is more important than that application from a business prospective, I may give you some health policies, but I want the platform to manage it. I don't want to go in there and manage all these specific details. So thinking about software as a service or platform as a service, in this progression of virtualization I think it's the way to go. In fact if I was to deploy a software as a service or platform as a service, I would actually do it within a cloud infrastructure.
Yes, sure I would love to tell you. So, first of all I would like to call Web Sphere Virtual Enterprise or Web Sphere VE as a shape shifter. So what it helps you do is once you have installed your WebSphere application into your cloud, into your shared resource pool, it helps you find the right balance and right mix. It will actually shift the running set of applications, for example if your inventory application is hot because it's inventory season, and your Accounts Receivable application isn't hot during this particular time, will increase the number of running instances of inventory applications to meet that demand.
So it will change the shape of your Web Sphere cloud, to favor the inventory application in this case. And it does it all based on policy, based on service level agreements, operational, health, business oriented policies. And it will actually shift the shape of the running application. It will also based on these policies shape the inbound workload. So as work is coming in it will classify the work for the destined application and it will decide based on your SLA's maybe to favor one application request over another. So it will slow some down and speed others up. So that is why I call it a shape shifter. It also helps you again manage applications as a virtual collection. So one of the things we have done with Web Sphere VE is go beyond traditional JEE applications.
Of course it supports Web Sphere classic applications, JEE applications but it also supports simple web applications, Tomcat based applications, Web Sphere Community Edition, it supports the new Web Sphere sMash environment for dynamic scripting applications, we also support JBoss. So it allows you to create a shared application cloud or shared resource pool for applications almost regardless of the application container. It virtualizes the vocabulary, and the management infrastructure around those applications, so start, stop, deploy, monitor become shared vocabulary across these various application types. Again, thereby creating a web sphere cloud.
As I said we support multiple application container types and we pretty much let those containers manage themselves, so you would typically interact with them in EAR files, or WAR files to Tomcat, EAR files to Web Sphere application server. But what you do is one extra thing and that is you describe what I call your operational policy. Along with this you also provide a secondary piece of information which is kind of like your SLA your contract. This is what helps us manage that particular asset within a web sphere cloud. We know basically how to interact with it and we have management agents that run in conjunction with these, to interpret that SLA that additional policy to go along with your EAR file or your WAR file. So by deploying that into your web sphere cloud, we can now manage them as a virtual unit. Again it doesn't matter anymore that this application is a Tomcat application or this one is a sMash application, or this one is a Web Sphere JEE application, they are all applications that are running in the web sphere cloud. So the verbs and actions around starting, stopping, deploying code, are all made common they are all virtualized within that application management system.
13. How much control does development team have over the metrics that are used in the policy? So for example can you say do not serve more requests to this instance if more than ten Person objects are in memory?
Well there are several control points you have. We break it up along the lines of operational policy, business policy, health policy so you can do things like after serving so many requests, ten thousand requests, recycle the server. Only if it's Windows. You can do things like application versioning, and you can state application versioning policies like "Run application version N, and then start to migrate work to version N plus one at this rate and pace. So twenty percent new users, every certain time period. So you can start ramping up the use of a new application in your cluster while you wean users off of the old version. So you can set these policies in place to describe usage metrics, how applications are interacted with, what's the rate and pace, and what's the overall operational use. Again, the way you do your controls are through these SLAs.
Today Virtual Enterprise is a pure software solution around I mentioned, our rainmaking technology I think there is a value for doing appliance versions of our management control systems. You have seen probably some of the success we have had with our data power product, our web sphere data power product. We are looking to taking lessons learned from creating purposed appliances, and looking at taking some of our rainmaking technology and put them into appliance form factors and using them to manage a shared resource pool. So think about taking web sphere virtual enterprise function, dropping it into your data center maybe there's a one or two U box, racking it, stacking it, deploying your applications to is almost using it like a virtual appliance dispenser. So we certainly have ideas of using our technology and evolving it from its current general purpose form factor as in software, to more purposed form factors like appliances.
Actually I think we have learned many lessons over the last few years and in fact IBM is business machines, in the term IBM it's almost appliances. What's a business machine? In fact if you look back on the IBM website you can see some of the original appliances that we did back in the thirties, like an Accounting appliance, Bookkeeping appliance. We know about appliances, and we have reacquainted ourselves recently especially around our middleware line. What's driving appliances I think is complexity, managing complexity, what we do in data centers, today around Service Oriented Architecture, these are non trivial things. I mean integrating systems is typically non trivial.
But there are certain patterns that we can latch onto. And what we have learned with data power is how to build purposed devices, that constrain the problem, you have heard of the 80/20 rule, so we try to after experience go back and look at "Hey what would make eighty percent of the audience happy?" and burning that in to firmware. And of course we have software we have hardware within IBM, and we have expertise through services, so we are the perfect company to be able to deliver these kind of form factors. I think another interesting thing to transpire is this notion of virtual appliance. Although to some extent I think it's an oxymoron to calling it a virtual appliance.
I think there is a lot of merit in this thought. I think at some level there is a progression of appliances. Certainly a set of CD's isn't an appliance. At some level you have something that looks like a toaster or a data power appliance which is a physical appliance, there are probably degrees in between. And I think for example something that would further harden or constrain a middleware platform could be looked at as a virtual appliance. We have been doing experiments for example with a company down the road here in RTP called RPath creating web sphere virtual appliances. In fact we will be putting some of those up on our websites and their websites for you to go off and try. So, these are basic web sphere appliances in fact we have a version that uses our web sphere sMash, dynamic scripting environment, where you can download this fairly small binary appliance, deploy it either to your VMWare system or you can deploy it right on to Amazon EC2 and within minutes be up and running building your web sphere sMash applications. So it's almost a way to give developers instant gratification of your programming model, your API sets. So we actually think there is a lot happening across the spectrum of appliances, from virtual appliances to physical appliances, all focused on this notion of improved time to value.
Absolutely. I think this is a pretty compelling way to do it. In our next release of web sphere version 7 we will have a virtual appliance option for you to order web sphere. So absolutely this is becoming a way of doing business. Hardening the environment right down to embedding the operating system as an embedded system. When you use your router at home it probably has a built-in operating system, it probably has some built-in storage, it probably has some middleware in there. But you don't know, you just use it for the function. So you see that as a reasonable model going forward. So web sphere version 7 in fact you can start looking at the beta that we have of our web sphere version 7 virtual appliance. It's out on the web and I will get you that address later. We also think it is interesting once we have these virtual appliances to create dispensers, things that allow you to take the virtual appliance, deploy it, manage it, meter it, monitor it, and again this is where some our web sphere virtual enterprise technologies are going to come into play to act as the dispenser of these virtual appliances, pretty cool.
17. Speaking of shipping middleware and other form factors into appliances. The way you see it now, Microsoft is looking to follow Amazon's lead and it is looking to put their middleware products online in a pay per meter use success through web services. What does it look like for IBM?
We are right there on multiple levels, for example we have this thing that you can look at called Blue House. And Blue House is kind of a software group's foray into kind of a collaboration into servers, obviously led by our Lotus group. Some of Lotus' collaboration function is being offered as a service, and I think specifically for small and medium businesses this is a very attractive option to get to the Lotus platform as a service. So certainly in the web sphere group we are looking at this and in fact right across IBM we are looking at this pretty seriously. I think there is option for Blue House type function for building applications, so for software developers to host pre-installed platforms like web sphere, like web sphere application server, process server, sMash as a service to get developers productive right away building their applications.
But I do get a lot of feedback from our customers that say: "You know, not too comfortable working out on the Internet at large. So can you reproduce these software as a service environments behind my corporate firewall? Can you build those clouds behind my corporate firewall?" I think there is an opportunity to have these environments running their servicing their departments and lines of business internally. Certainly see both. I think what Microsoft and Amazon are doing is very interesting for large scale Internet, but I also think doing this in a highly isolated secure robust way behind the corporate firewall is also important. So building that enabling software to do that, as I said we are rainmakers at IBM we want to help you build those clouds, first and foremost in your enterprise. This is something that we are focusing on.
Oh, it ties in really well. I think one of the real enablers of building platforms as a service is building them around the web. Again the web is pervasive, it is kind of just present in enterprises, it is the one infrastructure that you know will be there. So building out these clouds and service platforms on the web is very natural, it's very cost effective to do for our customers. Many of the interfaces, in fact all of the interfaces that we are building around our clouds start with a RESTful model. They are browser driven, when you want to build an image, when you want to use an image, when you want to have an image dispensed into your cloud, whether it's your Intranet cloud, or your big Internet cloud, you will be doing that through web interfaces either on the glass, using Rich Internet Applications, Ajax based applications, or doing it programmatically through scripting languages, that are talking to RESTful interfaces under the covers, so absolutely the web has a huge role in this and it is really the technology that is making this doable in a reasonable amount of time and at an affordable cost.
Start to think virtually, think about virtual appliances, think about how you are going to create your freeze dried pre-installed environments, as atoms, single servers, pre-configured with best practices, molecules, what are the groups of servers that logically fit together, what are the best practices in linking those atoms together creating molecules, what are your best practices for high availability, for maintenance and then what are you doing about creating clouds, what are you doing about rainmaking and how can we help you do a better job using technologies like web sphere virtual enterprise. So how do you take these molecules and deploy them out into a shared resource pool i.e. your enterprise cloud. Those are the things you can start thinking about. Start thinking about virtualization, as a progression of thought.
Re: Another ViewPoint
ABC for Cloud Computing