In an exclusive interview with Mr. Santhosh D'Souza, CTO, Sun Microsystems India, we find out more about cloud computing and understand whether it is a necessary step for a business to subscribe to the 'cloud' model.
Why cloud computing? How is it different from the traditional way of datacenter computing? A traditional datacenter have resources allocated specifically for each application in a dedicated manner. There are some issues with the traditional way of setting up such a datacenter. One is acquisition, where you have to purchase all of the resources -- be it compute, storage or networking. Also, you have to plan for a certain amount of scale. You have to try and predict how much you are going to need one year from now. You have to buy all the resources upfront and that is an expensive proposition.
How easy or difficult is it for an organization to accurately predict what it will need a year from now? It is quite difficult to predict your scale of growth, and as a result, the computing resources required. An enterprise is running because it is offering certain products or services. It is difficult for you to know how much demand there will be for a product or your portfolio of products over a period of time. It depends on how successful the product is, what the economic conditions are, how good is the competition and a lot of other factors. Therefore the IT resources that are needed to run the business or service will also have to or not have to scale depending on the success of the business. Predictions, by definition, are not accurate. There is just a certain degree of probability that is associated with those predictions.
The second issue is about how datacenters have been designed. Any time there is a requirement for a new application, only then will you plan resources for that application. But since the service experiences fluctuations in terms of its load, all the resources are not utilised fully all the time. This is because you would probably have planned for peak loads rather then average loads.
Many feel that one has to cater to the peak loads rather then the average loads. This may be true for some but for others they do not bother to check the workload characteristics of their datacenter as to what resources are required by what application. It is true that there is significant over-provisioning in today's datacenters. This might not apply to Indian datacenters as much they do in the West. Here, you might experience very high sales volumes during a particular season say, Diwali. So you would cater to clients for that particular week but for the remainder of the year, those resources might not be used to its optimum levels. This leads to silos being created in the datacenter.
The third problem is from the point of view of a startup or a small business that has just started offering services. Assume that the services become wildly successful -- what would you do if you get a 100 users for your application today, 200 tomorrow, and 1000 next week? IT planning would not have predicted this sort of a rapid growth. Now you have to add scale to your IT infrastructure in a short time frame that will help you cater to that sort of growth.
Is it not as simple as buying new hardware? Buying new hardware involves negotiating with vendors, then processing the order and its needs by the enterprise. The vendor will process the order and ship it. This means the new hardware will not reach the site before three to four weeks. If the order is for a custom configuration then the delay could amount to 8-10 weeks.
There is also the question of how the enterprise would administer the equipment in the datacenter in order to make it ready for use. Usually a system administrator or the support division carries out the installation, configuration, etc. If the application does not run properly, more time is wasted in troubleshooting. This is a waste of time and resources. These issues can be solved with technologies and concepts related to cloud computing.
One of the pillars of cloud computing is pay-per-use. The notion of paying for a resource versus paying for the usage of the resource, you do not actually buy that resource -- you do not buy processors, you do not buy storage. You only buy the usage of that resource. If you use it for one hour, then it becomes an operational expense rather than a capital expense.
The bedrock of cloud computing is virtualization. The entire philosophy of cloud computing is virtualizing your IT infrastructure and sharing those resources across all your applications. The third notion of cloud computing is that of self provisioning. Here I can logon to the site where objects like CPUs, memory, storage, firewall, load balancer, a J2EE server, etc. can be just dragged and dropped to my desktop to build the architecture of what I want to deploy. The underlying application is smart enough to configure and associate all the hardware resources to the software and the application that I require. This self provisioning can be applied to datacenters.
Does running a datacenter in the 'cloud' have more admin overheads? The
idea is to reduce the nature of the administrative tasks and the number
of such tasks by moving to a cloud. For instance, if I had two
applications, I would build three servers -- database, Web and
application, some storage. All these systems need to be purchased,
installed, configured and set up. Over a period of time, those operating
systems and the software will need to be patched as and when they
become available. Work load also needs to be monitored continuously. If
need be, you might have to purchase additional resources. You can set
up triggers and automated systems that will pull resources from
applications that do not require compute power and allocate it to the
application that requires it. If all this handled by a cloud vendor, it
effectively reducing the amount of work that would otherwise have had
to be done in-house. If an important patch is out and you cannot afford
downtime, then the workload can be migrated to a new virtual machine
instance. The existing machine can then be updated without minimal
downtime. Going virtual also reduces the number of physical machines
that need to be monitored. This also means monitoring less power
supplies, processors, motherboards and other server components.
Could you name some factors that would prevent or limit people from going the cloud computing way? There are certain issues to be addressed before you decide whether cloud computing works for you or not. Firstly, your business or your enterprise may depend heavily on your IT architecture to deliver the competitive differentiation in the market. In a heavily competitive market, the key differentiator would be how fast you can go-to-market. Most of the time, such a product or service has to be developed in an IT environment. If IT is your competitive advantage then moving your application to the public cloud might not be the ideal way to go. You do not have any say in the components that go in the cloud. They are all standard components as provided by the vendor. You may want to retain all of the control over the components that go into the making of your architecture -- you would want to keep your IT infrastructure in-house. You can still take advantage of the cloud computing concepts. Sun can help you make your own cloud. While this may be true for larger organisations, small and medium businesses would look at this in a different way.
The first issue is that of data integrity and security. If you decide to put all your data in a public cloud, then all your data is stored in a public infrastructure. It is not owned by you. You need to evaluate the criticality of your data and consider it against the guarantees that the 'cloud vendor' provides especially in terms of security. This is one concern that leads businesses to run their own IT infrastructure.
The third thing is that there might be regulatory and compliance requirements. A particular organisation in India may be under the constraint where they cannot host their data in the U.S. Since the data needs to be physically stored in India, it will prevent the company from going for a cloud computing solution and opt for its own IT infrastructure. How does cloud computing address the three main concerns of small businesses -- that is, security, availability and scalability? The security in an in-house datacenter is not always better than in the cloud. In a cloud model, all of your resources are in virtualized pools. All of your storage is appears to be stored in one box. In an enterprise, you cannot get any better security than physical isolation of data pools. Our general observation around security incidents is that most of the data compromises happen due to human error rather than technology. Most incidents occur due to insiders. You do have technologies available that will make one single box act as two separate boxes. You can make use of technologies, best practices and architecture to address your security problems.
Cloud vendors can provide different levels of availability. Obviously, higher the levels of availability you demand, more costly is the service. There are tiers of availability that you can choose from. If your application is not critical, you can choose a lower level of availability. An online retail store requires higher availability, while an application tester might not need such a high level of availability.
The scaling philosophy of the cloud is 'on demand'. If you know the patterns of your application usage, you can purchase additional CPU and storage for peak performance and shift back to your average performance. This obviously lets you cater to your peak audience while saving on costs.
For all products and services on Sun's offering go to www.network.com and www.sun.com/cloudcomputing
|