Posted by Brajesh Panda on December 25, 2009
Are we taking a backward step towards old days computing?
I think yes but in a refined manner. Today we are consolidating our computing infrastructure back to a Centralized Model, merely converting our commodity computers to a Thin Terminal. Remember those old computing era with a dump terminal telenting to a huge UNIX machine.
Although cloud computing is an emerging field of computer science, the idea has been around for a few years. However it still confuses most of technocrats to define it clearly. Cloud science is more similar to legacy Grid Technology which is based on parallel processing.
Let me try to keep it simple
Cloud computing is a way to deliver services rather than applications which is completely independent of underlying platform, infrastructure hardware & location. It is called could because services exist in a cloud of computers or servers which provide better resilience and on demand supercomputing capacity. These computers can be located in a same place or different place connected with private link circuit or public internet. Cloud computing can be used for;
Infrastructure as a service (Joynet, Amazon EC2, Nirvanix)
Platform as a service (Google Apps)
Software as a service (SalesForce.com)
Application, Data, Storage as Service
Wikipedia: Cloud computing refers to computing resources being accessed which are typically owned and operated by a third-party provider on a consolidated basis in Data Center locations. Consumers of cloud computing services purchase computing capacity on-demand and are not generally concerned with the underlying technologies used to achieve the increase in server capability
For the IT Department in a corporation buying computers for everyone isn’t enough – they have to procure software & its licenses. Whenever there is a new hire, they have to buy more software licenses. It also adds new management cost & man hours to make the cost huge. There is no surety that every single user who was assigned the licensees is using those products regularly. I mean there is no automated way to go for On Demand Computing Model.
Instead of installing a suite of software for each computer, you’d only have to load one application. That application would allow workers to log into a Web-based service which hosts all the programs the user would need for his or her job. Hence you can create a centralized cloud of computers which will host all of the applications and users can avail on demand basis.
Hey the same thing is provided by Application Virtualization technology, what’s new about this?
Yes you are right. Cloud computing use multiple technologies like Parallel Processing & Virtualization to provide this type of huge & advanced computing capacity. For huge applications for which you can’t create in house Clouds you can go ahead & rent out computing capacity form Cloud computing providers. Sometime this type of business model is also referred as Utility Computing.
The architecture behind cloud computing is a massive network of “cloud servers” interconnected with simple Ethernet LAN or Internet as if they are running in a Grid or doing the parallel processing using CPU-scavenging, cycle-scavenging, cycle stealing, or shared computing technology
It is based on Front End and Back End Topology. As I rightly said they are connected with a high bandwidth link or may be through public internet.
User interacts with the whole system through Front End and Back End points towards cloud infrastructure. Generally Front end includes users own computer & the application through which it avails services from the cloud. Let say the Internet Explorer is the Front End for a web based service.
At the back end there are number of commodity computers, high end servers with huge data storage, which may spread across multiple data centers, locations or even may continents. These entire cloud of servers run through a set of parallel processing technologies which can host most of applications available in current market. This software helps all the member nodes to communicate with each other and helps them to share their computing power and storage to match the user and applications expectation. User sends its inputs to the Cloud or Grid for processing. The parallel processing cloud program taps into the available computing power throughout the sprawl and speed up the process.
To provide data redundancy it keeps all data in a distributed copy fashion which pumps the storage requirement to a higher level.
Anywhere access of applications: Mostly services delivered as Web Applications which can be accessed through out the internet
Brings Cost Down: As this technology is derived from Grid Computing, it doesn’t need any costly fully loaded servers with huge processing and memory capability. It can leverage commodity hardware. Application Virtualization Minimizes the software procurement and user allocation life cycle.
On Demand Rent out Model: All companies don’t have to build these clouds they can rent out their required computing power from a provider. It helps to remove Floor Space Requirement, IT Support Cost & Data Center Operation Cost.
Resilience & Performance: As cloud computing is based on Grid Technology its redundancy & performance spread across throughout the cloud.
Security: Most organizations might show their apprehension to use On Demand Rent Out computing as their confidential application data will not be secured. However this thing can be resolved by service providers with NDA and advance data security mechanism.
Privacy: As services will be accessible throughout the internet, hacking techniques can be used by bad guys to get into system. However this can be irradiated putting advanced authentication and authorization measure power with auditing functionality
Q & A
Q. Hey what is the difference between a Grid Computing and Cloud Computing??
No such difference! Generally all computers in a Grid able to access and use resources of other computers, however in cloud computing there is a sophisticated front end and clients don’t take part in the cloud. On demand rent out computing model is called Utility Computing.
Q. What is the difference between Grid/Cloud Computing and Supercomputers??
Grid/Cloud computing is based on parallel processing technology. Different types of computers (Servers, Commodity Desktop) can be connected to each other using simple Ethernet Connectivity to provide high computing and resilience. However supercomputers have many processors which gets connected through a high bandwidth BUS.
Q. What is parallel computing technology??
It is an algorithm or program which divides the hosted applications to independently running parts. A CPU-intensive application cab be divided into sub jobs each executing on a different machine. All applications are not required to get transformed to run in a parallel grid. Grid Software manages all grid aware application & independent sub jobs, inter-job communication, synchronization, input-output bandwidth and storage management and real time latency. Computing can be increased by allocating sub jobs to new nodes or sophisticated nodes which are powered with better software to do the job. It handles the real time peak usage demands by transferring loads to underutilized nodes. Grid software has multiple components like Management component, Donor Software, Submission Software, Schedulers, Communications and Observations & Measurement.
Thanks to Wikipedia, Cloud Camp, How Stuff Works, IBM Red Book